Стратегия переносит советника MetaTrader 5 Exp_ColorXPWMA_Digit_NN3_MMRec на высокоуровневый API StockSharp. Оригинальный робот состоит из трёх независимых модулей, которые работают на разных таймфреймах и анализируют изменение цвета скользящей средней ColorXPWMA. Порт сохранил эту логику: каждый модуль следит за своей серией свечей, закрывает позиции при смене цвета индикатора и при необходимости открывает сделку в новом направлении.
Конфигурация по умолчанию совпадает с MT5:
Модуль
Таймфрейм
Стоп‑лосс (пункты)
Тейк‑профит (пункты)
A
8 часов
3000
10000
B
4 часа
2000
6000
C
1 час
1000
3000
Для каждого модуля предусмотрены отдельные флаги разрешения на открытие и закрытие длинных и коротких позиций. Стратегия ведёт раздельный учёт виртуальных позиций, поэтому одновременные сделки разных таймфреймов не конфликтуют между собой.
Индикатор ColorXPWMA Digit
Индикатор реализует алгоритм MT5. Для каждой завершённой свечи выполняются следующие шаги:
Значение сглаживается выбранным типом скользящей средней (SmoothMethods, SmoothLength).
Результат округляется до заданного количества знаков (Digit).
Определяется цвет: 2 при росте значения, 0 при падении, в противном случае используется предыдущий цвет.
Параметр SignalBar задаёт, какую свечу анализировать. Значение 0 использует последнюю закрытую свечу, 1 — предыдущую и т.д. Сигнал на покупку возникает, если выбранная свеча окрашивается в цвет 2, а предыдущая имела другой цвет. Сигнал на продажу формируется при переходе в цвет 0 после другого цвета.
Соответствие методов сглаживания StockSharp:
Sma, Ema, Smma, Lwma, Jjma → одноимённые индикаторы StockSharp.
T3 → встроенная реализация Tillson T3.
Vidya → встроенная реализация VIDYA на основе осциллятора Чанде.
Ama → Kaufman Adaptive Moving Average.
Неподдерживаемые варианты (JurX, Parabolic) возвращаются к простому среднему, что соответствует поведению MT5 при отсутствии экзотических методов сглаживания.
Управление сделками и риск
Каждый модуль хранит две виртуальные позиции (лонг и шорт). При появлении сигнала на закрытие стратегия выставляет рыночную заявку на полный объём соответствующей виртуальной позиции. Сигналы на открытие игнорируются, пока открыта противоположная позиция.
Размер позиции повторяет логику MT5:
NormalMM — базовый объём.
SmallMM используется, если в последних TotalTrigger сделках набралось как минимум LossTrigger убыточных сделок в данном направлении.
Учёт ведётся отдельно для длинных и коротких серий. Результат сделки вычисляется по средней цене исполнения при полном закрытии виртуальной позиции модуля.
Риск-менеджмент реализован в ценовых шагах инструмента:
Для лонга позиция закрывается, если минимум свечи пробивает entry - StopLoss * PriceStep.
При достижении entry + TakeProfit * PriceStep фиксируется прибыль.
Для шорта правила зеркальны (entry + StopLoss — защита, entry - TakeProfit — цель).
Параметры
Все настройки доступны через StrategyParam<T> и могут оптимизироваться в дизайнере StockSharp. Параметры сгруппированы по модулям (A, B, C). В таблице приведены значения для произвольного модуля X:
Параметр
Описание
X_CandleType
Серия свечей, используемая модулем.
X_Period, X_Power
Длина окна и показатель степени для взвешивания цены.
X_SmoothMethod, X_SmoothLength, X_SmoothPhase
Настройки сглаживания. SmoothPhase сохранён для совместимости с JJMA.