Обсуждение статьи "Использование Экономического календаря MQL5 для фильтрации новостей (Часть 3): Сохранение работы при перезапусках терминала во время новостного окна"

 

Опубликована статья Использование Экономического календаря MQL5 для фильтрации новостей (Часть 3): Сохранение работы при перезапусках терминала во время новостного окна:

В статье представлена устойчивая к перезапуску модель хранения состояния для удаления стопов на время новостей. Состояние приостановки и исходные значения SL/TP для каждой позиции записываются в глобальные переменные терминала, считываются и реконструируются в OnInit() и удаляются после восстановления стопов. Это позволяет советнику продолжить активное окно приостановки после перекомпиляции или перезапуска и восстановить стопы только после окончания новостного окна.

В части 2 этой серии уже был реализован новостной фильтр, который временно снимает SL/TP и восстанавливает их после новостного окна. Однако существующая реализация хранит состояние только в памяти: в массиве savedStops[] и флаге newsSuspended. Если между вызовами SuspendStops(true) и SuspendStops(false) происходит перезапуск или перекомпиляция, это состояние теряется. Советник больше не может определить, у каких позиций были удалены стоп-уровни. Результат: открытые позиции могут остаться незащищенными, а их стопы — так и не быть восстановлены. Без механизма восстановления система не сможет безопасно восстановить прежнее состояние.

Для решения этой проблемы зададим правила восстановления. Система должна сохранять состояние позиций во внешнем хранилище: идентификаторы тикетов, стоп-уровни и статус приостановки. При повторной инициализации данные должны быть точно восстановлены, чтобы система возобновила работу без преждевременного восстановления стопов и без оставления позиций незащищенными.

В статье реализуется слой постоянного состояния на основе глобальных переменных терминала, который сохраняет непрерывность работы системы при сбоях и обеспечивает детерминированное поведение после любого перезапуска.

State loss visual illustration


Автор: Solomon Anietie Sunday