Стратегия представляет собой C# порт советника MetaTrader Testinator v1.30a. Она работает только с длинными позициями и управляет ими как корзиной. Новая покупка разрешается лишь тогда, когда все включённые фильтры дают сигнал «истина», а цена продвинулась минимум на заданное число пунктов. Логика выхода симметрична входу и основана на другой маске фильтров. Оригинал использует дневной ATR для расчёта защитных уровней, поэтому порт подписывается как на основной таймфрейм, так и на дневные свечи.
Торговая логика
Маска входа (BuySequence)
Нижние девять битов задают список проверок. Каждый активный бит должен выполнить соответствующее условие на предыдущей завершённой свече.
Бит
Условие
1
EMA(12) выше SMA(14).
2
EMA(50) ниже минимумов трёх последних свечей.
4
Минимум предыдущей свечи ниже нижней полосы Боллинджера (20, 2).
8
ADX(14) выше -DI, а +DI сильнее -DI.
16
Стохастик (16, 4, 8): %K выше %D и %D > 80.
32
Williams %R(14) выше -20.
64
Линия MACD(12, 26, 9) выше сигнальной линии.
128
Ichimoku: Senkou Span A выше Span B, Tenkan выше Kijun, минимум предыдущей свечи выше Span A.
256
RSI с периодом RsiEntryPeriod выше RsiEntryLevel и растёт относительно предыдущего значения.
Маска выхода (CloseBuySequence)
Бит
Условие
1
SMA(14) выше EMA(12).
2
EMA(50) выше максимумов трёх последних свечей.
4
Максимум предыдущей свечи выше верхней полосы выхода (BollingerCloseLength, BollingerCloseDeviation).
8
-DI выше +DI.
16
Стохастик %D ниже 80.
32
Williams %R(14) ниже -80.
64
Линия MACD ниже сигнальной.
128
Ichimoku: Senkou Span B выше Span A.
256
RSI (период RsiClosePeriod) ниже RsiCloseLevel.
Корзина увеличивается только если все активные биты входа истинны, число покупок меньше MaxBuys, а цена ушла от последней заявки минимум на StepPips пунктов. Закрытие происходит при выполнении маски выхода или при срабатывании защитных уровней.
Торговая сессия и риск-менеджмент
Торговля разрешена только в интервале TradeStartHour – TradeStartHour + TradeDurationHours - 1 (время EET). Если окно закрыто и корзина в плюсе, все покупки закрываются.
Параметры TakeProfitPips и StopLossPips задаются в пунктах. Значение -1 отключает уровень, 0 включает ATR-множители (TakeRatio, StopRatio).
Параметры StartTrailPips, TrailStepPips и соответствующие коэффициенты управляют трейлинг-стопом, также через ATR.
Для вычисления ATR(15) подписывается дневной таймфрейм, что сохраняет поведение оригинального советника.