Обсуждение статьи "Использование Экономического календаря MQL5 для фильтрации новостей (Часть 3): Сохранение работы при перезапусках терминала во время новостного окна"
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Опубликована статья Использование Экономического календаря MQL5 для фильтрации новостей (Часть 3): Сохранение работы при перезапусках терминала во время новостного окна:
В части 2 этой серии уже был реализован новостной фильтр, который временно снимает SL/TP и восстанавливает их после новостного окна. Однако существующая реализация хранит состояние только в памяти: в массиве savedStops[] и флаге newsSuspended. Если между вызовами SuspendStops(true) и SuspendStops(false) происходит перезапуск или перекомпиляция, это состояние теряется. Советник больше не может определить, у каких позиций были удалены стоп-уровни. Результат: открытые позиции могут остаться незащищенными, а их стопы — так и не быть восстановлены. Без механизма восстановления система не сможет безопасно восстановить прежнее состояние.
Для решения этой проблемы зададим правила восстановления. Система должна сохранять состояние позиций во внешнем хранилище: идентификаторы тикетов, стоп-уровни и статус приостановки. При повторной инициализации данные должны быть точно восстановлены, чтобы система возобновила работу без преждевременного восстановления стопов и без оставления позиций незащищенными.
В статье реализуется слой постоянного состояния на основе глобальных переменных терминала, который сохраняет непрерывность работы системы при сбоях и обеспечивает детерминированное поведение после любого перезапуска.
Автор: Solomon Anietie Sunday