이중 이동 평균 교차를 기반으로 한 양적 거래 전략


생성 날짜: 2024-03-19 17:16:21 마지막으로 수정됨: 2024-03-19 17:16:21
복사: 0 클릭수: 586
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이중 이동 평균 교차를 기반으로 한 양적 거래 전략

전략 이름

이중 이동 평균 교차 양적 거래 전략

전략 개요

이 전략은 두 개의 다른 주기의 이동 평균 ((MA) 의 교차 신호를 기반으로 거래 결정을 내립니다. 단기 MA가 장기 MA를 통과하면 구매 신호를 생성합니다. 단기 MA가 장기 MA를 통과하면 판매 신호를 생성합니다. 이 전략은 가격의 중장기 경향을 포착하려고하며, 트렌드 추적을 통해 수익을 얻습니다.

전략 원칙

이 전략은 두 개의 다른 기간의 이동 평균을 주요 기술 지표로 사용합니다. 하나는 단기 이동 평균이며, 가격의 단기 경향을 반영합니다. 다른 하나는 중기 이동 평균이며, 가격의 중기 및 장기 경향을 반영합니다.

구체적으로, 단기 MA가 장기 MA를 통과하면 가격이 상승 추세에 들어갈 수 있음을 나타냅니다. 이 때 전략은 구매 신호를 생성합니다. 반대로, 단기 MA가 장기 MA를 통과하면 가격이 하향 추세에 들어갈 수 있음을 나타냅니다. 이 전략은 판매 신호를 생성합니다.

이 전략의 코드 구현에는 다음과 같은 단계가 주로 사용되었습니다.

  1. 통과하다input함수는 단기 MA와 장기 MA의 주기 변수를 설정하여 사용자 정의에 용이합니다.
  2. 사용ta.sma함수 계산 단기 MA。
  3. 마감 가격과 단기 MA의 크기와의 관계를 비교하여 가격이 MA 위에 있거나 아래에 있는지 판단한다.
  4. 종결 가격과 단기 MA의 관계가 두 개의 연속적인 바 사이에 변하는지 판단하여 구매 또는 판매 신호를 생성하는지 결정합니다.
  5. 통과하다strategy.entry함수는 구매/판매 신호에 따라 거래한다.
  6. 사용plotshape함수는 차트에 매매 신호를 표시한다.
  7. 사용plot함수는 그래프 위에 단기 MA 곡선을 그리는 것.

이러한 단계의 유기적인 결합을 통해, 이 전략은 이동 평균의 교차 변화에 따라 포지션을 동적으로 조정할 수 있으며, 시장 추세에서 오는 수익을 지속적으로 얻기 위해 시도한다.

전략적 이점

  1. 간단하고 이해하기 쉽다: 이 전략은 이동 평균을 하나의 기술 지표로만 사용하며, 원칙은 간단하고 명확하며, 이해하기 쉽고 구현하기 쉽다.
  2. 유연성: 두 개의 이동 평균의 주기적 변수를 유연하게 설정하여 다양한 시장 특성과 투자 요구에 적응 할 수 있습니다.
  3. 트렌드 추적: 전략은 이동 평균의 교차를 기반으로 트렌드를 판단하고, 가격의 중기 및 장기적인 트렌드를 효과적으로 포착하고, 시장의 추세에 따라 거래한다.
  4. 최적화: 이동 평균의 주기적 변수를 최적화하여 전략의 튼튼함과 수익을 향상시킬 수 있다.
  5. 적용 범위: 이 전략은 주식, 선물, 외환 등 다양한 금융 시장과 거래 품종에 적용될 수 있다.

전략적 위험

  1. 매개 변수 민감: 전략의 효과는 이동 평균 주기 매개 변수에 상대적으로 민감하며, 매개 변수를 잘못 설정하면 성능 저하가 발생할 수 있다.
  2. 진폭 민감성: 가격 변동이 큰 경우, 빈번한 교차 신호는 과도한 거래로 이어져 비용을 증가시킬 수 있다.
  3. 흔들림 시장: 흔들림 시장에서, 가격이 이동 평균선 아래로 자주 변동하며, 더 많은 거짓 긍정적 신호를 생성할 수 있다.
  4. 지연성: 이동 평균은 지연 지표이며, 교차 신호가 발생될 때, 가격은 이미 한동안 실행되어 약간 지연한다.
  5. 단일 지표: 이 전략은 이동 평균의 하나의 지표에만 의존하며, 시장에 대한 전체적인 고려가 부족할 수 있으며, 제한적 인 위험에 직면할 수 있습니다.

이러한 위험들에 대응하기 위해 다음의 조치를 취할 수 있습니다.

  1. 매개 변수를 최적화하여 최적의 이동 평균 주기 조합을 찾고, 안정성을 향상시킨다.
  2. 다른 기술 지표나 시장 신호 (volume, momentum, 등) 를 도입하여 전략의 고려 차원을 풍부하게 한다.
  3. 합리적인 스티드/스트로스 규칙을 설정하고, 단일 거래의 위험을 통제한다.
  4. 거래 신호를 필터링하여, 예를 들어, 연속 K 선이 트렌드 변화를 확인하도록 요구하고, 거짓된 긍정적 인 것을 줄입니다.
  5. 시장의 역동적인 변화에 적응하기 위해 전략을 정기적으로 검토하고 조정하십시오.

전략 최적화

  1. 변수 최적화: Walk forward analysis, grid search 등의 방법을 사용하여 이동 평균의 주기 변수를 최적화하여 최적의 변수 조합을 찾고, 전략의 Robustness 및 Profits 능력을 향상시킵니다. 최적화된 주기 변수는 다른 시장 특성 및 투자 스타일에 따라 조정할 수 있습니다.
  2. 신호 필터링: 거래 신호가 생성 된 후, 단기 MA와 장기 MA를 일정하게 유지하도록 요구하는 것과 같은 필터링 규칙을 통해 신호의 품질을 향상시킬 수 있습니다. MA가 교차 한 후에 가격이 일정하게 따라가도록 요구합니다.
  3. 스톱로스: 거래마다 합리적인 스톱로스 규칙을 설정할 수 있으며, 한 번의 거래의 다운사이드 위험을 방지하고, 수익을 적시에 잠금 할 수 있습니다. 스톱로스의 위치는 가격의 변동성, 지원 및 저항과 같은 요인에 따라 동적으로 조정 될 수 있습니다.
  4. 포지션 관리: 시장 추세의 강도, 계좌의 위험 견인 능력 등의 요인에 따라 각 거래의 포지션 크기를 동적으로 조정할 수 있으며, 추세가 강할 때 포지션을 늘리고, 추세가 약할 때 포지션을 줄여 시장에 더 잘 적응할 수 있습니다.
  5. 다중 지표 결합: 다른 기술 지표 또는 시장 신호와 이동 평균과 결합하여 사용할 수 있습니다. MACD, RSI, ATR 등은 여러 차원에서 트렌드를 판단하고 확인하여 전략의 신뢰성을 향상시킵니다. 다른 지표 사이의 무게는 다른 시장 상태의 안정성에 따라 조정 될 수 있습니다.

이러한 최적화 방향의 목적은 전략의 적응성, 안정성 및 수익 능력을 향상시키고, 시장의 변화와 도전에 더 잘 대응하는 것입니다. 지속적인 최적화 및 개선으로 전략은 실제 응용에서 더 나은 효과를 얻을 수 있습니다.

요약하다

이중 이동 평균 교차 양적 거래 전략은 간단하고 이해하기 쉬운, 적응력이 강한 트렌드 추적 전략이다. 그것은 두 개의 다른 주기 이동 평균의 교차 변화를 통해 가격 추세를 판단하고, 시장의 중기 및 장기 기회를 잡으려고 한다. 이 전략의 장점은 원칙이 간단하고 명확하며, 구현 및 최적화하기 쉽고, 여러 가지 금융 시장에 적용된다. 그러나 동시에 파라미터 민감성, 변동 시장의 부실성, 신호 지연 등의 위험이 있습니다.

전략을 개선하기 위해, 전략의 적응성과 안정성을 높이기 위해 파라미터 최적화, 신호 필터링, 포지션 관리, 다중 지표 결합 등의 측면에서 시작할 수 있습니다. 시장의 역동적인 변화에 적응하기 위해 정기적으로 검토하고 조정하는 전략도 필요합니다.

전체적으로, 이중 이동 평균 교차 전략은 기본적인 양적 거래 프레임 워크를 제공하지만, 실제 응용에서는 특정 시장 특성 및 투자 요구에 따라 최적화 및 개선이 필요합니다.

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

//@version=5
strategy("SMA Crossover Strategy", overlay=true)

// SMA parametrelerini ayarla
sma_short_length = input.int(15, "Kısa SMA Uzunluğu")
sma_long_length = input.int(200, "Uzun SMA Uzunluğu")

// Hareketli ortalama hesaplamalarını yap
sma_short = ta.sma(close, sma_short_length)

// Fiyatın SMA'yı yukarı veya aşağı kestiğini kontrol et
price_above_sma = close > sma_short
price_below_sma = close < sma_short

// Alım-Satım noktalarını belirle
longCondition = (close[1] < sma_short[1] and close > sma_short) and price_above_sma
shortCondition = (close[1] > sma_short[1] and close < sma_short) and price_below_sma

// Al-Sat stratejisi
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Fiyatın kısa SMA'yı yukarı kesme noktalarını göster
plotshape(series=longCondition, title="Long", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Fiyatın kısa SMA'yı aşağı kesme noktalarını göster
plotshape(series=shortCondition, title="Short", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Hareketli ortalamaları grafiğe çiz
plot(sma_short, color=color.blue, title="Kısa SMA")