이중 이동 평균 거래 전략

저자:차오장, 날짜: 2024-01-19 14:10:38
태그:

img

전반적인 설명

이중 이동 평균 거래 전략 (Dual Moving Average Trading Strategy) 은 일반적인 양적 거래 전략이다. 이 전략은 서로 다른 기간을 가진 두 개의 이동 평균을 사용하여 크로스오버를 기반으로 거래 신호를 생성합니다. 구체적으로 단기 이동 평균이 장기 이동 평균보다 높을 때 구매 신호로 간주되며 단기 이동 평균이 장기 이동 평균보다 낮을 때 판매 신호로 간주됩니다.

원칙

이 전략의 핵심 원칙은: 단기 이동 평균은 자산 가격의 단기 트렌드를 반영하고, 장기 이동 평균은 자산 가격의 장기 트렌드를 반영한다. 단기 라인이 장기 라인의 위를 넘을 때, 단기 트렌드가 상승으로 전환되었다는 것을 나타냅니다. 이 때 당신은 구입할 수 있습니다. 단기 라인이 장기 라인의 아래를 넘을 때, 단기 트렌드가 하락으로 전환되었다는 것을 나타냅니다. 이 때 당신은 판매 할 수 있습니다. 트렌드를 따라, 가격 트렌드의 전환점을 캡처하십시오.

구체적으로, 전략은 두 개의 이동 평균을 정의합니다: 단기 가격 트렌드를 포착하기 위해 5 일 단기 이동 평균; 그리고 장기 가격 트렌드를 판단하기 위해 15 일 장기 이동 평균. 5 일 라인이 15 일 라인의 위로 이동하면 단기 가격이 상승하기 시작했다는 것을 나타냅니다. 이는 구매 신호입니다. 5 일 라인이 15 일 라인의 아래에 넘어가면 단기 가격이 떨어지기 시작한다는 것을 나타냅니다. 이것은 판매 신호입니다.

이점 분석

다른 전략에 비해 이중 이동 평균 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 조작이 간단하고 이해하기 쉽고 실행이 쉬워 질 수량 거래 초보자에게 적합합니다.
  2. 트렌드를 따라가며 복잡한 시장 트렌드의 근본적인 이유를 추구하지 마십시오.
  3. 유연한 매개 변수 조정, 이동 평균 기간은 다른 시장 환경에 적응하도록 조정 할 수 있습니다.
  4. 효율적인 시장 소음을 필터, 장기 및 단기 트렌드의 전환점을 포착합니다.
  5. 트랜잭션 비용과 미끄러짐 손실을 줄이기 위해 사용자 정의 가능한 거래 빈도

위험 분석

이중 이동 평균 전략은 또한 몇 가지 위험을 가지고 있습니다. 주로 다음과 같습니다.

  1. 이것은 잘못된 신호를 생성할 수 있습니다. 왜냐하면 이동 평균은 본질적으로 뒤떨어진 신호이기 때문입니다.
  2. 두 이동 평균을 동시에 모니터링 할 필요가 있습니다, 매개 변수 조정 및 효과 테스트는 복잡합니다.
  3. 급격한 가격 변동 시나리오를 잘 처리할 수 없고 손해를 쉽게 막을 수 있습니다.
  4. 거래 빈도는 너무 높거나 너무 낮을 수 있습니다. 매개 변수를 최적화해야합니다.
  5. 이 효과는 시장 조건과 밀접한 상관관계를 가지고 있으며, 전체적인 하위 시장에서 낮은 성과입니다.

해결책:

  1. 신호를 필터링하기 위해 다른 표시기와 결합합니다.
  2. 이동 평균 매개 변수 및 테스트 성능을 최적화합니다.
  3. 적절한 스톱 손실 범위를 설정합니다.
  4. 거래 빈도를 최적화하기 위해 이동 평균 매개 변수를 조정합니다.
  5. 다른 시장 조건에 따라 매개 변수를 조정합니다.

최적화 방향

이 전략은 다음과 같은 방향으로 최적화 될 수 있습니다.

  1. MACD, KDJ 같은 다른 지표와 결합하여 잘못된 신호를 필터합니다.

  2. 적응 가능한 이동 평균을 도입하고 안정성을 높이기 위해 시장 변동성에 기반한 매개 변수를 동적으로 조정합니다.

  3. 가장 좋은 조합을 찾기 위해 이동 평균 매개 변수를 최적화하고 전략 성능을 향상시킵니다.

  4. 손실을 제한하고 위험 통제를 강화하기 위해 스톱 로스 메커니즘을 추가합니다.

  5. 여러 시간 프레임의 조합, 안정성을 향상시키기 위해 매일 및 주간 라인의 신호를 활용합니다.

  6. 마르코프 상태 스위치, 적응력을 향상시키기 위해 다른 시장 상태에서 다른 매개 변수를 사용합니다.

요약

일반적으로 이중 이동 평균 거래 전략은 매우 효과적이고 안정적입니다. 거래 원칙은 이해하고 구현하는 것이 간단하며 매개 변수는 시장 추세에 적응하는 데 유연합니다. 한편으로는 잘못된 신호를 생성하고 급격한 시장 변동을 처리하는 데 어려움을 겪는 것과 같은 몇 가지 제한 사항이 있습니다. 다른 도구와 매개 변수 최적화를 도입하여 해결할 수 있습니다. 전반적으로 이것은 양적 거래 초보자가 배우고 연습하기에 적합한 실용적인 전략입니다.


//@version=3
strategy("CS: 2 Moving Averages Script - Strategy (Testing)", overlay=true)

// === GENERAL INPUTS ===
// short ma
ma1Source   = input(defval = close, title = "MA 1 Source")
ma1Length   = input(defval = 5, title = "MA 1 Period", minval = 1)
// long ma
ma2Source   = input(defval = close, title = "MA 2 Source")
ma2Length   = input(defval = 15, title = "MA 2 Period", minval = 1)

// === SERIES SETUP ===
/// a couple of ma's..
ma1 = ema(ma1Source, ma1Length)
ma2 = ema(ma2Source, ma2Length)

// === PLOTTING ===
fast = plot(ma1, title = "MA 1", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(ma2, title = "MA 2", color = green, linewidth = 2, style = line, transp = 30)

// === LOGIC ===
enterLong = crossover(ma1, ma2)
exitLong = crossover(ma2, ma1)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2012)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// Entry //
strategy.entry(id="Long Entry", long=true, when=enterLong and window())
strategy.entry(id="Short Entry", long=false, when=exitLong and window())

더 많은