Spezifikation
Нужно доработать существующий 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
-
подтверждение, что код компилируется без ошибок