Отправка уведомления только один раз, а не на каждом тике

Как мне разрешить своему советнику отправлять уведомление только один раз на мой iPhone, когда условие else if (ClosePosition == false) возвращает значение true (другими словами, когда мой советник не может закрыть позицию, открытую советником). На данный момент он пингуется на каждом тике.

ClosePositionboolean для функции OrderClose() возвращает true, когда советник успешно закрывает позицию при выполнении указанных условий. Возвращает 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()));
                      }
                   }

person Community    schedule 25.09.2016    source источник


Ответы (1)


Без какого-либо контекста реального решения (ref. более широкий обзор вашего другого сообщения),
повторно обнаруженные причины для отправки уведомления должны быть заблокированы при первой отправке такого уведомления (представьте себе массив уведомлений, отправленных на:

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() в зависимости от вашего возможного контекста проблемы и приемлемой для бизнеса плотности повторных уведомлений

person user3666197    schedule 26.09.2016