当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()));
}
}
答案 0 :(得分:0)
如果没有真实解决方案( ref. your other post's broader view )的任何背景信息,则第一次发送通知时,重复检测到发送通知的理由应该被锁定(想象一下积极发送的一系列通知:
int ArrayOfNotificationsAlreadySENT[][3]; //[ <OrderTicketNUMBER>,
// <Notification_E.164_TargetNUMBER>,
// <TimeStampSECONDS>
// ],
将 OrderTicket()
号码存储为此类“麻烦制造者”的UUID
对于发生重复检测的问题,可能需要扩展定义并添加第四列,您可以在其中更新每个相应UUID的故障检测数量,并且(通常)可能使用某些回退策略来减少根据您可行的麻烦,根据从on-first-detected
到on-2nd-detect()
到on-5th-detect()
到on-10th-detect()
到on-100th-detect()
的一些合理重新通知“距离”的消息流 - 上下文和业务可接受的重新通知密度