仅发送一次通知而不是每次发送通知

时间:2016-09-25 12:40:14

标签: mql4 mt4

else if (ClosePosition == false)条件返回true时(换句话说,当我的EA未能关闭EA打开的位置时),如何让我的EA只向我的iPhone发送一次通知。目前,它在每一个嘀嗒声上都会砰的一声。

当EA在满足指定条件时成功关闭位置时,ClosePosition函数的OrderClose()布尔值返回true。当EA未能平仓时,它会返回ClosePosition == false

到目前为止,这是我的代码

                   else if(ClosePosition == false)
                   {
                   int failedClosePosition = OrdersTotal()-1;
                   bool fail = OrderSelect(failedClosePosition,SELECT_BY_POS,MODE_TRADES);       
                   if(fail == true)
                      {
                      SendNotification("Order Number #"+IntegerToString(OrderTicket(),10)+" has failed to close. Please refer to error code "+IntegerToString(GetLastError()));
                      }
                   }

1 个答案:

答案 0 :(得分:0)

如果没有真实解决方案( ref. your other post's broader view )的任何背景信息,则第一次发送通知时,重复检测到发送通知的理由应该被锁定(想象一下积极发送的一系列通知:

int ArrayOfNotificationsAlreadySENT[][3];  //[ <OrderTicketNUMBER>,
                                           //  <Notification_E.164_TargetNUMBER>,
                                           //  <TimeStampSECONDS>
                                           //  ],

OrderTicket() 号码存储为此类“麻烦制造者”的UUID

对于发生重复检测的问题,可能需要扩展定义并添加第四列,您可以在其中更新每个相应UUID的故障检测数量,并且(通常)可能使用某些回退策略来减少根据您可行的麻烦,根据从on-first-detectedon-2nd-detect()on-5th-detect()on-10th-detect()on-100th-detect()的一些合理重新通知“距离”的消息流 - 上下文和业务可接受的重新通知密度