트렌드 포워드 롱 오너 전략 (Trend Following Long Only Strategy) 은 동적 이동 평균을 사용하여 가격 트렌드를 추적하는 전략이다. 이 전략은 한 기간 동안 가장 높고 가장 낮은 가격의 이동 평균을 계산하여 현재 트렌드를 결정하고 동적 스톱 로스 및 수익을 취하기 위해 ATR와 결합합니다. 이 전략은 장기 보유를 위해 트렌드 반전을 적시에 파악하여 트렌딩 시장에서 잘 작동합니다.
이 전략은 먼저 한 기간 동안 (전면 200일) 최고와 최저 가격의 이동 평균을 계산하고 그 중간점을 기준점으로 취한다. 그 다음 기준점에서 가격의 오차를 측정한다. 가격이 기준점보다 1 ATR (0.5배 10일 ATR 기본값) 높으면 상승 추세로 간주된다. 가격이 기준점보다 1 ATR 낮으면 하락 추세로 간주된다. 트렌드 상태에 따라 긴 또는 짧은 포지션을 입력한다.
가격이 기본선으로 돌아오면 출구 신호가 발동됩니다. 또한 동적 ATR은 주요 트렌드를 추적하고 수익을 취하도록 허용하며, 사소한 변동에 대한 과도한 거래를 피합니다.
위험은 ATR 매개 변수를 조정하고 높은 확률의 설정에 대한 필터를 추가하고 시장 조건과 위험 욕구를 평가함으로써 감소 할 수 있습니다.
트렌드를 따르는 긴 전략은 전반적으로 사용하기 쉬운 트렌드 거래 시스템이다. 동적 평균을 사용하여 트렌드 방향을 식별하고 ATR 기반의 스톱으로 위험 통제를 설정합니다. 트렌딩 시장에서 수익성 있는 변동을 효과적으로 잡을 수 있습니다. 윙스를 방지하기 위해 시장의 범위를 피해야합니다. 매개 변수 조정, 필터 추가 및 기계 학습 기술을 통합함으로써 추가 개선이 가능합니다.
/*backtest start: 2022-10-10 00:00:00 end: 2023-10-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Trend Following Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length") smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length") atr_length = input(10, type=input.integer, minval=1, title="ATR Length") atr_multiplier = input(0.5, type=input.float, minval=0.5, title="ATR Multiplier") vola = atr(atr_length) * atr_multiplier price = sma(close, 3) l = ema(lowest(low, lookback_length), smoother_length) h = ema(highest(high, lookback_length), smoother_length) center = (h + l) * 0.5 upper = center + vola lower = center - vola trend = ema(price > upper ? 1 : (price < lower ? -1 : 0), 3) c = trend < 0 ? upper : lower pcenter = plot(center, transp=100) pclose = plot(close, transp=100) pc = plot(c, transp=100) buy_signal = crossover(trend, 0.0) sell_signal = crossunder(trend, 0.0) strategy.entry("Buy", strategy.long, when=buy_signal) strategy.close("Buy", when=sell_signal) bgcolor(trend >= 0 ? color.green : color.red, transp=95) fill(pc, pclose, color=trend >= 0 ? color.green : color.red)