다중 이동 평균 추세 추종 거래 전략

MA SMA
생성 날짜: 2024-12-20 15:52:25 마지막으로 수정됨: 2024-12-20 15:52:25
복사: 2 클릭수: 399
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 이동 평균 추세 추종 거래 전략

개요

이 전략은 다중 이동 평균에 기반한 트렌드 추적 시스템이다. 이 전략은 세 개의 다른 주기 ((50·100·200) 의 간단한 이동 평균을 사용하여 빠른 평균과 중간 평균의 교차 신호를 통해 느린 평균의 트렌드 확인과 결합하여 시장의 트렌드 기회를 포착한다. 이 전략의 설계 철학은 “트렌드를 따르는”의 고전적 거래 아이디어에 부합하며, 여러 시간 프레임의 평균을 조합하여 신호의 신뢰성을 높인다.

전략 원칙

전략의 핵심 논리는 다음과 같은 핵심 요소에 기초합니다.

  1. 세 개의 다른 주기의 간단한 이동 평균 (SMA): 빠른 (50 주기), 중간 (100 주기) 및 느린 (200 주기)
  2. 시장 진입 신호를 트리거하기 위한 조건:
    • 다중 입점: 빠른 라인에서 중간 라인을 통과하고 값은 느린 라인 위에 있습니다.
    • 공허 입점: 빠른 라인 아래에서 중간 라인을 통과하고 가격이 느린 라인 아래에 있습니다.
  3. 출력 신호의 생성:
    • 다중 평점: 중선을 넘어서
    • 빈 머리 평상시: 빠른 선에서 중간 선을 통과
  4. 트렌드 필터로 느린 평균선을 사용하여 거래 신호의 품질을 향상시킵니다.

전략적 이점

  1. 시스템 안정성: 삼중 일률적 교차 검증을 사용하여 가짜 신호를 효과적으로 필터링 할 수 있습니다.
  2. 리스크 관리가 개선되었습니다. 동속 평균선으로 트렌드를 확인하여 역동 거래의 가능성을 낮추었습니다.
  3. 폭넓은 적응성: 전략은 다양한 시기와 시장 환경에 적용할 수 있다.
  4. 운영 규칙이 명확하다: 입출소 신호가 명확하고 실행하기 쉽다.
  5. 시각화 효과: 색상 표기 및 그래픽 표기로 거래 신호가 직관적으로 명확하다.

전략적 위험

  1. 뒤떨어진 위험: 이동 평균은 본질적으로 뒤떨어진 지표이며, 시장의 출발점을 놓칠 수 있습니다.
  2. 흔들림 시장은 적용되지 않습니다: 가로 디스크 정리 단계에서 빈번하게 잘못된 신호가 발생할 수 있습니다.
  3. 수익 위험: 입점 지점은 트렌드 시작 지점에서 멀리 떨어져 있고, 투자 효율성에 영향을 미칠 수 있다.
  4. 스톱로스 컨트롤: 전략에 명확한 스톱로스 메커니즘이 없고, 리스크 컨트롤을 보완해야 한다.

전략 최적화 방향

  1. 유동성 지표 도입: ATR과 같은 유동성 지표와 결합하여 입점 시기와 포지션 관리를 최적화
  2. 트렌드 강도 필터를 추가: 트렌드 강도 지표인 ADX를 추가하여 거래 신호 품질을 향상시킬 수 있습니다.
  3. 손해 차단 메커니즘을 개선: 유동적인 변동성 기반의 손해 차단을 설계하여 이익과 손실을 모두 보호합니다.
  4. 최적화 매개 변수 자율 적응: 다른 시장 주기 역학에 따라 평균 매개 변수를 조정
  5. 트랜지먼트 확인을 증가: 트랜지먼트 지표를 결합하여 신호 신뢰성을 향상

요약하다

이 전략은 고전적인 트렌드 추적 시스템으로, 다중 평균선의 조합을 통해 신호의 신뢰성을 보장하고, 주요 트렌드를 효과적으로 파악할 수 있다. 약간의 뒤처짐이 있지만, 합리적인 최적화와 위험 관리를 통해 안정적인 거래 시스템이 될 수 있다. 전략의 핵심 장점은 시스템의 안정성과 운영의 명확성에 있으며, 중장기 트렌드 거래의 기본 프레임워크에 적합하다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("MA Cross Strategy", overlay=true)

// Input untuk periode Moving Average dan warna label
fastLength = input.int(50, minval=1, title="Fast MA Length")
mediumLength = input.int(100, minval=1, title="Medium MA Length")
slowLength = input.int(200, minval=1, title="Slow MA Length")
longLabelColor = input.color(color.green, "Long Label Color")
shortLabelColor = input.color(color.red, "Short Label Color")

// Hitung Moving Average
fastMA = ta.sma(close, fastLength)
mediumMA = ta.sma(close, mediumLength)
slowMA = ta.sma(close, slowLength)

// Kondisi untuk buy dan sell
longCondition = ta.crossover(fastMA, mediumMA) and close >= slowMA
shortCondition = ta.crossunder(fastMA, mediumMA) and close <= slowMA

// Plot Moving Average
plot(fastMA, color=color.green, linewidth=1, title="Fast MA")
plot(mediumMA, color=color.orange, linewidth=1, title="Medium MA")
plot(slowMA, color=color.red, linewidth=2, title="Slow MA")

// Plot penanda crossover dengan warna dinamis
plot(ta.cross(fastMA, mediumMA) and (longCondition or shortCondition) ? mediumMA : na, 
     color=longCondition ? color.green : color.red, 
     style=plot.style_circles, linewidth=4, title="Crossover")
     
// Plot label saat kondisi entry terpenuhi
plotshape(longCondition, title="Long", location=location.belowbar, style=shape.labelup, size=size.normal, color=color.green, textcolor=color.white, text="Long")
plotshape(shortCondition, title="Short", location=location.abovebar, style=shape.labeldown, size=size.normal, color=color.red, textcolor=color.white, text="Short")

// Strategi
if longCondition
    strategy.entry("Long", strategy.long)
if shortCondition
    strategy.entry("Short", strategy.short)

// Exit strategy (berdasarkan crossover MA)
if ta.crossunder(fastMA, mediumMA) and strategy.position_size > 0
    strategy.close("Long")
if ta.crossover(fastMA, mediumMA) and strategy.position_size < 0
    strategy.close("Short")