이동 평균 크로스오버 전략은 양적 거래 전략입니다.

저자:차오장, 날짜: 2023-12-22 13:28:01
태그:

img

전반적인 설명

이동 평균 크로스오버 전략은 단순한 이동 평균 (SMA) 을 기반으로 한 양적 거래 전략이다. 다른 기간 SMA 크로스오버가 발생하면 구매 및 판매 신호를 생성합니다.

특히, 이 전략은 9주기 및 45주기 SMA를 계산한다. 가격이 두 개의 SMA 선을 넘을 때, 구매 신호가 생성된다. 가격이 두 개의 선을 넘을 때, 판매 신호가 유발된다.

전략 논리

이 전략의 핵심 논리는 이동 평균의 골든 크로스데드 크로스 원리에 기초한다. 이동 평균은 시장 소음을 효과적으로 필터하고 주요 트렌드 변화를 나타낼 수 있다. 단기 MA가 장기 MA보다 크스를 하면 상승 트렌드 반전을 신호한다. 반대 크로스오버는 하향 트렌드를 신호한다.

특히, 이 전략은 9 기간 및 45 기간의 간단한 이동 평균을 사용합니다. 9 기간 라인은 단기 트렌드를 나타내고 45 기간 라인은 장기적인 움직임을 포착합니다. 가격이 두 SMA 라인 위에 넘어가면 가격이 단기 및 장기적으로 상승 채널에 있음을 나타냅니다. 따라서 긴 진입을 유발합니다. 반대 크로스오버는 상승 동력을 약화하고 출구 신호를 촉구합니다.

코드 관점에서, 전략은 먼저 9주기 및 45주기 SMA 값을 계산합니다. 그 다음 ta.crossover 및 ta.crossunder 함수를 사용하여 두 MA 라인 사이의 황금 십자가와 죽은 십자가를 감지합니다. 구매 및 판매 신호가 활성화되면, 그래프 모양 함수는 가격 차트에 삼각형과 역삼각형을 그리습니다.

또한, 거래 출구를 관리하기 위해 스톱 로스 로직이 구현된다. 구체적으로, 이전 바의 높고 낮은 가격은 새로운 거래를 개설한 후 스톱 로스 가격으로 추출된다. 이것은 전략이 이익을 잠금하고 큰 손실을 방지 할 수 있게 해준다.

이점 분석

  • 이중 이동 평균 설정은 단기 소음을 필터링하면서 중장기 트렌드 전환을 캡처하여 신호 품질을 향상시킵니다.

  • 스톱 로스 메커니즘은 위험과 수익을 효과적으로 통제합니다.

  • 단순하고 쉽게 구현할 수 있는 논리, 초보자에게 적합합니다.

  • 합성 수익을 위한 높은 자본 활용.

위험 분석

  • 이중 MA 전략은 불안정한 시장에서 화프와 유효하지 않은 신호를 생성하는 경향이 있습니다.

  • 보수적인 스톱 로스 배치로 트렌드를 효과적으로 추적할 수 없습니다.

  • 열등한 매개 변수 선택은 거래의 과잉 또는 불충분한 빈도로 이어질 수 있습니다.

  • 엄청난 트렌드 전환에 적응할 수 없습니다.

해결책:

  1. 잘못된 신호를 줄이기 위해 MA 매개 변수를 최적화

  2. 트렌드를 따르는 동적 정지

  3. 다른 표시기를 사용하여 필터를 추가합니다

  4. 주요 역전에서 수동 오버라이드

최적화 방향

전략의 추가 개선:

  1. 트렌드를 더 잘 파악하기 위해 적응성 또는 기하급수적 MAs를 사용하십시오.

  2. 변동성 필터를 추가하여 시장에서 잘못된 신호를 피합니다.

  3. 가장 좋은 매개 변수 조합을 위해 매개 변수 최적화를 수행합니다.

  4. 트렌드를 따르는 메커니즘을 스톱 로스 로직에 포함시켜야 합니다.

  5. 주요 레벨 주변 신호를 피하기 위해 지원 저항 분석을 추가합니다.

  6. 기계 학습을 활용하여 신호 품질을 더 잘 필터화합니다.

결론

이동평균 크로스오버 시스템은 단순하면서도 효과적인 트렌드 추후 접근법이다. 잡음을 필터링하고 중장기 트렌드를 추적함으로써 품질 신호를 생성한다. 적절한 스톱 손실과 함께 위험 관리 트렌드 거래를 가능하게 한다. 간단한 논리 또한 초보자가 실행하기에 이상적이다. 추가 최적화는 이 전략을 전반적인 양계 시스템의 효과적인 구성 요소로 통합할 수 있다.


/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Input parameters
fast_length = input(9, title="Fast SMA Length")
slow_length = input(45, title="Slow SMA Length")

// Calculate moving averages
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)

// Buy condition
buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma)

// Sell condition
sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma)

// Calculate stop loss levels
prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on)
prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on)

// Plot signals on the chart
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy exit conditions
long_stop_loss = sell_condition ? prev_low : na
short_stop_loss = buy_condition ? prev_high : na

strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss)
strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss)

strategy.entry("Long", strategy.long, when=buy_condition)
strategy.entry("Short", strategy.short, when=sell_condition)


더 많은