MultiTimeframeEmaAlignmentStrategy — портирование советника 1h-4h-1d.mq4 из папки MQL/7713 на платформу StockSharp. Исходный робот анализирует три таймфрейма и проверяет, чтобы быстрая EMA находилась по одну сторону от медленной EMA, дополняя логику фиксированным стоп-лоссом, тейк-профитом и трейлинг-стопом. Реализация на C# использует высокоуровневые возможности StockSharp: подписку на свечи, привязку индикаторов и рыночные приказы.
Торговая логика
Подписка на три серии свечей: M1 (основной сигнал), M5 (фильтр) и M30 (подтверждение тренда).
На каждом таймфрейме рассчитывается пара EMA (по умолчанию 8 и 64).
Сигнал на покупку формируется, когда быстрые EMA на всех таймфреймах находятся выше медленных и не теряют импульс (текущее значение не ниже предыдущего и выше значения ShiftDepth свечей назад).
Сигнал на продажу требует, чтобы быстрые EMA находились ниже медленных и сохраняли нисходящий импульс.
Сделки открываются на закрытии свечи M1. Если уже есть позиция противоположного направления, она закрывается перед открытием нового ордера.
Параметр ShiftDepth имитирует сравнение MA с «сдвигом», которое присутствует в MQL-версии, и позволяет контролировать динамику показаний EMA.
Управление рисками
TradeVolume задаёт объём сделки (по умолчанию 3 лота — как в оригинале).
Стоп-лосс и тейк-профит задаются в пунктах и переводятся в цену через PriceStep инструмента (при отсутствии шага используется значение 0.0001).
Трейлинг-стоп автоматически подтягивает стоп, когда позиция движется в прибыльную сторону.
Все защитные механизмы включаются и выключаются независимо, что соответствует флагам StopLossMode, TakeProfitMode, TrailingStopMode.
Параметры
Параметр
Описание
Значение по умолчанию
TradeVolume
Объём рыночных заявок.
3
FastLength
Период быстрой EMA.
8
SlowLength
Период медленной EMA.
64
ShiftDepth
Количество свечей для проверки импульса.
3
UseStopLoss
Включить фиксированный стоп-лосс.
true
StopLossPips
Размер стоп-лосса в пунктах.
75
UseTakeProfit
Включить тейк-профит.
true
TakeProfitPips
Размер тейк-профита в пунктах.
150
UseTrailingStop
Включить трейлинг-стоп.
true
TrailingStopPips
Дистанция трейлинг-стопа в пунктах.
30
M1CandleType
Тип свечей для таймфрейма M1.
1m
M5CandleType
Тип свечей для таймфрейма M5.
5m
M30CandleType
Тип свечей для таймфрейма M30.
30m
Рекомендации по использованию
Перед запуском убедитесь, что по всем таймфреймам есть исторические данные, чтобы EMA успели сформироваться.
Не снижайте ShiftDepth ниже 2, иначе проверка импульса будет недостаточно надёжной.
Если оставить включённым только трейлинг-стоп, уровень стопа появится после движения позиции в прибыль.
StockSharp обрабатывает сигналы по закрытию свечей, поэтому результаты могут немного отличаться от тикового исполнения в MT4, но логика согласования тренда сохраняется.
Особенности конверсии
Индикаторы подключаются через метод Bind, без прямого обращения к их буферам.
Сделки открываются и закрываются методами BuyMarket / SellMarket, что заменяет прямые вызовы OrderSend.
Почтовые уведомления, параметры проскальзывания и другие сервисные функции из MQL-версии не реализованы.