Стратегия Martingale Smart
Общее описание
Martingale Smart — конвертированная версия одноимённого эксперта MetaTrader. Стратегия всегда удерживает только одну позицию и после каждого убыточного цикла переключается между двумя наборами условий входа:
- Основной фильтр — пересечение двух простых скользящих средних с подтверждением направлением MACD на старшем таймфрейме. Это режим по умолчанию.
- Альтернативный фильтр — канал из скользящей средней и её отклонений (envelope). При отрицательном результате предыдущего цикла стратегия переключается на этот фильтр. Следующая убыточная сделка возвращает режим к основному фильтру.
Мартингейл увеличивает объём следующей сделки после убытка: можно умножить прошлый объём или добавить фиксированное приращение.
Подписки на данные
CandleType— таймфрейм, на котором ведутся расчёты и контроль позиции.MacdTimeFrame— отдельный таймфрейм для фильтра MACD. По умолчанию это 30 дней, что соответствует месячному графикуPERIOD_MN1в исходном советнике.
Обе подписки запускаются в методе OnStarted автоматически.
Логика торговли
- Входы рассматриваются только при отсутствии открытой позиции и после формирования всех индикаторов.
- Основной фильтр покупает, когда быстрая SMA находится ниже медленной и линия MACD выше сигнальной (для продаж условия зеркальны). Логика повторяет оригинальные вызовы
iMAиiMACDсо сдвигом на один бар. - Альтернативный фильтр использует envelope: закрытие выше нижней границы даёт сигнал на покупку, ниже верхней — на продажу.
- После убыточного цикла стратегия меняет фильтр и рассчитывает новый объём с учётом мартингейла. При прибыльном завершении фильтр не меняется, а объём сбрасывается к начальному значению.
- Сразу после входа выставляются стоп-лосс и тейк-профит, заданные в пунктах.
Управление рисками
- Перевод в безубыток — когда плавающая прибыль достигает
BreakEvenTriggerPips, стоп переносится на цену входа с учётом сдвигаBreakEvenOffsetPips. - Классический трейлинг-стоп — поддерживает стоп на расстоянии
TrailingStopPipsот последнего закрытия. - Тейк-профит по деньгам — закрывает позицию, если плавающая прибыль превышает
MoneyTakeProfit. - Тейк-профит по проценту — аналогичный порог, выраженный как процент от текущей стоимости портфеля (
PercentTakeProfit). - Денежный трейлинг — активируется при достижении
MoneyTrailingTarget, далее отслеживает максимум прибыли и закрывает позицию при просадке большеMoneyTrailingDrawdown.
Все денежные расчёты используют PriceStep и StepPrice. Если провайдер не сообщает эти параметры, применяется запасной расчёт «разница цен × объём».
Параметры
| Параметр | Описание |
|---|---|
UseMoneyTakeProfit |
Включить фиксированный денежный тейк-профит. |
MoneyTakeProfit |
Порог плавающей прибыли в валюте счёта. |
UsePercentTakeProfit |
Включить процентный тейк-профит. |
PercentTakeProfit |
Порог прибыли в процентах от стоимости портфеля. |
EnableMoneyTrailing |
Включить денежный трейлинг-стоп. |
MoneyTrailingTarget |
Уровень прибыли, с которого включается трейлинг. |
MoneyTrailingDrawdown |
Допустимая просадка прибыли после включения трейлинга. |
UseBreakEven |
Переносить стоп в безубыток после достижения цели. |
BreakEvenTriggerPips |
Дистанция в пунктах для активации безубытка. |
BreakEvenOffsetPips |
Дополнительные пункты при переносе стопа. |
MartingaleMultiplier |
Множитель объёма после убыточного цикла. |
InitialVolume |
Начальный объём первой сделки цикла. |
UseDoubleVolume |
Умножать объём (иначе используется LotIncrement). |
LotIncrement |
Фиксированное увеличение объёма без умножения. |
TrailingStopPips |
Дистанция классического трейлинга в пунктах. |
StopLossPips |
Первичный стоп-лосс в пунктах. |
TakeProfitPips |
Первичный тейк-профит в пунктах. |
FastMaPeriod |
Период быстрой скользящей средней. |
SlowMaPeriod |
Период медленной скользящей средней. |
EnvelopePeriod |
Период SMA для envelope. |
EnvelopeDeviation |
Ширина envelope в процентах. |
MacdFastLength |
Быстрая EMA MACD. |
MacdSlowLength |
Медленная EMA MACD. |
MacdSignalLength |
Период сигнальной линии MACD. |
CandleType |
Основной таймфрейм сигналов. |
MacdTimeFrame |
Таймфрейм для MACD. |
Практические замечания
- Мартингейл применяется только после полного закрытия убыточной позиции.
- Стратегия работает с одним нетто-позиционированием: при смене направления старая позиция полностью закрывается.
- Для корректных денежных расчётов необходимо задать в инструменте
PriceStep,StepPriceиVolumeStep. - Безубыток и трейлинг пересчитываются по закрытым свечам выбранного таймфрейма, внутридневные пики игнорируются.
Отличия от MetaTrader-версии
- Используется высокоуровневый API StockSharp (
SubscribeCandles+Bind) и стандартный индикаторMovingAverageConvergenceDivergenceSignalвместо прямых вызововiMACD. - Исключены брокерские проверки (freeze-level, отправка писем, обход тикетов), так как StockSharp управляет ими автоматически.
- Денежные фильтры рассчитываются по совокупной позиции, что соответствует модели портфеля StockSharp.