
Эта стратегия называетсяСтратегия следования за трендом на основе SMA и ATR。
Эта стратегия использует SMA для определения направления ценового тренда и использует ATR для установления стоп-лосса для отслеживания тренда. Сделайте пробел, когда цена проваливает восходящую тенденцию, и сделайте больше, когда цена пробивает нисходящую тенденцию, чтобы совершить трендовую торговлю.
(1) Делайте больше, когда цена закрытия повышается и выше SMA (2) Произойти дисконт, когда цена закрытия падает и ниже SMA
Умножьте значение показателя ATR на установленный стоп-мобиль в качестве стоп-позиции.
После закрытия каждой K-линии проверяется стоп-позиция и обновляется на стоп-значение, которое ближе к текущей цене.
После того, как цена коснулась линии остановки, она активно прекратила убытки.
Динамическая стоп-стратегия с использованием 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")