리소스 로딩... 로딩...

장기적 전략의 추세

저자:차오장, 날짜: 2023-10-17 15:55:41
태그:

img

전반적인 설명

트렌드 포워드 롱 오너 전략 (Trend Following Long Only Strategy) 은 동적 이동 평균을 사용하여 가격 트렌드를 추적하는 전략이다. 이 전략은 한 기간 동안 가장 높고 가장 낮은 가격의 이동 평균을 계산하여 현재 트렌드를 결정하고 동적 스톱 로스 및 수익을 취하기 위해 ATR와 결합합니다. 이 전략은 장기 보유를 위해 트렌드 반전을 적시에 파악하여 트렌딩 시장에서 잘 작동합니다.

전략 논리

이 전략은 먼저 한 기간 동안 (전면 200일) 최고와 최저 가격의 이동 평균을 계산하고 그 중간점을 기준점으로 취한다. 그 다음 기준점에서 가격의 오차를 측정한다. 가격이 기준점보다 1 ATR (0.5배 10일 ATR 기본값) 높으면 상승 추세로 간주된다. 가격이 기준점보다 1 ATR 낮으면 하락 추세로 간주된다. 트렌드 상태에 따라 긴 또는 짧은 포지션을 입력한다.

가격이 기본선으로 돌아오면 출구 신호가 발동됩니다. 또한 동적 ATR은 주요 트렌드를 추적하고 수익을 취하도록 허용하며, 사소한 변동에 대한 과도한 거래를 피합니다.

장점

  1. 동적 평균은 장기 트렌드 방향을 파악하기 위해 원활한 가격 행동을 효과적으로 수행합니다.
  2. ATR 기반 정지는 과도한 민감성을 동적으로 피하는 주요 트렌드를 추적합니다.
  3. 트렌드 반전 현상을 적시에 파악하는 것 은 적시에 발생하는 자본 낭비 를 줄여준다
  4. 간단한 논리, 쉽게 구현

위험 및 완화

  1. 다양한 시장에서 잘못된 신호를 생성할 수 있습니다.
  2. 부적절한 매개 변수 조정으로 트렌드 반전을 놓칠 수 있습니다.
  3. 시장 및 개별 재고 사이의 오차가 고려되어야합니다.

위험은 ATR 매개 변수를 조정하고 높은 확률의 설정에 대한 필터를 추가하고 시장 조건과 위험 욕구를 평가함으로써 감소 할 수 있습니다.

개선 방법

  1. KDJ와 같은 지표를 사용하여 초기 입력 신호 후에 2차 확인을 추가합니다.
  2. 변동성, 개별 주식의 기본 요소에 기반한 매개 변수를 최적화
  3. 수익률과 매출율을 균형을 맞추기 위해 백테스트에 기초한 미세 조정 ATR 곱셈자
  4. 스톱 로스 및 수익을 취하기 위한 동적 변동성 조정
  5. 자동화된 매개 변수 최적화를 위해 기계 학습 기술을 활용

요약

트렌드를 따르는 긴 전략은 전반적으로 사용하기 쉬운 트렌드 거래 시스템이다. 동적 평균을 사용하여 트렌드 방향을 식별하고 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)

더 많은