간단한 이동평균 크로스오버 전략

저자:차오장, 날짜: 2024-02-21 15:11:32
태그:

img

전반적인 설명

이것은 간단한 이동 평균 (SMA) 을 기반으로 한 조합 거래 전략이다. 9 일 및 21 일 SMA 라인의 크로스오버를 구매 및 판매 신호로 사용합니다. 단기 SMA가 아래에서 장기 SMA 위에 넘을 때 구매 신호가 생성됩니다. 단기 SMA가 위에서 장기 SMA 아래에 넘을 때 판매 신호가 생성됩니다.

전략 논리

이 전략의 핵심 논리는 서로 다른 매개 변수와 함께 두 개의 SMA 라인을 사용하는 것입니다. 단기 트렌드를 나타내는 9 일 SMA와 장기 트렌드를 나타내는 21 일 SMA. 단기 트렌드 라인이 아래에서 장기 트렌드 라인의 위를 넘을 때 시장이 하향 트렌드에서 상승 트렌드로 변화하고 있음을 나타냅니다. 단기 라인이 위에서 장기 트렌드 라인의 아래를 넘을 때 상승 트렌드에서 하향 트렌드로 변화하는 것을 나타냅니다. 판매 신호를 생성합니다.

이 전략의 주요 신호는 두 SMA 라인의 골든 크로스데스 크로스이다. 짧은 SMA가 긴 SMA 위에 넘어가면 황금 십자가가 발생하여 하락 경향에서 상승 경향으로의 가능한 변화를 신호한다. 짧은 SMA가 긴 SMA 아래로 넘어가면 죽음의 십자가가 발생하여 상승 추세에서 하락이 시작될 수 있음을 암시한다. 이 두 신호를 활용하여 전략은 거래 결정을 내리기 위해 단기 및 장기 트렌드 사이의 관계를 식별한다.

장점

  1. 이해하기 쉽고 실행하기 쉽다
  2. 광범위한 테스트 / 최적화를 필요로하는 몇 가지 매개 변수
  3. 적당한 거래 빈도, 과도하게 공격적인 거래를 피하는 것
  4. 트렌드 반전 지점을 상당히 정확하게 식별합니다.
  5. 어느 정도 측정 가능성과 안정성을 제공합니다.

위험성

  1. 잘못된 신호와 윙사 (whipsaws) 를 생성하는 경향이 있습니다.
  2. 구매/판매점 선택은 체계적인 접근 방식이 아닌 경험에 크게 의존합니다.
  3. 성능은 매우 매개 변수에 의존합니다. 9일/21일 SMA는 최적이 아닐 수 있습니다.
  4. 부진/편향 시장에서 소음을 필터링하는 데 효과적이지 않습니다.
  5. 높은 변동성 환경에서의 상당한 손실 거래

가능한 개선:

  1. 잘못된 신호에 반응하지 않도록 필터를 추가합니다.
  2. 신호 신뢰성을 측정하기 위한 다른 지표를 포함
  3. 다른 제품에서 매개 변수를 테스트하고 최적화합니다.
  4. 리스크를 통제하기 위해 스톱 로스/프로프트 취득을 실행

결론

전체적으로 이것은 비교적 전통적인 단순 이중 이동 평균 크로스오버 시스템이다. 비교적 간단한 매개 변수 선택으로 이해하기 쉽고 구현하기 쉽다. 단기 및 장기 트렌드 사이의 변화를 효과적으로 추적할 수 있다. 그러나 잘못된 신호, 경험적으로 선택된 매개 변수, 고 변동성 환경에서의 평균적인 성능과 같은 문제는 해결되어야 한다. 적절한 최적화, 향상 및 조합은 탄탄한 위험 관리 관행과 함께 고려되어야 한다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Define MAs
SlowMA = ta.sma(close, 9)
FastMA = ta.sma(close, 21)

// Plot MAs
plot1 = plot(SlowMA, color=color.new(color.red, 0), title="Slow MA")
plot2 = plot(FastMA, color=color.new(color.green, 0), title="Fast MA")

// Plot MA Ribbon
fill(plot1, plot2, color=FastMA > SlowMA ? color.rgb(233, 21, 21, 50) : color.new(#1de223, 45))

// Define buy/sell conditions
longCondition = ta.crossover(SlowMA, FastMA)
shortCondition = ta.crossunder(SlowMA, FastMA)

// Strategy commands for buy/sell
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

// Plot buy/sell signals (for visualization)
plotshape(longCondition, location=location.belowbar, color=color.rgb(18, 230, 25, 37), style=shape.labelup, text="Buy", textcolor=color.white)
plotshape(shortCondition, location=location.abovebar, color=color.rgb(239, 23, 23, 40), style=shape.labeldown, text="Sell", textcolor=color.white)

더 많은