Стратегия Sidus EMA RSI
Стратегия представляет собой перенос эксперта MetaTrader 4 Exp_Sidus.mq4 на платформу StockSharp. В логике сохранено сочетание пересечения быстрой и медленной EMA с фильтрацией по уровню 50 индикатора RSI. Все расчёты выполняются только по закрытым свечам, и каждая свеча может сгенерировать не более одного сигнала — полностью повторяя поведение исходного советника.
Торговая логика
- Набор индикаторов
- Быстрая экспоненциальная скользящая средняя (период 5)
- Медленная экспоненциальная скользящая средняя (период 12)
- Индекс относительной силы RSI (период 21)
- Условия для покупок
- На предыдущей сигнальной свече быстрая EMA была ниже или равна медленной.
- На текущей сигнальной свече быстрая EMA пересекает медленную снизу вверх.
- Значение RSI на этой же свече строго выше 50.
- Условия для продаж
- На предыдущей сигнальной свече быстрая EMA была выше или равна медленной.
- На текущей сигнальной свече быстрая EMA пересекает медленную сверху вниз.
- Значение RSI на этой же свече строго ниже 50.
- Сдвиг сигнала — параметр
SignalShift(по умолчанию1) определяет, какая закрытая свеча считается текущей сигнальной. Значение1означает последнюю закрытую свечу,0— только что закрытую,2— свечу двумя барами ранее и т.д. Свеча для сравнения вычисляется автоматически какSignalShift + 1. - Защита от повторов — стратегия запоминает время открытия сигнальной свечи и не открывает новую позицию, если по этой свече
уже был совершён вход, что воспроизводит проверку
LastTimeв оригинале.
Управление позицией
- Одновременно открыта только одна позиция.
- При появлении противоположного сигнала активная позиция закрывается вызовом
ClosePosition(), и лишь после этого, на следующем проходе обработки, стратегия может открыть сделку в новом направлении — точь-в-точь как в MQL версии. - Метод
StartProtectionприкрепляет стоп-лосс и тейк-профит, заданные в шагах цены. Значения по умолчанию: тейк-профит80пунктов, стоп-лосс20пунктов.
Параметры
| Параметр | Описание | Значение по умолчанию | Примечание |
|---|---|---|---|
TakeProfitPoints |
Расстояние до тейк-профита в шагах цены | 80 |
0 отключает цель |
StopLossPoints |
Расстояние до стоп-лосса в шагах цены | 20 |
0 отключает защиту |
TradeVolume |
Объём заявки (лоты/контракты) | 0.1 |
На старте присваивается свойству Volume |
FastPeriod |
Период быстрой EMA | 5 |
Доступна оптимизация |
SlowPeriod |
Период медленной EMA | 12 |
Доступна оптимизация |
RsiPeriod |
Период RSI | 21 |
Доступна оптимизация |
SignalShift |
Количество закрытых свечей для расчёта сигнала | 1 |
Аналог параметра shif в MT4 |
CandleType |
Тип используемых свечей | Таймфрейм 1 час | Можно задать любой DataType |
Особенности реализации
- Подписка на свечи выполняется через
SubscribeCandles(CandleType); обработка ведётся только после перехода свечи в состояниеCandleStates.Finished. - Для доступа к значениям индикаторов на нужных свечах используется компактная очередь, что позволяет соблюдать требование
репозитория и не обращаться к
GetValue. - Если в рынке есть позиция противоположного направления, сначала вызывается
ClosePosition(), а уже затем стратегия может отправить приказBuyMarketилиSellMarketпосле фактического закрытия. - Журналирование ведётся на английском языке для удобства анализа.
Примечания по конверсии
- Расстояния стопов умножаются на
PriceStepинструмента, что эквивалентно использованиюPointв MetaTrader. - Объём 0.1 соответствует значению параметра
Lotsв исходном советнике. - Порог RSI фиксирован на уровне 50, как и в оригинальной реализации.