이 전략은 트레이딩 신호를 생성하기 위해 ATR 지표를 활용하는 브레이크아웃 전략이다. 이 전략은 엔트리 신호를 생성하기 위해 이동 평균 시스템을 사용하고 긴 및 짧은 포지션을 구축하기 위해 황금 비율에 기반한 증폭 된 ATR 채널을 사용합니다. 트렌드에 크게 이익을 얻고 범위 제한 시장에서 작지만 안정적인 이익을 얻을 수 있습니다.
코드는 폐쇄 가격의 기간 동안 ATR을 계산하고, 상위 대역으로 1.618로 증폭하고, 하위 대역으로 2.618로 증폭합니다. EMA와 결합하면 볼링거 채널 브레이크아웃 시스템을 형성합니다. 가격이 하위 대역을 상향으로 돌파할 때 길게 이동하고, 상위 대역을 하향으로 돌파할 때 짧게 이동하여 트렌드를 따르십시오.
이 전략은 이동 평균 필터링, ATR 채널 추적 및 골든 비율 방법론을 통합하여 좋은 안정성으로 중장기 트렌드를 효과적으로 따라갈 수 있습니다. 매개 변수를 조정함으로써 다양한 주파수에서 다른 제품에 적응 할 수 있으며 뛰어난 시장 적응력으로 탐구 할 가치가 있습니다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) len = input(52, type=input.integer, minval=1, title="Length") mul = input(1.618, type=input.float, minval=0, title="Length") mullow = input(2.618, type=input.float, minval=0, title="Length") price = sma(close, 1) average = ema(close, len) diff = atr(len) * mul difflow = atr(len) * mullow bull_level = average + diff bear_level = average - difflow bull_cross = crossunder(price, bear_level) bear_cross = crossunder(bull_level, price) FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2008, title = "From Year", minval = 2008) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2020, title = "To Year", minval = 2019) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) startTimeOk() => true if (startTimeOk()) strategy.entry("KOP", strategy.long, when=bull_cross) strategy.close("KOP", when=bear_cross) //strategy.entry("Sell", strategy.short, when=bear_cross) plot(price, title="price", color=color.black, transp=50, linewidth=2) a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1) a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1) a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1) fill(a0, a1, color=color.green, transp=97) fill(a0, a2, color=color.red, transp=97)