추세 추종 이동 평균 지표 전략


생성 날짜: 2024-01-29 11:46:15 마지막으로 수정됨: 2024-01-29 11:46:15
복사: 2 클릭수: 487
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

추세 추종 이동 평균 지표 전략

개요

이 전략은 트렌드 지표에 기반한 정량 거래 전략이다. 그것은 주로 3개의 다른 기간의 이동 평균을 사용하여, ATR 지표와 결합하여 시장 추세를 추적하고, 상장 시점을 판단하는 데 보조한다.

전략 원칙

이 전략은 9일 (단기), 15일 (중기), 24일 (장기) 의 3개의 이동 평균을 사용한다. 이 중 9일 (중기), 15일 (중기) 의 이동 평균은 트렌드 방향을 판단하고 시장에 들어가는 시간을 결정하는데, 24일 (중기) 의 이동 평균은 정지 및 손실을 판단하는데 사용된다. 이 전략은 또한 ATR 지표와 결합하여 이동 평균을 동적으로 조정하여 시장의 변동에 더 잘 적응한다.

구체적으로, 단기 이동 평균 상에서 중기 이동 평균을 뚫고, 그리고 종결 가격이 단기 이동 평균보다 크면, 시장상황이 트렌드에 들어가기 시작했음을 나타내고, 이 때 다단계 포지션을 구축할 수 있다. 단기 이동 평균 아래에서 장기 이동 평균을 뚫고, 또는 종결 가격이 장기 이동 평균보다 낮아지면, 트렌드 반전을 나타내고, 상장 손실을 평행하거나 공백 포지션을 구축해야 한다.

이 전략은 또한 기둥 모양의 색상을 사용하여 트렌드 방향을 직관적으로 나타냅니다. 단기선은 중간선보다 크면 녹색이고 장기선보다 작으면 빨간색입니다.

전략적 이점

  1. 세 개의 다른 기간의 이동 평균 조합을 사용하여 트렌드 방향을 더 정확하게 판단 할 수 있습니다.
  2. ATR 지표를 사용하여 이동 평균의 동적 조정으로 변동성 시장을 더 잘 추적할 수 있습니다.
  3. 장단선 정지장치를 설정하여 위험을 효과적으로 제어할 수 있습니다.
  4. 기둥 모양 도형의 색상의 시각 효과, 효과적인 형태 신호를 형성, 조작이 더 명확하다

위험과 최적화

  1. 수평적으로 정리된 시장에서는 잘못된 신호가 발생하기 쉽다.
  2. 매개 변수 설정 (예: 주기 변수) 이 부적절하면 거래가 빈번하거나 좋은 입시 시기를 잃을 수 있습니다.
  3. 거래량, MACD 등과 같은 다른 지표와 결합하여 진입 신호를 필터링하는 것을 고려할 수 있습니다.
  4. 다양한 변수 조합을 테스트하여 최적의 변수를 찾을 수 있습니다.

요약하다

이 전략은 전체적으로 좀 더 탄탄한 트렌드 추적 전략이다. 중장선 트렌드를 효과적으로 포착할 수 있으며, 동시에 스톱포드 제커니즘 제어 위험을 설정한다. 그러나 이 전략은 파라미터와 시장 상태에 상대적으로 민감하며, 더 많은 시장 환경에 적응하기 위해 추가적인 최적화가 필요하다.

전략 소스 코드
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ceyhun

//@version=4
strategy("Chaloke System Strategy",overlay=true)

P1=input(9,title="ShortTerm Period")
P2=input(15,title="MidTerm Period")
P3=input(24,title="LongTerm Period")
P4=input(5,title="Invesment Term")
P5=input(5,title="ATR Period")
Barcolor=input(true,title="Barcolor")

Sm=2*P5/10
ATRX=Sm*atr(P4)
S=ema(close,P1)-ATRX
M=ema(close,P2)-ATRX
Lg=ema(close,P3)-ATRX

Sht=iff(close==highest(close,3),S,ema(close[1],P1)-ATRX)
Mid=iff(close==highest(close,3),M,ema(close[1],P2)-ATRX)
Lng=iff(close==highest(close,3),Lg,ema(close[1],P3)-ATRX)

colors=iff(Sht>Mid and close > Sht ,color.green,iff(close < Lng or Sht<Lng,color.red,color.black))

plot(Sht,"Short",color=color.green,linewidth=2)
plot(Mid,"Middle",color=color.black,linewidth=2)
plot(Lng,"Long",color=color.red,linewidth=2)

barcolor(Barcolor ? colors :na)
   
long =  crossover(Sht,Mid) and close > Sht
short = crossunder(Sht,Lng) or close < Lng

if long
    strategy.entry("Long", strategy.long, comment="Long")
    
if short
    strategy.entry("Short", strategy.short, comment="Short")

alertcondition(long, title='Long', message='Chaloke System Alert Long')
alertcondition(short, title='Short', message='Chaloke System Alert Short')