Стратегия называетсяСтратегия отслеживания трендов на основе SMA и ATR.
Эта стратегия использует индикатор SMA для определения направления ценового тренда и устанавливает позиции стоп-лосса с помощью индикатора ATR для отслеживания тренда.
(1) Пройдите длинный курс, когда цена закрытия повышается и выше SMA.
(2) Пройти короткий курс, когда цена закрытия падает и ниже SMA.
Использовать значение индикатора ATR, умноженное на множитель установленного стоп-потери, как позицию стоп-потери.
После того, как каждый бар закрывается, проверьте позицию стоп-лосса и обновите ее до значения стоп-лосса, ближего к текущей цене.
Активизируйте стоп-лосс, когда цена достигнет линии стоп-лосса.
Динамическая установка стоп-лосса индикатора ATR позволяет автоматически отслеживать тенденции.
Строгие правила стоп-лосса помогают контролировать максимальную выручку за сделку.
Только 3 параметра позволяют легко настраивать и оптимизировать.
Если множитель стоп-лосса установлен слишком высоко, то позиция стоп-лосса может быть слишком свободной, что увеличивает прибыль.
Ложные прорывы цены могут привести к отсутствию направления тренда.
Чрезмерная зависимость от оптимизации параметров может привести к приспособлению кривой.
Другие типы алгоритмов стоп-лосса могут быть протестированы, такие как движущийся стоп-лосс, пропорциональный стоп-лосс и т.д.
Другие показатели могут быть добавлены для фильтрации ложных прорывов, например, добавление условий объема торговли.
История обратного тестирования для оценки параметров
Общая идея этой стратегии ясна. Она оценивает направление тренда через SMA и использует ATR для отслеживания тенденций с хорошим контролем снижения. Она подходит для средне-долгосрочной трендовой торговли. Но параметры все еще нуждаются в надлежащей корректировке в живой торговле, и риски чрезмерной оптимизации должны быть предотвращены.
/*backtest start: 2024-01-16 00:00:00 end: 2024-01-16 17:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © omererkan //@version=5 strategy(title="SMA with ATR", overlay=true) smaLen = input.int(100, title="SMA Length") atrLen = input.int(10, title="ATR Length") stopOffset = input.float(4, title="Stop Offset Multiple", step=0.25) smaValue = ta.sma(close, smaLen) stopValue = ta.atr(atrLen) * stopOffset lowerCloses = close < close[1] and close[1] < close[2] and close[2] < close[3] enterLong = close > smaValue and lowerCloses longStop = 0.0 longStop := if enterLong and strategy.position_size < 1 close - stopValue else math.max(close - stopValue, longStop[1]) higherCloses = close > close[1] and close[1] > close[2] and close[2] > close[3] enterShort = close < smaValue and higherCloses shortStop = 0.0 shortStop := if enterShort and strategy.position_size > -1 close + stopValue else math.min(close + stopValue, shortStop[1]) plot(smaValue, color=#4169e1, linewidth=2, title="SMA") plot(strategy.position_size > 0 ? longStop : na, color=color.lime, style=plot.style_linebr, title="Long stop", linewidth=2) plot(strategy.position_size < 0 ? shortStop : na, color=color.red, style=plot.style_linebr, title="Short stop", linewidth=2) if enterLong strategy.entry("EL", strategy.long) if enterShort strategy.entry("ES", strategy.short) if strategy.position_size > 0 strategy.exit("SL Long", from_entry="EL", stop=longStop) if strategy.position_size < 0 strategy.exit("SL Short", from_entry="ES", stop=shortStop) if enterLong strategy.cancel("Exit Short") if enterShort strategy.cancel("Exit Long")