모멘텀 크로스오버 이동 평균 전략


생성 날짜: 2023-12-07 15:26:38 마지막으로 수정됨: 2023-12-07 15:26:38
복사: 0 클릭수: 569
avatar of ChaoZhang ChaoZhang
1
집중하다
1619
수행원

모멘텀 크로스오버 이동 평균 전략

개요

이 전략은 14일 간단한 이동 평균 (SMA) 과 28일 간단한 이동 평균을 계산하고 도표화하여, 두 가지가 금 포크를 생성할 때 더하고, 죽은 포크를 생성할 때 공백을 만들고, 시장의 움직임 변화를 포착합니다.

전략 원칙

이 전략의 핵심 지표는 14일 SMA와 28일 SMA이다. 이 중, 14일 SMA는 최근 추세를 반영하여 가격 변화에 더 빠르게 반응한다. 28일 SMA선은 중기 추세를 반영하여 평평하다. 단기 평균 상에서 장기 평균을 통과하면 단기 추세가 장기 평균보다 우수하여 상승량을 더 잘 잡는다.

SMA 선의 교차로 공백을 판단하는 것이 더 흔한 거래 신호이다. 단일 SMA 지표에 비해 쌍 SMA 교차는 다른 기간의 정보를 결합하여 잘못된 신호를 피한다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 간단한 조작과 실행이 가능합니다.
  2. 가격 변화에 빠르게 대응하고 시장의 변동을 포착한다.
  3. 단기 및 중기 정보를 결합하면 신호는 비교적 신뢰할 수 있습니다.
  4. 시장에 따라 SMA 매개 변수를 조정할 수 있으며, 적응력이 강하다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. SMA 자체는 지연성이 있어 신호가 지연될 수 있다.
  2. 시장의 급격한 변동, 즉 급격한 돌파구와 같은 상황에 대처할 수 없습니다.
  3. 이 두 개의 선이 교차하는 경우가 많으면 거래의 빈도와 비용이 증가합니다.
  4. 진출 및 출전 규칙은 단순하고, 최적화 할 여지가 있습니다.

이에 대응하는 위험 관리 조치에는 다음과 같은 것이 포함됩니다. 적절한 중지 손실 폭을 완화하고 위험 통제에 중점을 두십시오. 시장에 따라 SMA 주기 파라미터를 조정하십시오. 다른 지표와 함께 필터링 신호를 조정하십시오.

최적화 방향

이 전략은 다음과 같은 차원에서 최적화될 수 있습니다.

  1. 필터링 조건을 추가하여 잘못된 교차 신호를 방지한다. 거래량, 스토흐 지표 등의 확인 트렌드를 결합할 수 있다.
  2. 부가적 손실 메커니즘. ATR에 따라 손실을 중지하거나, 돌파적 손실을 결합 할 수 있습니다.
  3. 최적화 SMA 주기 파라미터를 수 있다. 적응 SMA, 또는 ML 방법을 통해 동적으로 선호 파라미터를 수 있다.
  4. 다른 전략 유형과 결합하여 포트폴리오 전략을 형성합니다.

요약하다

동력 교차 평행 전략은 쌍 SMA 교차 신호를 계산하여 동적으로 시장 변화의 흐름을 포착한다. 전략은 실행하기 쉽고, 빠르게 반응하지만, 또한 지연의 위험이 있다. 미래에는 확인 신호, 중단 메커니즘, 매개 변수 선택 등의 측면에서 최적화하거나, 다른 전략 조합과 함께 더 나은 성능을 얻을 수 있다.

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

//@version=5
strategy("Tu Estrategia", overlay=true)

// Variables de estrategia
var bool longCondition = na
var bool shortCondition = na

// Indicador
emaValue = ta.ema(close, 30)
plotColor = close > open ? color.green : color.red
plot(emaValue, color=plotColor, linewidth=2)
value = 10 * open / close
plotColor2 = close == open ? color.orange : color.blue
plot(value, color=plotColor2, linewidth=2)

// Lógica de la estrategia
longCondition := ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition := ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))

// Entradas de estrategia
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

plotColor3 = strategy.position_size > 0 ? color.green :
     strategy.position_size < 0 ? color.red :
     color.yellow

plot(ta.sma(close, 10), color=plotColor3)