Нужно доработать существующий MT5 Expert Advisor под XAUUSD.
Важно: торговую логику робота не менять. Не менять сетку, автолот, TP, направление входа, шаги сетки и логику закрытия корзины. Требуется добавить только внешний/надёжный news filter и защиту от открытия новой корзины перед новостями.
Текущая логика робота:
Платформа: MetaTrader 5, язык MQL5.
Инструмент: XAUUSD.
Тип системы: grid EA.
Стартовый лот рассчитывается от баланса:
100 000 USD → 0.10 lot
каждые 10 000 USD баланса → +0.01 lot
при снятии денег следующая новая корзина должна уменьшать стартовый лот.
TP корзины: 5% от баланса на момент старта корзины.
Уже открытая корзина не должна пересчитываться после снятия/пополнения.
Weekend filter уже есть: пятница/суббота/воскресенье/понедельник блокирует только новую корзину, но не закрывает открытую.
Что нужно добавить:
Надёжный news filter для MT5.
Фильтр должен блокировать только открытие первой сделки новой корзины.
Уже открытую корзину фильтр не должен закрывать, не должен снимать советник с графика, не должен отключать AlgoTrading и не должен вмешиваться в доливки сетки, если это не согласовано отдельно.
Фильтр должен работать по времени торгового сервера брокера.
Нужна защита перед и после важных новостей:
NFP / Nonfarm Payrolls
CPI
Core CPI
PPI
Core PCE
FOMC
Federal Funds Rate / Interest Rate Decision
Powell speech
GDP
Retail Sales
ISM
Unemployment Rate
Валюта новостей: USD, так как робот торгует XAUUSD.
Настройки должны быть input-параметрами:
UseNewsFilter true/false
BlockBeforeMinutes
BlockAfterMinutes
NewsCurrency
MinImpact
Keywords
ManualNewsTimes
UseManualFallback true/false
Если автоматический календарь недоступен, должен быть ручной fallback: список дат/времени новостей в формате server time.
На графике должна быть видимая панель:
News filter ON/OFF
ближайшая новость
время новости
сейчас блокируется новая корзина или нет
причина блокировки
weekend filter status
В Journal/Experts должны выводиться сообщения:
когда новая корзина заблокирована новостью
какая новость стала причиной
когда блок закончился
если календарь недоступен
Критически важно:
Не закрывать текущие сделки из-за новости.
Не отключать весь AutoTrading.
Не удалять советник с графика.
Не менять TP, лот, шаги сетки и торговую логику.
Фильтр должен блокировать только старт новой корзины перед опасным событием.
Нужно предоставить:
исходный файл .mq5
скомпилированный .ex5
короткое описание параметров
пример заполнения ManualNewsTimes
подтверждение, что код компилируется без ошибок