Tarea técnica
ТЕХНИЧЕСКОЕ ЗАДАНИЕ / REVISED TECHNICAL SPECIFICATION
Название проекта / Project Name: Creation of a Multi-Currency Grid EA with Hedging Double-Grid Architecture (LEON_EA_v1.0_PRO)
Терминал / Platform: MetaTrader 4 (MT4)
Язык кода / Language: MQL4 (Source code .mq4 must be provided)
Таймфрейм / Timeframe: M5
Рабочие инструменты / Trading Pairs (13 pairs): EURUSD, EURGBP, GBPUSD, NZDCAD, USDCHF, AUDUSD, USDCAD, EURCAD, USDJPY, EURCHF, EURJPY, NZDUSD, CADCHF.
1. ОБЩЕЕ ОПИСАНИЕ И АРХИТЕКТУРА
Необходимо разработать мультивалютный сеточный советник под рабочим названием LEON_EA_v1.0_PRO. Советник устанавливается на каждый график валютной пары отдельно. Управление корзиной ордеров по конкретной паре осуществляется через уникальный Magic Number.
- Торговля строго в одном направлении: Советник работает в одну сторону по сигналам индикаторов (без противоположного хеджирования/локирования).
- Динамические объемы: Все объемы лотов, шаги и коэффициенты НЕ жесткие в коде, они определяются исключительно загружаемым пользователем .set-файлом под конкретный депозит.
2. ЛОГИКА ВХОДА В РЫНОК (ИНДИКАТОРНЫЙ БЛОК)
Советник определяет направление для открытия первого ордера сетки на таймфрейме M5, используя комбинацию следующих индикаторов:
- ATR (Average True Range): Период 60, значение порога фильтра 0.0001.
- WPR (Williams' Percent Range) & CCI (Period 50): Фильтрация зон перекупленности/перепроданности.
- RSI (Period 14) & Stochastic Oscillator (Period 14).
- MA (Moving Average): Фильтр расстояния между двумя скользящими средними (порог — 10 пунктов).
- Параметры: Вход только по направлению тренда = true, Число свечей = 1.
3. ЕДИНАЯ СЕТКА ОРДЕРОВ И БЛОК ЧАСТИЧНОЙ РАЗГРУЗКИ (BASKET OVERLAP)
- Параметры сетки (настраиваются из СЕТов): Шаг сетки (PipStep = 10.0 пунктов), количество шагов в одном блоке — 3, максимальное количество блоков — 24, коэффициент умножения лота — 2.0 (для блочного метода), максимальное количество ордеров в серии — 46. Максимальный совокупный лот ограничен лимитом 15.0.
- Алгоритм частичной разгрузки (Partial Close): При открытии старших колен сетки (параметр настраивается, например, с 6-го ордера) и малейшем развороте/откате рынка, советник использует прибыль от последнего (самого крупного) ордера серии для автоматического закрытия первых (самых старых, нижних и убыточных) ордеров в корзине в ноль или минимальный профит. После удаления нижнего «балласта» Тейк-Профит оставшейся в рынке серии ордеров автоматически пересчитывается и смещается ближе к текущей цене. При возобновлении движения против сетки набор ордеров продолжается на основе оставшихся объемов.
4. ГЛОБАЛЬНЫЙ МУЛЬТИВАЛЮТНЫЙ ЗАЩИТНЫЙ ФИЛЬТР
Координация между копиями советника на разных графиках должна быть реализована через глобальные переменные терминала (GlobalVariable). Во избежание эффекта «гонки условий» (Race Condition) на резких ценовых импульсах, синхронизация должна быть реализована через жесткий атомарный мьютекс с использованием функции SetOnCondition:
- Кол-во одновременно торгуемых пар (по умолчанию 7) — жесткое ограничение на количество одновременно активных валютных пар в терминале. Если лимит достигнут, открытие первых ордеров по другим парам блокируется.
- Кол-во пар без сушки (по умолчанию 2) — защитный алгоритм. Если на заданном количестве пар (например, на двух) сетка ордеров превышает критическое колено или заданный % просадки, советник автоматически включает режим «Сушки» (запрет на открытие новых сеток после закрытия текущих) на всех остальных инструментах.
5. ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ, ЗАЩИТА И ИНФО-ПАНЕЛЬ
- Развязка уровней: Алгоритмы динамического Тейк-Профита и перевода сетки в безубыток со 2-го колена (базовый ТП 15 п., безубыток 10 п.) должны быть жестко программно развязаны по уровням корзины ордеров во избежание взаимных конфликтов, зацикливания команды OrderModify и возникновения ошибки 130.
- Адаптация под валюту счета: Код должен автоматически определять валюту депозита (USD или RUB для брокера Финам). Расчет рисков и просадки должен осуществляться в процентах (%) от баланса.
- Контроль перезапуска: Робот подхватывает свои ордера по индивидуальному Magic Number после перезапуска терминала или VPS. Торговое окно (01:00–20:00). Проскальзывание (Slippage): 15 п. Экстренный Стоп-Лосс: 4000 п.
- Информационная панель (Dashboard):
В верхнем правом углу графика должна отображаться графическая панель, содержащая следующие параметры:
- Текущая пара и Магический номер (Magic Number) данного графика.
- Размер депозита (Баланс/Equity) и установленное на счете Кредитное плечо.
- Текущий рыночный Спред по паре.
- Сумма сделок по паре (совокупный открытый объем в лотах).
- Риск от общего депозита (текущая плавающая просадка по данной паре строго в процентах % от баланса. При наличии минуса значение выделяется цветом).
- Прибыль за последние 5 дней (зафиксированный профит по паре в валюте депозита).
- Глобальные фильтры: Количество торгуемых пар (из 7) и Количество пар без сушки (из 2).
- Текущий режим: Режим торговли активен / Режим сушки ВКЛ (индикация статуса работы советника).
- В настройках советника должны быть параметры индивидуальной настройки цветов инфо-панели (цвет фона, текст параметров, цвет предупреждений при просадке).
6. ТРЕБОВАНИЯ К СДАЧЕ РАБОТЫ И КОЛИЧЕСТВУ СЕТ-ФАЙЛОВ
Исполнитель обязан сдать:
- Полностью открытый исходный код в формате .mq4 без привязок и ограничений.
- Библиотеку из 195 готовых СЕТ-файлов (.set): по 13 парам, разложенным по папкам, для 5 уровней стартовой лотности (0.01 до 0.05). Для каждого лота должно быть НЕ МЕНЕЕ 3 вариантов настроек (Консервативный, Умеренный, Агрессивный).
- Строгое требование к именованию сетов: Каждый файл должен идти строго под своим порядковым номером по каждой паре, с фиксацией в названии исторических показателей просадки (риска) и профита в процентах.
Шаблон: [Номер_Пары].[Порядковый_номер]_[Валютная_пара]_LEON_[Стартовый_лот]_risk_[Просадка_%]_profit_[Прибыль_%].set
Пример: 1.1_eurusd_LEON_001_risk_8_profit_22.set - В стоимость входит техническая поддержка и исправление багов в течение 14 дней после сдачи.