Stop Loss e Take Profit: Come Ottimizzare le Tue Operazioni con MetaTrader 5

Mike 2017.11.03 20:43 12 0 0
Allegato

Quando chiudi una posizione tramite Stop Loss, il volume della tua operazione viene raddoppiato; al contrario, se chiudi tramite Take Profit, viene utilizzato il volume minimo. Per capire se un'operazione è stata eseguita dopo l'attivazione dello Stop Loss o del Take Profit, si utilizza la funzione OnTradeTransaction.

È stata introdotta una fantastica enumerazione ENUM_DEAL_REASON nella build 1625:

ENUM_DEAL_REASON Descrizione della ragione
... ...
DEAL_REASON_SL L'operazione è stata eseguita a seguito dell'attivazione dello Stop Loss
DEAL_REASON_TP L'operazione è stata eseguita a seguito dell'attivazione del Take Profit
... ...

Puoi verificarlo in OnTradeTransaction.

In altre parole, è un modo molto semplice e affidabile per determinare se un'operazione è stata il risultato di un Take Profit o di uno Stop Loss.

Attualmente (build 1626), questo Expert Advisor può essere verificato solo in un test live, lanciandolo su un grafico o in modalità debug con dati reali (premendo F5 nell'editor MetaEditor). Ho utilizzato il seguente trucco:

In OnTradeTransaction, abbiamo determinato se è stato attivato il Take Profit o lo Stop Loss:

      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
         if(deal_entry==DEAL_ENTRY_OUT)
           {
            if(deal_reason==DEAL_REASON_SL)
               ExtLot*=2.0;
            else if(deal_reason==DEAL_REASON_TP)
               ExtLot=m_symbol.LotsMin();
           }
Elenco
Commento 0