이중 이동 평균을 기반으로 한 거래 전략


생성 날짜: 2024-01-19 14:10:38 마지막으로 수정됨: 2024-01-19 14:10:38
복사: 0 클릭수: 574
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이중 이동 평균을 기반으로 한 거래 전략

개요

이중 이동 평균 거래 전략 (Dual Moving Average Trading Strategy) 은 일반적인 양적 거래 전략이다. 이 전략은 두 개의 다른 시간 주기 이동 평균을 사용하여 교차 상황에 따라 거래 신호를 생성한다. 구체적으로, 단기 이동 평균 상에서 장기 이동 평균을 통과하면 구매 신호로 간주되며, 단기 이동 평균 아래에서 장기 이동 평균을 통과하면 판매 신호로 간주된다.

원칙

이 전략의 핵심 원칙은: 단기 이동 평균은 자산 가격의 단기 경향을 반영할 수 있고, 장기 이동 평균은 자산 가격의 장기 경향을 반영할 수 있다. 단기 라인을 가로질러서는 장기 라인을 가로질러서는 단기 경향이 상승으로 바뀌어 구매할 수 있으며, 단기 라인을 가로질러서는 장기 라인을 가로질러서는 단기 경향이 하락으로 바뀌어 판매할 수 있다. 이 방법으로 순차적으로 가격 경향의 전환점을 잡을 수 있다.

구체적으로, 이 전략은 두 개의 이동 평균을 정의합니다. 하나는 5 일 단기 이동 평균으로 단기 가격 추세를 포착하고 다른 하나는 15 일 장기 이동 평균으로 장기 가격 추세를 판단합니다. 5 일선이 15 일선을 아래에서 통과하면 단기 가격이 상승하기 시작한다는 것을 의미합니다.

우위 분석

다른 전략에 비해, 이중 이동 평균 전략은 다음과 같은 장점이 있습니다:

  1. 간단하고 이해하기 쉬운 구현, 양자 거래 초보자에게 적합합니다.
  2. 그리고, 복잡하고 복잡한 시장에서 가격 동향을 추적하지 않는 근본적인 이유
  3. 변수 조정 유연성, 이동 평균의 주기를 조정하여 다른 시장 환경에 적응할 수 있습니다
  4. Capture는 시장의 소음을 효과적으로 필터링하여 장기 및 단기 동향의 전환점을 제공합니다.
  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())