止损与止盈:MetaTrader 5的高手指南

Mike 2017.11.03 20:43 15 0 0
附件

在交易中,当止损被触发时,交易的手数会翻倍;而当止盈触发时,则会使用最小手数。可以通过 OnTradeTransaction 函数来判断交易是因止损还是止盈而执行的。

1625版本 中,新增了一个非常实用的枚举 ENUM_DEAL_REASON
ENUM_DEAL_REASON 原因描述
... ...
DEAL_REASON_SL 该操作是由于止损被触发而执行的
DEAL_REASON_TP 该操作是由于止盈被触发而执行的
... ...

我们可以在 OnTradeTransaction 中进行检查。

换句话说,这是一种非常简单且可靠的方法,能够判断一笔交易是由于止损还是止盈而产生的。

目前(1626版本),这个专家顾问只能在实时测试中进行检查——通过在图表上运行它,或者在真实数据下以调试模式启动(在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;
            elseif(deal_reason==DEAL_REASON_TP)
               ExtLot=m_symbol.LotsMin();
           }
列表
评论 0