Als een trade wordt afgesloten door een Stop Loss, wordt het volume verdubbeld; als het wordt afgesloten door een Take Profit, wordt het minimale volume gebruikt. De functie OnTradeTransaction wordt gebruikt om te bepalen of een trade is uitgevoerd na de activatie van Stop Loss of Take Profit.
In build 1625 is de uitstekende enumeratie ENUM_DEAL_REASON toegevoegd:
| ENUM_DEAL_REASON | Omschrijving van de reden |
|---|---|
| ... | ... |
| DEAL_REASON_SL | De operatie is uitgevoerd als gevolg van de activatie van Stop Loss |
| DEAL_REASON_TP | De operatie is uitgevoerd als gevolg van de activatie van Take Profit |
| ... | ... |
Dit kan worden gecontroleerd in OnTradeTransaction.
Met andere woorden, het is een zeer eenvoudige en betrouwbare manier om te bepalen of een trade het resultaat was van Take Profit of Stop Loss.
Op dit moment (build 1626) kan deze Expert Advisor alleen in een live test worden gecontroleerd - door het te starten op een grafiek of in de debugmodus met echte data (F5 in de MetaEditor). Ik heb de volgende omweg gebruikt:
In OnTradeTransaction hebben we bepaald of Take Profit of Stop Loss is geactiveerd:
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(); }
Gerelateerde berichten
- MQL5 Wizard: Creëer Handelsstrategieën met Bullish en Bearish Engulfing Candlestick Patronen en Stochastic
- Efficiënt Trendvolgend Handelsysteem met Exp_X2MA_JFatl voor MetaTrader 5
- Close Cross MA: Efficiënt Orders Sluiten met MetaTrader 4
- Efficiënt Handelen met het ColorSchaffJCCXTrendCycle Systeem voor MetaTrader 5
- Efficiënt Handelen met de Ang_Zad_C Indicator voor MetaTrader 5