길고 짧은 동적 추적 전략


생성 날짜: 2023-10-17 15:55:41 마지막으로 수정됨: 2023-10-17 15:55:41
복사: 0 클릭수: 650
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

길고 짧은 동적 추적 전략

개요

다중 공간 동적 추적 전략은 동적 평균 값을 사용하여 가격 추세를 추적하는 전략이다. 그것은 일정 기간 동안의 최고 가격과 최저 가격의 이동 평균을 계산하여 현재 추세를 결정하고 ATR과 결합하여 동적 스톱 로스를 구현한다. 이 전략은 주로 명백한 추세가있는 시장에 적용되며, 트렌드 반전을 적시에 포착하여 장기간 지위를 유지한다.

전략 원칙

이 전략은 우선 일정 기간 (설정 200일) 의 최고 가격과 최저 가격의 이동 평균을 계산하고 이 둘의 중간 지점을 기준선으로 삼는다. 그리고 가격의 기준선과 오차 정도를 계산하고, 가격이 기준선보다 높은 ATR (설정 10일 ATR의 0.5배) 이 되면 상승 추세에 있다고 간주하고, 가격이 기준선보다 낮은 ATR이 되면 하락 추세에 있다고 간주한다.

가격이 기준선으로 돌아오는 경우 Exit 신호가 발생한다. 또한, ATR의 역동적인 변화는 큰 추세에 따라 스톱로드를 점차적으로 연장시켜 비추세적 변동으로 인한 과도한 거래를 줄일 수 있다.

전략적 이점

  1. 동적 평균을 통해 가격 데이터를 효율적으로 평행하여 장기적인 트렌드 방향을 식별할 수 있습니다.
  2. ATR 스톱은 스톱 라인을 동적으로 트렌드를 추적할 수 있게 해 너무 민감하지 않게 해줍니다.
  3. 유출률이 낮아진다는 것을 알 수 있습니다.
  4. 간단하고 이해하기 쉽고 실행하기 쉽습니다.

위험과 보호

  1. 위기 시장에서 잘못된 거래가 발생하기 쉽다.
  2. 변수 설정이 잘못되면 트렌드 반전 시점을 놓칠 수 있습니다.
  3. 대시장과 개인 주식에서 이탈이 있을 수 있으며, 주식시장의 공백을 고려해야 한다.

ATR 파라미터를 적절하게 조정하여 중지 감수성을 줄일 수 있으며, 다른 지표에 필터링하여 확실한 거래 시기를 선택할 수 있습니다. 또한 대장 이동과 결합하여 위험 식욕을 평가하고, 대장 다장 거래에서만 더 많은 것을 선택 할 수 있습니다.

더 나은 생각

  1. 엔트리 신호 이후 KDJ 지표와 같은 다른 지표에 의해 2차 확인을 고려할 수 있습니다.
  2. 주식의 기본 상황과 결합할 수 있는 최적화 매개 변수, 예를 들어 높은 변동률 주식 ATR 범위를 적절히 완화
  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)