Stop Loss Take Profit - MetaTrader 5EA
- 显示:
- 1365
- 等级:
- 已发布:
- 2017.11.16 09:02
- 已更新:
- 2018.02.28 10:47
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
如果仓位是以止损平仓,交易量就加倍,如果是由获利平仓,就使用最小交易量。OnTradeTransaction 是用于判断交易是由止损激发还是获利触发的。
在 build 1625 中加入了很好的枚举 ENUM_DEAL_REASON:
ENUM_DEAL_REASON | 原因描述 |
---|---|
... | ... |
DEAL_REASON_SL | 操作是由触发止损而执行的 |
DEAL_REASON_TP | 操作是由触发获利而执行的 |
... | ... |
它可以在 OnTradeTransaction 中查到.
换句话说,它是判断交易是由获利或是止损触发的非常简单可靠的方法。
现在 (build 1626), 这个 EA 只能在活动账户中检测 - 通过在图表上运行它或者在真实数据上使用调试模式 (在 MetaEditor 中按 F5). 我使用如下的略过方式:
在 OnTradeTransaction 中, 我们判断是否触发了获利或者止损:
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(); }
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/18755