다중 이동 평균 및 확률적 오실레이터 교차 양적 전략

SMA MA
생성 날짜: 2024-12-12 17:23:02 마지막으로 수정됨: 2024-12-12 17:23:02
복사: 0 클릭수: 414
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 이동 평균 및 확률적 오실레이터 교차 양적 전략

개요

이 전략은 다중 이동 평균과 무작위 흔들림 지표의 교차 신호를 기반으로 한 정량 거래 전략이다. 전략은 단기, 중기 및 장기 이동 평균을 통합하여 무작위 흔들림 지표의 과매매 과매매 특성을 결합하여 여러 신호 확인을 통해 시장 추세 전환점과 거래 기회를 잡는다. 전략의 핵심은 여러 기술 지표의 교차 확인을 통해 거래 신호의 신뢰성을 높이는 것이다.

전략 원칙

이 전략은 3일, 5일, 6일, 10일, 80일 다섯 개의 이동 평균과 무작위적인 흔들림 지표 (Stochastic Oscillator) 를 사용한다. 거래 신호의 촉발은 다음과 같은 조건에 기초한다:

  1. 구매 신호: MA10에서 MA5와 MA6를 뚫고, 동시에 임의의 진동 지표의 K선에서 D선을 뚫을 때 트리거된다.
  2. 판매 신호: MA5 아래 MA10과 MA6을 통과하고, 동시에 임의의 진동 지표의 D선 아래 K선을 통과할 때 트리거. 전략은 15주기의%K값과 9주기의%D값을 사용하여 이동 평균을 통해 신호를 더욱 부드럽게 한다.

전략적 이점

  1. 다중 확인 메커니즘: 여러 이동 평균과 무작위 진동 지표의 교차 확인을 통해 가짜 돌파의 위험을 효과적으로 감소시킵니다.
  2. 트렌드 추적은 트렌드를 포착하는 동시에 거래의 정확성을 높이기 위해 오버 바이 오버 셀 영역을 식별합니다.
  3. 신호 안정성: 다중 이동 평균의 교차 확인을 사용하여 시장 소음을 필터링 할 수 있습니다.
  4. 적응력: 다른 시장 환경과 시간 주기에도 적용할 수 있다.

전략적 위험

  1. 뒤떨어진 위험: 이동 평균은 본질적으로 뒤떨어진 지표이며, 출전 및 출전의 시간을 약간 지연시킬 수 있다.
  2. 변동성이 큰 시장의 위험: 횡보장이고 변동성이 큰 시장에서는 거짓 신호가 자주 발생할 수 있습니다.
  3. 매개 변수 민감성: 여러 지표의 매개 변수 설정은 충분히 테스트해야 하며, 다른 시장 환경에는 조정할 필요가 있을 수 있다.
  4. 신호 충돌: 여러 지표가 서로 상반되는 신호를 일으킬 수 있으므로 명확한 우선 순위 메커니즘이 필요합니다.

전략 최적화 방향

  1. 동적 파라미터 조정: 시장의 변동에 따라 이동 평균 주기 및 무작위 진동기 파라미터를 자동으로 조정할 수 있다.
  2. 트렌드 필터를 추가: ADX와 같은 트렌드 지표를 도입하고, 강한 트렌드 동안 전략 파라미터를 조정한다.
  3. 손해 차단 메커니즘을 최적화: 추적 손해 차단과 고정 손해 차단의 조합을 추가한다.
  4. 트랜지먼트 확인이 추가: 합성 트랜지먼트 지표와 신호 확인이 결합되어 신뢰성이 향상된다.
  5. 시장 환경 인식: 시장 환경 판단 모듈을 추가하여 다른 시장 조건에서 다른 파라미터 설정을 사용합니다.

요약하다

이 전략은 다중 이동 평균과 무작위 진동 지표의 조합을 사용하여 비교적 완벽한 거래 시스템을 구축한다. 전략의 장점은 신호의 신뢰성과 시스템의 안정성이지만 거래 비용과 시장 환경에 대한 적응성을 제어하는 데 주의를 기울여야 한다. 지속적인 최적화와 개선을 통해 이 전략은 실제 거래에서 안정적인 수익을 얻을 수 있다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Moving Average and Stochastic Crossover Strategy", overlay=true)

// Calculate the moving averages
ma3 = ta.sma(close, 3)
ma5 = ta.sma(close, 5)
ma6 = ta.sma(close, 6)
ma10 = ta.sma(close, 10)
ma80 = ta.sma(close, 80)

// Stochastic Oscillator with settings %K(15), %D(9), and slowing 9
k = ta.stoch(close, high, low, 15)
d = ta.sma(k, 9)
slow_d = ta.sma(d, 9)

// Buy signal confirmation: MA10 crosses above MA5, MA6, and K line crosses above D line
buySignalConfirmation = ta.crossover(ma10, ma5) and ta.crossover(ma10, ma6) and ta.crossover(k, d)

// Sell signal confirmation: MA5 crosses above MA10, MA6, and D line crosses above K line
sellSignalConfirmation = ta.crossunder(ma5, ma10) and ta.crossunder(ma5, ma6) and ta.crossunder(d, k)

// Strategy logic
if (buySignalConfirmation)
    strategy.entry("Buy", strategy.long)
    
if (sellSignalConfirmation)
    strategy.entry("Sell", strategy.short)

// Plot the moving averages and Stochastic Oscillator for visualization
plot(ma3, color=color.orange, title="MA3", linewidth=2)
plot(ma5, color=color.blue, title="MA5", linewidth=2)
plot(ma6, color=color.purple, title="MA6", linewidth=2)
plot(ma10, color=color.green, title="MA10", linewidth=2)
plot(ma80, color=color.red, title="MA80", linewidth=2)

plot(k, color=color.blue, title="%K", linewidth=2)
plot(d, color=color.red, title="%D", linewidth=2)
plot(slow_d, color=color.purple, title="Slow %D", linewidth=2)