Trading Sistematico

Utilizzare le Medie Mobili con un EA in MetaTrader 4: Guida Pratica
MetaTrader4
Utilizzare le Medie Mobili con un EA in MetaTrader 4: Guida Pratica

1. REGOLA DI INGRESSO Ingresso Long: Andremo ad aprire posizioni long al verificarsi del Golden Cross. Il valore della media mobile precedente deve essere superiore a quello della media mobile a breve termine. Il valore della media mobile di due periodi fa deve essere inferiore a quello della media mobile a breve termine. Il valore della media mobile di due periodi fa deve essere inferiore al valore della media mobile a breve termine precedente. Se queste tre condizioni sono soddisfatte, consideriamo che si sia verificato un Golden Cross e apriamo una posizione long. Ingresso Short: Andremo ad aprire posizioni short al verificarsi del Dead Cross. Il valore della media mobile precedente deve essere inferiore a quello della media mobile a breve termine. Il valore della media mobile di due periodi fa deve essere superiore a quello della media mobile a breve termine. Il valore della media mobile di due periodi fa deve essere superiore al valore della media mobile a breve termine precedente. Se queste tre condizioni sono soddisfatte, consideriamo che si sia verificato un Dead Cross e apriamo una posizione short. 2. REGOLA DI USCITA Le posizioni di ingresso sono gestite esclusivamente tramite ordini di stop loss e take profit. Il punto di stop loss è fissato a una distanza dal valore di stop loss rispetto alla media mobile a medio termine. Gli ordini di take profit sono impostati alla stessa distanza degli ordini di stop, ma a favore, per garantire equità. 3. RISULTATO DEL BACKTEST

2023.09.16
MaybeAwo EA: Il Tuo Alleato per MetaTrader 4
MetaTrader4
MaybeAwo EA: Il Tuo Alleato per MetaTrader 4

Caratteristiche Principali: Entrata con Media Mobile: Questo EA sfrutta una semplice media mobile per identificare potenziali punti di ingresso. Quando le condizioni di mercato si allineano con la strategia del crossover della media mobile, può aprire ordini di acquisto o vendita. Parametri Personalizzabili: Puoi affinare il comportamento dell'EA utilizzando parametri di input come il periodo della media mobile, la dimensione del lotto, lo stop loss, il take profit, i livelli di breakeven, le distanze di breakeven desiderate e le ore di trading. Questi parametri ti permettono di adattare l'EA ai tuoi stili di trading e classi di attivi. Funzionalità di Breakeven: L'EA include due livelli di breakeven. Una volta che una trade è in profitto, può spostare automaticamente lo stop loss al livello di breakeven per proteggere i tuoi guadagni. Le distanze di breakeven desiderate possono essere regolate in base alle tue preferenze. Trailing Stop: L'EA può seguire i livelli di stop loss man mano che la trade si muove a tuo favore, aiutandoti a garantire i profitti durante forti trend. Ore di Inizio e Fine: Puoi specificare le ore durante le quali l'EA deve operare attivamente. Questa funzione ti consente di concentrare le tue attività di trading su sessioni di mercato specifiche. Ti Raccomandiamo di: Esaminare attentamente e ottimizzare i parametri di input per allineare l'EA con la tua strategia di trading. Testare l'EA su un conto demo prima di utilizzarlo in un ambiente di trading dal vivo. Monitorare le performance dell'EA e regolare i parametri secondo necessità per adattarsi alle condizioni di mercato in cambiamento. # Il trading comporta rischi, e questo EA non è una garanzia di profitto. Usalo responsabilmente e sii consapevole dei rischi associati al trading automatizzato.

2023.09.10
Trailing Take Profit: Una Nuova Strategia per MetaTrader 5
MetaTrader5
Trailing Take Profit: Una Nuova Strategia per MetaTrader 5

Se sei un trader, sicuramente conosci il concetto di Trailing Stop, che segue il prezzo fino a quando non raggiunge il livello di stop loss, chiudendo la posizione in profitto. Oggi voglio parlarti di una novità: il Trailing Take Profit, una strategia che inverte questo meccanismo, chiudendo la posizione in perdita quando il prezzo scende. Facciamo un esempio pratico. Immagina di avere una posizione in perdita e che il prezzo attuale raggiunga il livello di TrailingTPStart (ad esempio, se il TrailingTPStart è impostato a 500 punti, ciò significa che quando il prezzo è a 500 punti dall'apertura e la posizione è in perdita di 500 punti, il take profit inizia a seguire il prezzo). Qui entra in gioco il TrailingTPDistance, che rappresenta la distanza massima tra il take profit e il prezzo attuale. Non so se questa strategia ti sarà utile, ma può essere implementata in alcuni EA senza stop loss per ridurre le perdite in determinate situazioni. Come utilizzare il Trailing Take Profit EA Avvia l'EA TrailingTakeProfit. Se TrailingTP_Mode è impostato su vero, l'EA inizierà a funzionare. Inserisci il simbolo, ad esempio GBPUSD, nell'EA. Imposta il TrailingTPStart, che indica i punti dal prezzo attuale dove il take profit inizia a seguire il prezzo quando la posizione è in perdita. Imposta il TrailingTPDistance, che rappresenta la distanza massima in punti tra il take profit e il prezzo attuale.

2023.07.11
AK-47 Scalper EA: Il Tuo Alleato per MetaTrader 5
MetaTrader5
AK-47 Scalper EA: Il Tuo Alleato per MetaTrader 5

Se sei un trader alla ricerca di un sistema di trading automatizzato efficace, l'AK-47 Scalper EA potrebbe fare al caso tuo. In questo post, esploreremo i parametri di input e come configurare questo Expert Advisor per massimizzare le tue operazioni. 1. Parametri di input #define ExtBotName "AK-47 EA" //Nome del Bot #define  Version "1.00" //Importa classi necessarie #include <Trade\PositionInfo.mqh> #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh>   #include <Trade\AccountInfo.mqh> #include <Trade\OrderInfo.mqh> //--- Introduzione di variabili predefinite per migliorare la leggibilità del codice #define Ask    SymbolInfoDouble(_Symbol, SYMBOL_ASK) #define Bid    SymbolInfoDouble(_Symbol, SYMBOL_BID) //--- Parametri di input input string  EASettings         = "---------------------------------------------"; //-------- <Impostazioni EA> -------- input int      InpMagicNumber    = 124656;   //Numero Magico input string  MoneySettings      = "---------------------------------------------"; //-------- <Impostazioni Finanziarie> -------- input bool     isVolume_Percent  = true;     //Consenti Percentuale di Volume input double   InpRisk           = 3;        //Percentuale di Rischio sul Saldo (%) input string  TradingSettings    = "---------------------------------------------"; //-------- <Impostazioni di Trading> -------- input double   Inpuser_lot       = 0.01;     //Lotti input double   InpSL_Pips        = 3.5      //Stoploss (in Pips) input double   InpTP_Pips        = 7        //TP (in Pips) (0 = No TP) input int      InpMax_slippage   = 3        //Massimo slippage consentito in Pips. input double   InpMax_spread     = 5        //Massimo spread consentito (in Punti) (0 = flottante) input string   TimeSettings      = "---------------------------------------------"; //-------- <Impostazioni Orarie di Trading> -------- input bool     InpTimeFilter     = true;     //Filtro Orario di Trading input int      InpStartHour      = 2;        //Ora di Inizio input int      InpStartMinute    = 30       //Minuto di Inizio input int      InpEndHour        = 21       //Ora di Fine input int      InpEndMinute      = 0        //Minuto di Fine 2. Inizializzazione delle variabili locali //--- Variabili int      Pips2Points;    // slippage  3 pips    3=points    30=points double   Pips2Double;    // Stoploss 15 pips    0.015      0.0150 bool     isOrder = false; int      slippage; long     acSpread; string   strComment = ""; CPositionInfo  m_position;                   // oggetto posizione di trading CTrade         m_trade;                      // oggetto di trading CSymbolInfo    m_symbol;                     // oggetto info simbolo CAccountInfo   m_account;                    // wrapper info account COrderInfo     m_order;                      // oggetto ordini in attesa 3. Codice Principale a/ Funzione di inizializzazione dell'Expert //+------------------------------------------------------------------+ //| Funzione di inizializzazione dell'Expert                                   | //+------------------------------------------------------------------+ int OnInit() {    //Rilevamento di 3 o 5 cifre    //Pip e punto    if(_Digits % 2 == 1) {       Pips2Double  = _Point*10;       Pips2Points  = 10;       slippage = 10* InpMax_slippage;    }    else {       Pips2Double  = _Point;       Pips2Points  =  1;       slippage = InpMax_slippage;    }         if(!m_symbol.Name(Symbol())) // Imposta nome simbolo       return(INIT_FAILED);           RefreshRates(); //---    m_trade.SetExpertMagicNumber(InpMagicNumber);    m_trade.SetMarginMode();    m_trade.SetTypeFillingBySymbol(m_symbol.Name());    m_trade.SetDeviationInPoints(slippage); //---    return(INIT_SUCCEEDED); } b/ Funzione di tick dell'Expert //+------------------------------------------------------------------+ //| Funzione di tick dell'Expert                                             | //+------------------------------------------------------------------+ void OnTick() {    if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == false) {       Comment("LazyBot\nTrading non consentito.");       return;    }         MqlDateTime structTime;    TimeCurrent(structTime);    structTime.sec = 0;       //Imposta l'ora di inizio    structTime.hour = InpStartHour;    structTime.min = InpStartMinute;          datetime timeStart = StructToTime(structTime);       //Imposta l'ora di fine    structTime.hour = InpEndHour;    structTime.min = InpEndMinute;    datetime timeEnd = StructToTime(structTime);       acSpread = SymbolInfoInteger(_Symbol, SYMBOL_SPREAD);          strComment = "\n" + ExtBotName + " - v." + (string)Version;    strComment += "\nOra server = " + TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS) + " - " + DayOfWeekDescription(structTime.day_of_week);    strComment += "\nOrario di trading = [" + (string)InpStartHour + "h" + (string)InpStartMinute + " --> " +  (string)InpEndHour + "h" + (string)InpEndMinute + "]";       strComment += "\nSpread attuale = " + (string)acSpread + " Punti";       Comment(strComment);       //Aggiorna valori    UpdateOrders();       TrailingStop();           //Condizioni di trading secondo l'orario    if(InpTimeFilter) {       if(TimeCurrent() >= timeStart && TimeCurrent() < timeEnd) {          if(!isOrder) OpenOrder();       }    }    else {       if(!isOrder) OpenOrder();    }    } //---Fine della funzione 3.1 Calcola il segnale per inviare ordini //+------------------------------------------------------------------+ //| CALCOLA IL SEGNALE E INVIA L'ORDINE                                  | //+------------------------------------------------------------------+ void OpenOrder(){       ENUM_ORDER_TYPE OrdType = ORDER_TYPE_SELL;//-1;       double TP = 0;    double SL = 0;    string comment = ExtBotName;       //Calcola Lotti    double lot1 = CalculateVolume();       if(OrdType == ORDER_TYPE_SELL) {       double OpenPrice = Bid - NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);              TP = OpenPrice - NormalizeDouble(InpTP_Pips * Pips2Double, _Digits);       SL = Ask + NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);                if(CheckSpreadAllow()                                             //Controlla Spread          && CheckVolumeValue(lot1)                                      //Controlla volume          && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_SELL_STOP, OpenPrice)  //Controlla distanza tra openPrice e Bid          && CheckStopLoss(OpenPrice,  SL, TP)                           //Controlla distanza da SL, TP a OpenPrice          && CheckMoneyForTrade(m_symbol.Name(), lot1, ORDER_TYPE_SELL)) //Controlla bilancio quando il comando viene eseguito       {          if(!m_trade.SellStop(lot1, OpenPrice, m_symbol.Name(), SL, TP, ORDER_TIME_GTC, 0, comment))          Print(__FUNCTION__,"--> Errore OrderSend ", m_trade.ResultComment());       }    }    else if(OrdType == ORDER_TYPE_BUY) {       double OpenPrice = Ask + NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);       SL = Bid - NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);              if(CheckSpreadAllow()                                             //Controlla Spread          && CheckVolumeValue(lot1)                                      //Controlla volume          && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_BUY_STOP, OpenPrice)   //Controlla distanza tra openPrice e Bid          && CheckStopLoss(OpenPrice,  SL, TP)                           //Controlla distanza da SL, TP a OpenPrice                  && CheckMoneyForTrade(m_symbol.Name(), lot1, ORDER_TYPE_BUY))  //Controlla bilancio quando il comando viene eseguito       {          if(!m_trade.BuyStop(lot1, OpenPrice, m_symbol.Name(), SL, TP, ORDER_TIME_GTC, 0, comment))// usa "ORDER_TIME_GTC" quando la data di scadenza = 0          Print(__FUNCTION__,"--> Errore OrderSend ", m_trade.ResultComment());       }    }    } 3.2 Calcola il Volume //+------------------------------------------------------------------+ //| CALCOLA IL VOLUME                                                 | //+------------------------------------------------------------------+ // Definiamo la funzione per calcolare la dimensione della posizione e restituire il lotto da ordinare. double CalculateVolume() {    double LotSize = 0;    if(isVolume_Percent == false) {       LotSize = Inpuser_lot;      }    else {       LotSize = (InpRisk) * m_account.FreeMargin();       LotSize = LotSize /100000;       double n = MathFloor(LotSize/Inpuser_lot);       //Comment((string)n);       LotSize = n * Inpuser_lot;              if(LotSize < Inpuser_lot)          LotSize = Inpuser_lot;       if(LotSize > m_symbol.LotsMax()) LotSize = m_symbol.LotsMax();       if(LotSize < m_symbol.LotsMin()) LotSize = m_symbol.LotsMin();    }      //---    return(LotSize); }3.3 Funzione di "Trailing Stop" dell'EA,  SL cambierà ogni volta che il prezzo cambia (in giù) //+------------------------------------------------------------------+ //| TRAILING STOP                                                    | //+------------------------------------------------------------------+ void TrailingStop() {    double SL_in_Pip = 0;    for(int i = PositionsTotal() - 1; i >= 0; i--) {       if(m_position.SelectByIndex(i)) {    // seleziona gli ordini per indice per accedere ulteriormente alle sue proprietà                  if((m_position.Magic() == InpMagicNumber) && (m_position.Symbol() == m_symbol.Name())) {             // Per ordine di acquisto             if(m_position.PositionType() == POSITION_TYPE_BUY) {                //--Calcola SL quando il prezzo cambia                SL_in_Pip = NormalizeDouble(Bid - m_position.StopLoss(), _Digits) / Pips2Double;                if(SL_in_Pip > InpSL_Pips) {                   double newSL = NormalizeDouble(Bid - InpSL_Pips * Pips2Double, _Digits);                                      if(!m_trade.PositionModify(m_position.Ticket(), newSL, m_position.TakeProfit())) {                      Print(__FUNCTION__,"--> Errore OrderModify ", m_trade.ResultComment());                    continue                 }             }           }             //Per ordine di vendita             else if(m_position.PositionType() == POSITION_TYPE_SELL) {                //--Calcola SL quando il prezzo cambia                SL_in_Pip = NormalizeDouble(m_position.StopLoss() - Bid, _Digits) / Pips2Double;                if(SL_in_Pip > InpSL_Pips){                   double newSL = NormalizeDouble(Bid + (InpSL_Pips) * Pips2Double, _Digits);               if(!m_trade.PositionModify(m_position.Ticket(), newSL, m_position.TakeProfit())) {                      Print(__FUNCTION__,"--> Errore OrderModify ", m_trade.ResultComment());                      //continue;                 }           }             }       }//--- Modifica ordini in attesa         for(int i=OrdersTotal()-1; i>=0; i--) {// restituisce il numero di ordini correnti       if(m_order.SelectByIndex(i)) {      // seleziona l'ordine in attesa per indice per accesso successivo alle sue proprietà          if(m_order.Symbol() == m_symbol.Name() && m_order.Magic()==InpMagicNumber) {             if(m_order.OrderType() == ORDER_TYPE_BUY_STOP) {                SL_in_Pip = NormalizeDouble(Bid - m_order.StopLoss(), _Digits) / Pips2Double;                               if(SL_in_Pip < InpSL_Pips/2) {                   double newOP = NormalizeDouble(Bid + (InpSL_Pips/2) * Pips2Double, _Digits);                   double newTP =  NormalizeDouble(newOP + InpTP_Pips * Pips2Double, _Digits);                   double newSL = NormalizeDouble(Bid - (InpSL_Pips/2) * Pips2Double, _Digits);                                     if(!m_trade.OrderModify(m_order.Ticket(), newOP, newSL, newTP, ORDER_TIME_GTC,0)) {                      Print(__FUNCTION__,"--> Errore Modifica Ordine in Attesa!", m_trade.ResultComment());                      continue                 }               }             }           else if(m_order.OrderType() == ORDER_TYPE_SELL_STOP) {                SL_in_Pip = NormalizeDouble(m_order.StopLoss() - Ask, _Digits) / Pips2Double;                           if(SL_in_Pip < InpSL_Pips/2){                   double newOP = NormalizeDouble(Ask - (InpSL_Pips/2) * Pips2Double, _Digits);                   double newTP =  NormalizeDouble(newOP - InpTP_Pips * Pips2Double, _Digits);                   double newSL = NormalizeDouble(Ask + (InpSL_Pips/2) * Pips2Double, _Digits);                                      if(!m_trade.OrderModify(m_order.Ticket(), newOP, newSL, newTP, ORDER_TIME_GTC,0)) {                      Print(__FUNCTION__,"--> Errore Modifica Ordine in Attesa!", m_trade.ResultComment());                      //continue                     }               }                }       }//--- Fine della funzione   } }

2023.06.12
Chiusura Posizioni Azionarie: Guida all'Utilizzo di MT5
MetaTrader5
Chiusura Posizioni Azionarie: Guida all'Utilizzo di MT5

Se sei un trader attivo su MetaTrader 5, saprai quanto sia fondamentale gestire le tue posizioni in modo efficace. Oggi parliamo della chiusura delle posizioni azionarie e di come farlo al meglio con MT5, per massimizzare i tuoi profitti e minimizzare le perdite.Perché chiudere una posizione?La chiusura di una posizione può sembrare semplice, ma è una delle decisioni più importanti che un trader deve prendere. Ecco alcune situazioni in cui potrebbe essere opportuno chiudere una posizione:Raggiungimento del target di profitto: Se hai impostato un obiettivo di profitto e il mercato ha raggiunto quel punto, è il momento di chiudere e incassare i guadagni.Stop loss attivato: Se le cose non vanno come previsto e il tuo stop loss si attiva, chiudere la posizione è fondamentale per limitare le perdite.Cambiamenti di mercato: Notizie economiche o eventi imprevisti possono influenzare drasticamente i mercati. Essere pronti a chiudere le posizioni in queste situazioni può fare la differenza.Come chiudere una posizione su MetaTrader 5Chiudere una posizione su MT5 è un processo semplice. Ecco i passaggi da seguire:Aprite la finestra Terminale (CTRL + T) per visualizzare le vostre posizioni aperte.Selezionate la posizione che desiderate chiudere.Cliccate con il tasto destro del mouse sulla posizione e selezionate Chiudi ordine.In alternativa, potete utilizzare il pulsante di chiusura regolabile che vedete nell'immagine qui sopra. Questo strumento è molto utile per chiudere rapidamente le posizioni senza dover navigare attraverso i menu.ConclusioneLa chiusura delle posizioni è una competenza essenziale per ogni trader. Mantenere il controllo e agire tempestivamente può fare la differenza tra un trade vincente e uno perdente. Assicurati di utilizzare MetaTrader 5 al massimo delle sue potenzialità e di seguire le tue strategie di trading con disciplina.

2023.05.27
Gestione Dinamica del Trailing Stop Loss e Target di Profitto per MetaTrader 5
MetaTrader5
Gestione Dinamica del Trailing Stop Loss e Target di Profitto per MetaTrader 5

Oggi parliamo di una strategia di gestione del rischio per un Expert Advisor (EA) in MetaTrader 5 che si occupa di gestire le operazioni esistenti in base ai parametri di input. Questo sistema si concentra sulla chiusura delle operazioni quando si raggiunge una soglia di profitto o perdita, utilizzando un trailing stop loss per garantire i profitti man mano che il trade si muove a favore del trader.Ecco una breve spiegazione del codice:Includiamo i file header necessari per le classi di informazioni su trade e simboli.Definiamo i parametri di input per la percentuale di rischio, la percentuale di profitto e i punti di trailing stop.Dichiariamo variabili globali per gli oggetti di informazioni su trade e simboli.La funzione OnInit inizializza l'oggetto di informazioni sul simbolo e verifica eventuali errori.La funzione OnDeinit non esegue alcuna azione in questo caso.La funzione OnTick viene chiamata ogni volta che arriva un nuovo tick, e richiama la funzione CheckTrades.La funzione CheckTrades itera attraverso tutte le posizioni aperte e verifica se la posizione appartiene al simbolo corrente. Se sì, calcola il profitto attuale e determina se sono state raggiunte le soglie di profitto o perdita. Se una delle due soglie viene raggiunta, chiude la posizione.Se nessuna soglia è stata raggiunta, il codice controlla se il tipo di posizione è un ordine di acquisto o vendita e aggiorna il livello del stop loss con un trailing stop. Se il nuovo livello di stop loss è più favorevole rispetto all'attuale, la posizione viene modificata con il nuovo livello di stop loss.Questo codice fornisce una strategia di gestione del rischio semplice per gestire le operazioni esistenti, adeguando dinamicamente il livello di stop loss in base a un trailing stop e chiudendo le operazioni quando si raggiungono le soglie di profitto o perdita.

2023.04.28
Sistema Trading per Aprire Ordini Multipli di Acquisto e Vendita in Base all'Input dell'Utente
MetaTrader5
Sistema Trading per Aprire Ordini Multipli di Acquisto e Vendita in Base all'Input dell'Utente

Se sei un trader e stai cercando un modo per gestire i tuoi ordini in modo più efficiente, questo Sistema Trading per MetaTrader 5 è proprio ciò di cui hai bisogno. Grazie a questo EA, potrai aprire più ordini di acquisto e vendita semplicemente fornendo i tuoi parametri. Il sistema è dotato di variabili di input che ti permettono di impostare il numero di ordini da aprire, la percentuale di rischio per ogni operazione, il livello di stop loss, il take profit e la slippage. Inoltre, l'interfaccia utente è molto intuitiva, con pulsanti Acquista e Vendi che attivano l'apertura degli ordini. Ma come funziona esattamente? L'EA calcola la dimensione del lotto adeguata in base alla percentuale di rischio impostata e allo stop loss. Prima di eseguire gli ordini, verifica anche lo spread rispetto alla slippage configurata. Aprirà ordini di acquisto se il prezzo medio è superiore al prezzo ask attuale, mentre ordini di vendita se il prezzo medio è inferiore al prezzo bid attuale. Quando clicchi su uno dei pulsanti, il sistema aprirà il numero specificato di ordini di acquisto o vendita utilizzando la dimensione del lotto calcolata, insieme ai livelli di stop loss e take profit definiti. Tieni presente che questo EA è un esempio semplice e potrebbe non essere adatto per il trading dal vivo senza ulteriori modifiche e ottimizzazioni. È fondamentale testare qualsiasi algoritmo di trading in un ambiente sicuro, come un conto demo, prima di utilizzarlo con fondi reali.

2023.04.27
CheckTrades: Il tuo alleato per una gestione del rischio su MetaTrader 5
MetaTrader5
CheckTrades: Il tuo alleato per una gestione del rischio su MetaTrader 5

Se sei un trader su MetaTrader 5, conosci bene l'importanza di gestire il rischio in modo efficace. Oggi parliamo di CheckTrades, un Expert Advisor (EA) che ti aiuta a chiudere le posizioni aperte quando raggiungono un profitto o una perdita predefiniti, calcolati come percentuale del tuo saldo conto. Ma attenzione, questo EA non fornisce segnali di ingresso o regole per il timing di mercato; il suo scopo principale è quello di gestire il rischio delle posizioni già aperte, chiudendole quando si raggiunge una certa soglia di profitto o perdita. Variabili esterne utilizzate nel codice: RiskPercentage: Questa variabile rappresenta la massima perdita consentita per ogni operazione, espressa come percentuale del saldo conto. Quando la perdita attuale di una posizione aperta raggiunge questa percentuale, la posizione verrà chiusa per limitare il rischio. ProfitPercentage: Questa variabile indica il profitto desiderato per ogni operazione, sempre come percentuale del saldo conto. Quando il profitto attuale di una posizione aperta raggiunge questa percentuale, la posizione verrà chiusa per garantire il profitto. Essendo focalizzato sulla gestione del rischio, questo EA può essere utilizzato su qualsiasi simbolo o timeframe. Tuttavia, è fondamentale notare che CheckTrades dovrebbe essere integrato con una strategia di trading che includa segnali di ingresso e altre regole di gestione delle operazioni, per formare un sistema di trading completo. Se decidi di utilizzare questo codice come file di inclusione (posizionandolo nella cartella MQL5\Include), il suo scopo principale sarà la gestione del rischio, chiudendo le posizioni in base a soglie di profitto e perdita definite dall'utente. È possibile combinare questo file di inclusione con altri file che servono a scopi specifici, come il calcolo della dimensione della posizione in base al rischio di conto, trailing stop-loss e altro ancora. Per farlo, utilizza la direttiva #include nel tuo file principale EA per includere questo file e poi chiama la funzione CheckTrades() quando necessario per gestire le posizioni aperte.

2023.04.25
Primo Precedente 4 5 6 7 8 9 10 11 12 13 14 Successivo Ultimo