
이 전략은 다중 이동 평균과 무작위 흔들림 지표의 교차 신호를 기반으로 한 정량 거래 전략이다. 전략은 단기, 중기 및 장기 이동 평균을 통합하여 무작위 흔들림 지표의 과매매 과매매 특성을 결합하여 여러 신호 확인을 통해 시장 추세 전환점과 거래 기회를 잡는다. 전략의 핵심은 여러 기술 지표의 교차 확인을 통해 거래 신호의 신뢰성을 높이는 것이다.
이 전략은 3일, 5일, 6일, 10일, 80일 다섯 개의 이동 평균과 무작위적인 흔들림 지표 (Stochastic Oscillator) 를 사용한다. 거래 신호의 촉발은 다음과 같은 조건에 기초한다:
이 전략은 다중 이동 평균과 무작위 진동 지표의 조합을 사용하여 비교적 완벽한 거래 시스템을 구축한다. 전략의 장점은 신호의 신뢰성과 시스템의 안정성이지만 거래 비용과 시장 환경에 대한 적응성을 제어하는 데 주의를 기울여야 한다. 지속적인 최적화와 개선을 통해 이 전략은 실제 거래에서 안정적인 수익을 얻을 수 있다.
/*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)