Стратегия пробоя канала по одной скользящей средней
Общее описание
Стратегия One MA Channel Breakout переносит логику советника MetaTrader 5 One MA EA на высокоуровневый API StockSharp. На графике строится смещённая скользящая средняя, вокруг которой формируется канал с расстояниями, задаваемыми в пунктах. Если в пределах одной свечи цена протестировала канал и открылась за его пределами, стратегия открывает позицию в сторону пробоя. Риск контролируется автоматически за счёт настраиваемых стоп-лосса и тейк-профита.
Основные особенности:
- Поддержка нескольких типов скользящих средних (SMA, EMA, SMMA, LWMA).
- Гибкий выбор цены, подаваемой на вход индикатора (close, open, high, low, median, typical, weighted).
- Раздельные смещения для значения скользящей и для свечи, используемой при анализе, полностью повторяющие параметры
Current Barв оригинальном советнике. - Преобразование расстояний в пунктах в абсолютные ценовые величины с учётом
PriceStepи количества знаков инструмента (для инструментов с 3/5 знаками используется классическое определение pip).
Алгоритм работы
Подготовка индикаторов
- Рассчитывается скользящая средняя с периодом
MaPeriod, методомMaMethodParam, смещениемMaShiftи выбранной ценойAppliedPriceTypeна свечах типаCandleType. - Верхняя и нижняя границы канала вычисляются как
ChannelHighPipsиChannelLowPipsпунктов от базовой линии. - Фиксированные буферы сохраняют историю значений, что позволяет обращаться к прошлым барам по индексам
MaBarShiftиPriceBarShift.
- Рассчитывается скользящая средняя с периодом
Формирование сигналов
- Пробой вверх: минимум анализируемой свечи находится между базовой линией и верхней границей канала, а цена открытия выше верхней границы. При отсутствии лонга (
Position <= 0) выполняется покупка. - Пробой вниз: максимум свечи располагается между базовой линией и нижней границей, а открытие ниже нижней границы. При отсутствии шорта (
Position >= 0) выполняется продажа. - Объём заявки равен параметру
TradeVolumeплюс объём, необходимый для закрытия встречной позиции, что имитирует поведение советника на хеджевом счёте.
- Пробой вверх: минимум анализируемой свечи находится между базовой линией и верхней границей канала, а цена открытия выше верхней границы. При отсутствии лонга (
Управление риском
- Значения
StopLossPipsиTakeProfitPipsпереводятся в абсолютные цены и передаются вStartProtection, которая выставляет защитные ордера. - Нулевые значения отключают соответствующую защиту.
- Значения
Дополнительного выхода из позиции не предусмотрено: закрытие происходит защитными ордерами либо разворотом по встречному сигналу.
Параметры
| Параметр | Описание |
|---|---|
MaPeriod |
Период скользящей средней (> 0). |
MaShift |
Горизонтальное смещение скользящей в барах. |
MaMethodParam |
Тип скользящей (Sma, Ema, Smma, Lwma). |
AppliedPriceType |
Цена свечи, подаваемая в индикатор. |
MaBarShift |
Индекс исторического значения скользящей (0 — текущий бар). |
PriceBarShift |
Индекс свечи, по которой анализируется пробой. |
ChannelHighPips |
Расстояние до верхней границы канала в пунктах. |
ChannelLowPips |
Расстояние до нижней границы канала в пунктах. |
StopLossPips |
Стоп-лосс в пунктах (0 — выключен). |
TakeProfitPips |
Тейк-профит в пунктах (0 — выключен). |
TradeVolume |
Торговый объём, синхронизированный с Strategy.Volume. |
CandleType |
Тип/таймфрейм свечей, используемых в расчётах. |
Особенности реализации
- Пересчёт пунктов в цену: для инструментов с 3 или 5 знаками точка =
PriceStep * 10, иначе используетсяPriceStep. - История хранится в фиксированных скользящих окнах, что избавляет от прямых вызовов
GetValueи соответствует требованиям репозитория. - Обрабатываются только завершённые свечи, что устраняет ложные сигналы на незакрытых барах.
- При наличии области на графике выводятся свечи и собственные сделки для наглядного анализа.
Рекомендации по применению
- Убедитесь, что у инструмента корректно заданы
PriceStepиDecimals; при отсутствии данных настройте пункты вручную. - Оптимизируйте
MaPeriod, границы канала и смещения под конкретный рынок и таймфрейм. - В реальной торговле комбинируйте стратегию с портфельным управлением рисками, поскольку она удерживает по одному чистому направлению на инструмент.