Стратегия MA Break Impulse Buy
Обзор
Стратегия реализует логику советника «M.A break mt4 buy» на высокоуровневом API StockSharp. Алгоритм ищет мощный бычий импульс после спокойной консолидации: сначала проверяются фильтры на основе экспоненциальных скользящих средних (EMA), затем анализируется «тихая» зона и, наконец, подтверждается пробой свечой, которая касается пробивной EMA. Торговля ведётся только на покупку.
Логика работы
- Фильтры тренда на EMA
- На предыдущей закрытой свече (
shift = 1) сравниваются две пары EMA. EMA(FirstFastPeriod)должна быть вышеEMA(FirstSlowPeriod).EMA(SecondFastPeriod)должна быть вышеEMA(SecondSlowPeriod).
- На предыдущей закрытой свече (
- Выбор импульсной свечи
- Импульсная свеча — последняя завершённая свеча (shift 1).
- Её цена открытия должна находиться выше EMA с периодом
TrendMaPeriod. - Минимум свечи должен коснуться либо пробить EMA с периодом
BreakoutMaPeriod. - Свеча должна быть бычьей (
Close > Open). - Диапазон свечи обязан находиться между
CandleMinSizeиCandleMaxSize(параметры переводятся из пунктов в цену черезSecurity.PriceStep). - Верхняя тень не может превышать
UpperWickLimitпроцентов от диапазона, а нижняя тень должна быть не меньшеLowerWickFloorпроцентов.
- Тихие бары и сила импульса
- Перед импульсной свечой анализируются
QuietBarsCountсвечей (shift ≥ 2); фиксируется максимальный диапазон (High-Low). - Полученный диапазон должен превышать
QuietBarsMinRange(в пунктах, затем преобразованных в цену). - Тело импульсной свечи (
Close - Open) обязано быть не меньшеImpulseStrength × quietRange.
- Перед импульсной свечой анализируются
- Управление позицией
- При выполнении всех условий и отсутствии открытых позиций отправляется рыночная заявка на покупку.
StartProtectionавтоматически выставляет стоп-лосс и тейк-профит, используя значения в пунктах, переведённые черезPriceStep.
Параметры
| Имя | Значение по умолчанию | Описание |
|---|---|---|
FirstFastPeriod |
20 | Период быстрого EMA в первом трендовом фильтре. |
FirstSlowPeriod |
30 | Период медленного EMA в первом фильтре. |
SecondFastPeriod |
30 | Период быстрого EMA во втором фильтре. |
SecondSlowPeriod |
50 | Период медленного EMA во втором фильтре. |
TrendMaPeriod |
30 | EMA, которую должна превысить цена открытия импульсной свечи. |
BreakoutMaPeriod |
20 | EMA, которую должен коснуться минимум импульсной свечи. |
QuietBarsCount |
2 | Количество «тихих» свечей до импульса. |
QuietBarsMinRange |
0.0 | Минимальный диапазон тихих свечей в пунктах. |
ImpulseStrength |
1.1 | Множитель для проверки размера тела импульса. |
UpperWickLimit |
100.0 | Максимальная длина верхней тени в процентах от диапазона. |
LowerWickFloor |
0.0 | Минимальная длина нижней тени в процентах от диапазона. |
CandleMinSize |
0.0 | Минимальный допустимый диапазон импульсной свечи (в пунктах). |
CandleMaxSize |
100.0 | Максимальный допустимый диапазон импульсной свечи (в пунктах). |
VolumeSize |
0.01 | Объём сделки, нормализуется по VolumeStep. |
StopLossPips |
20.0 | Размер стоп-лосса в пунктах (конвертируется через PriceStep). |
TakeProfitPips |
20.0 | Размер тейк-профита в пунктах (конвертируется через PriceStep). |
CandleType |
15 минут | Тип свечей, запрашиваемый у коннектора. |
Особенности реализации
- Используется высокоуровневый
Bind, поэтому индикаторы автоматически обновляются вместе со свечами. - Все расчёты производятся только по закрытым свечам (
CandleStates.Finished). - Значения в пунктах переводятся в цены через
Security.PriceStep. Если инструмент не предоставляет шаг цены, применяется запасное значение1, что соответствует поведению исходного MQL-кода. StartProtectionзапускается один раз при старте, обеспечивая защитные ордера для каждой новой позиции.- В буфере хранится не более
QuietBarsCount + 3свечей, чего достаточно для оценки тихой зоны и импульсной свечи.
Рекомендации по использованию
- Убедитесь, что инструмент предоставляет
PriceStep,VolumeStep, а также ограничения по объёму. Это необходимо для корректного перевода пунктов и нормализации объёма. - Настройте периоды EMA и
ImpulseStrengthпод конкретный рынок: снижение множителя делает алгоритм чувствительнее, повышение — фильтрует только сильные пробои. - Стратегия предполагает наличие только одной длинной позиции. Внешние сделки по тому же инструменту могут блокировать новые входы.