
다중 공간 동적 추적 전략은 동적 평균 값을 사용하여 가격 추세를 추적하는 전략이다. 그것은 일정 기간 동안의 최고 가격과 최저 가격의 이동 평균을 계산하여 현재 추세를 결정하고 ATR과 결합하여 동적 스톱 로스를 구현한다. 이 전략은 주로 명백한 추세가있는 시장에 적용되며, 트렌드 반전을 적시에 포착하여 장기간 지위를 유지한다.
이 전략은 우선 일정 기간 (설정 200일) 의 최고 가격과 최저 가격의 이동 평균을 계산하고 이 둘의 중간 지점을 기준선으로 삼는다. 그리고 가격의 기준선과 오차 정도를 계산하고, 가격이 기준선보다 높은 ATR (설정 10일 ATR의 0.5배) 이 되면 상승 추세에 있다고 간주하고, 가격이 기준선보다 낮은 ATR이 되면 하락 추세에 있다고 간주한다.
가격이 기준선으로 돌아오는 경우 Exit 신호가 발생한다. 또한, 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)