이 전략은 트레일링 스톱 (TS) 의 기초로 평균 참 범위 (ATR) 를 사용하여 트렌드를 따르기 위해 스톱 로스 포지션을 동적으로 조정합니다. 가격이 유리한 방향으로 움직일 때, 스톱 로스 포지션은 수익을 잠금하기 위해 그에 따라 조정됩니다. 가격이 부정적인 방향으로 움직일 때, 스톱 로스 포지션은 변하지 않으며 가격이 스톱 로스 가격에 도달하면 포지션은 닫습니다. 이 전략의 핵심은 스톱 로스 포지션의 동적 조정에 있습니다. 이는 수익을 보호하고 트렌드가 계속됨에 따라 이익을 확장 할 수 있습니다.
ATR 후속 스톱 전략은 가격 변동의 크기에 따라 스톱 손실 위치를 동적으로 조정할 수 있으며 트렌딩 시장에서 좋은 결과를 얻을 수 있습니다. 그러나이 전략에는 불안한 시장에 대처할 수 없다는 것과 과도한 스톱 손실 빈도 및 격차 개척을 피하는 어려움과 같은 위험이 있습니다. 이러한 단점을 해결하기 위해 전략은 트렌드 판단, 영리 전략 및 최대 스톱 손실 제한 측면에서 최적화 및 개선 될 수 있습니다. 이러한 조정으로 전략의 적응력과 수익성이 향상 될 수 있습니다.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Long TAP", overlay=true) // Constants keyValueDefault = 3.0 keyValueStep = 0.5 atrPeriodDefault = 10 // Inputs keyValue = input.float(keyValueDefault, title="Key Value") atrPeriod = input.int(atrPeriodDefault, title="ATR Period") // Calculations xATR = ta.atr(atrPeriod) nLoss = keyValue * xATR // Trailing Stop Calculation var float xATRTrailingStop = 0.0 xATRTrailingStop := ta.highest(math.max(nz(xATRTrailingStop[1], 0), close - nLoss), 1) xATRTrailingStop := ta.lowest(math.min(nz(xATRTrailingStop, 0), close + nLoss), 1) // Position Calculation var int pos = 0 pos := nz(pos[1], 0) if (close[1] < nz(xATRTrailingStop, 0) and close > nz(xATRTrailingStop, 0)) pos := 1 else if (close[1] > nz(xATRTrailingStop, 0) and close < nz(xATRTrailingStop, 0)) pos := -1 // Plotting Trailing Stop var color xcolor = na if (pos == -1) xcolor := color.red else if (pos == 1) xcolor := color.green plot(xATRTrailingStop, color=xcolor, title="Trailing Stop") // Buy/Sell Signals buySignal = ta.crossover(close, xATRTrailingStop) sellSignal = ta.crossunder(close, xATRTrailingStop) // Strategy if (buySignal) strategy.entry("Long", strategy.long) label.new(bar_index, xATRTrailingStop, text="Buy Signal", color=color.green, style=label.style_label_up, yloc=yloc.belowbar) if (sellSignal) strategy.entry("Short", strategy.short) label.new(bar_index, xATRTrailingStop, text="Sell Signal", color=color.red, style=label.style_label_down, yloc=yloc.abovebar) // Alerts alertcondition(buySignal, title='UT BOT Buy', message='UT BOT Buy') alertcondition(sellSignal, title='UT BOT Sell', message='UT BOT Sell')