Стратегия Bago EA Classic
Порт на StockSharp повторяет советник MetaTrader из файла MQL/7656/Bago_ea.mq4. Вся логика трендовой торговли сохранена: входы появляются только при синхронных пробоях EMA и RSI в сторону тренда, а туннель Vegas (EMA 144/169) фильтрует ложные сигналы и служит основой для поэтапного трейлинг-стопа.
Подробная логика
- Набор индикаторов
- Быстрая и медленная EMA (
FastPeriod/SlowPeriod) с настраиваемым методомMaMethodи ценойMaAppliedPrice. - Пара EMA с периодами 144 и 169 формирует туннель Vegas и использует те же настройки, что и рабочие средние.
- RSI (
RsiPeriod,RsiAppliedPrice) отслеживает пересечения уровня 50. - Все индикаторы получают данные из свечного подписки
CandleTypeчерез высокоуровневый методBind.
- Быстрая и медленная EMA (
- Машина состояний пересечений
- Пересечения EMA и RSI фиксируются флагами «вверх/вниз» и счётчиками баров. Состояние активно
CrossEffectiveBarsзакрытых свечей либо до появления противоположного пересечения, как в MQL-версии. - Дополнительные флаги туннеля фиксируют, когда цена переходит на другую сторону Vegas, что определяет режим сопровождения позиции.
- Пересечения EMA и RSI фиксируются флагами «вверх/вниз» и счётчиками баров. Состояние активно
- Торговые сессии
- Сделки разрешены только в выбранные периоды: Лондон (07–16), Нью-Йорк (12–21), Токио (00–08 плюс свеча 23:00). Переключатели соответствуют
extern boolиз оригинального кода.
- Сделки разрешены только в выбранные периоды: Лондон (07–16), Нью-Йорк (12–21), Токио (00–08 плюс свеча 23:00). Переключатели соответствуют
- Фильтры входов
- Покупка: нужны активные флаги EMA-up и RSI-up и либо закрытие выше туннеля минимум на
TunnelBandWidthPips, но не дальшеTunnelSafeZonePips, либо откат под туннель наTunnelBandWidthPipsс последующим отбоем. - Продажа: зеркальная проверка для пересечений вниз и симметричных уровней туннеля.
- При наличии противоположной позиции она закрывается рыночной заявкой перед открытием новой — полный аналог
OrderCloseиз MetaTrader.
- Покупка: нужны активные флаги EMA-up и RSI-up и либо закрытие выше туннеля минимум на
- Ведение позиции
- Базовый стоп выставляется на
StopLossPipsот цены входа. При парковке около туннеля стоп переносится с учётомStopLossToFiboPips, что повторяет «фибо»-буфер советника. - Этапы трейлинга соответствуют уровням тейк-профита EA: стоп смещается к туннелю ±(
TrailingStepX+StopLossToFiboPips) и постепенно переходит к жёсткому трейлингуTrailingStopPips. - Частичные фиксации (
PartialClose1Volume,PartialClose2Volume) выполняются при достиженииTrailingStep1PipsиTrailingStep2Pips. Остаток объёма сопровождается до третьего уровняTrailingStep3Pips. - Любое противоположное пересечение EMA/RSI немедленно закрывает всю позицию.
- Базовый стоп выставляется на
- Работа с ордерами
- Защитные приказы создаются через
SellStop/BuyStop. При каждом переносе стопа предыдущий ордер отменяется и ставится новый — аналог циклическихOrderModify. - Пересчёт пунктов использует
PriceStepинструмента и автоматически учитывает 3- и 5-значные котировки (умножение шага на десять), как в MetaTrader.
- Защитные приказы создаются через
Параметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
TradeVolume |
decimal | 3 | Совокупный объём новой позиции. |
StopLossPips |
decimal | 30 | Дистанция первоначального стоп-лосса в пунктах. |
StopLossToFiboPips |
decimal | 20 | Дополнительный буфер при переносе стопа возле туннеля. |
TrailingStopPips |
decimal | 30 | Шаг жёсткого трейлинга, когда цена вышла далеко от туннеля. |
TrailingStep1Pips |
decimal | 55 | Первый уровень прибыли (TP1). |
TrailingStep2Pips |
decimal | 89 | Второй уровень прибыли (TP2). |
TrailingStep3Pips |
decimal | 144 | Третий уровень прибыли (TP3) перед переходом к чистому трейлингу. |
PartialClose1Volume |
decimal | 1 | Объём частичного закрытия на первом уровне. |
PartialClose2Volume |
decimal | 1 | Объём частичного закрытия на втором уровне. |
CrossEffectiveBars |
int | 2 | Количество свечей, в течение которых флаги пересечений остаются актуальными. |
TunnelBandWidthPips |
decimal | 5 | Нейтральная зона вокруг туннеля, где новые сделки не открываются. |
TunnelSafeZonePips |
decimal | 120 | Максимальное удаление цены от туннеля для входа по пробою. |
EnableLondonSession |
bool | true | Разрешить торговлю с 07:00 до 16:00. |
EnableNewYorkSession |
bool | true | Разрешить торговлю с 12:00 до 21:00. |
EnableTokyoSession |
bool | false | Разрешить торговлю с 00:00 до 08:00 и на свече 23:00. |
FastPeriod |
int | 5 | Период быстрой EMA. |
SlowPeriod |
int | 12 | Период медленной EMA. |
MaShift |
int | 0 | Горизонтальный сдвиг средних. |
MaMethod |
MovingAverageType |
Exponential | Метод расчёта средних. |
MaAppliedPrice |
AppliedPriceType |
Close | Цена, подаваемая в EMA. |
RsiPeriod |
int | 21 | Период сглаживания RSI. |
RsiAppliedPrice |
AppliedPriceType |
Close | Цена, подаваемая в RSI. |
CandleType |
DataType |
H1 | Свечной источник данных. |
Особенности реализации
- Используется только высокоуровневый API: подписка на свечи,
Bindи торговые методыBuyMarket/SellMarket/BuyStop/SellStop. - Списки с историческими значениями имитируют индексацию баров (
Close[1],Close[2]) из MQL и ограничиваютсяHistoryLimit. - Метод
StartProtection()запускает встроенный механизм защиты позиций сразу после старта стратегии. - Все комментарии в коде даны на английском языке для единообразия репозитория.