Допустим, произошло событие в OnTradeTransaction() после которого необходимо выполнить какие-то действия, но при первой попытке выполнить эти действия произошла ошибка. Что делать? Очевидно, надо повторить попытку, а для этого нужно где-то сохранить данные о необходимости повторения этих действий - скорее всего сохранение этих данных делается в обычных глобальных переменных советника или в статических функции. И вдруг пришлось перезапустить терминал... данные пропали.
А когда анализируешь текущую ситуацию и историю - ничто никуда не улетает.
Если терминал вылетел, то после перезагрузки в OnInit() и так принято проводить инвентаризацию полную.
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
Это даже можно использовать как неполноценный OnTrade()
voidOnTrade()
{
...
}
static __OTotal = -1;
static __HTotal = -1;
int OT=OrdersTotal();
int HT=OrdersHistoryTotal();
if(OT!=__OTotal || HT!=__HTotal) // если изменилось - выполняем
{
OnTrade(); // здесь дёргаем текущую ситуацию на счёте и заполняем структуры
__OTotal=OrdersTotal(); // запомним текущее количество
__HTotal=OrdersHistoryTotal(); // запомним количество в истории
}
Да, из всего прочитанного в этой ветке, сделал вывод, что это решение - простое, надежное и "дешевое". Попробую еще раз пройтись по всем функциям mql4, если что-то найду, допишу в этот пост. Спасибо за помощь.
Пока что еще вспомнил о логах терминала Metatrader 4, туда, как правило, добавляются все торговые события. Также, есть еще уведомления на мобильный терминал о торговых событиях. upd: к сожалению. к этим событиям также не получить доступ без dll
Мобильный трейдинг в MetaTrader 5 — это возможность торговать на Форексе, фондовой бирже, а также фьючерсами в любое время из любой точки мира. Имея смартфон или планшет с установленным приложением MetaTrader 5 для iOS или Android, вы всегда будете в курсе рыночной ситуации и сможете совершать торговые операции 24 часа в сутки. Все возможности...
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Допустим, произошло событие в OnTradeTransaction() после которого необходимо выполнить какие-то действия, но при первой попытке выполнить эти действия произошла ошибка. Что делать? Очевидно, надо повторить попытку, а для этого нужно где-то сохранить данные о необходимости повторения этих действий - скорее всего сохранение этих данных делается в обычных глобальных переменных советника или в статических функции. И вдруг пришлось перезапустить терминал... данные пропали.
А когда анализируешь текущую ситуацию и историю - ничто никуда не улетает.
Если терминал вылетел, то после перезагрузки в OnInit() и так принято проводить инвентаризацию полную.
Это даже можно использовать как неполноценный OnTrade()
Да, из всего прочитанного в этой ветке, сделал вывод, что это решение - простое, надежное и "дешевое". Попробую еще раз пройтись по всем функциям mql4, если что-то найду, допишу в этот пост. Спасибо за помощь.
Пока что еще вспомнил о логах терминала Metatrader 4, туда, как правило, добавляются все торговые события. Также, есть еще уведомления на мобильный терминал о торговых событиях. upd: к сожалению. к этим событиям также не получить доступ без dll