이 전략은 이동 평균 크로스오버와 RSI 지표에 기반한 양적 거래 시스템으로, 주로 옵션 시장 거래에 설계되었습니다. 이 전략은 위험 통제를 위해 수익 및 스톱 로스 메커니즘을 구현하면서 거래 기회를 결정하기 위해 RSI 과잉 구매 / 과잉 판매 수준과 결합한 빠르고 느린 이동 평균 크로스오버 신호를 활용합니다. 전략은 5 분 시간 프레임 거래에 최적화되었습니다.
이 전략은 두 가지 주요 기술 지표를 사용합니다: 이동 평균 (MA) 및 상대 강도 지표 (RSI). 구체적으로:
이 전략은 MA 크로스오버와 RSI 지표를 결합하여 비교적 완전한 거래 시스템을 구축합니다. 이 전략의 강점은 여러 신호 확인과 포괄적인 리스크 관리에 있으며, 시장 조건이 전략 성능에 미치는 영향에주의를 기울여야합니다. 지속적인 최적화 및 개선을 통해 전략은 옵션 시장에서 안정적인 성능을 약속합니다. 거래자는 라이브 구현 전에 철저한 백테스팅과 매개 변수 최적화를 수행하는 것이 좋습니다.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MA Crossover with RSI Debugging", overlay=true) // Inputs fastLength = input.int(7, title="Fast MA Length", minval=1) slowLength = input.int(13, title="Slow MA Length", minval=1) rsiLength = input.int(17, title="RSI Length", minval=1) rsiOverbought = input.int(64, title="RSI Overbought Level", minval=50, maxval=100) rsiOversold = input.int(43, title="RSI Oversold Level", minval=0, maxval=50) takeProfitPerc = input.float(4, title="Take Profit (%)", minval=0.1) stopLossPerc = input.float(0.5, title="Stop Loss (%)", minval=0.1) // Moving Averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // RSI rsi = ta.rsi(close, rsiLength) // Entry Conditions longCondition = ta.crossover(fastMA, slowMA) and rsi < rsiOversold shortCondition = ta.crossunder(fastMA, slowMA) and rsi > rsiOverbought // Plot Debugging Shapes plotshape(ta.crossover(fastMA, slowMA), color=color.green, style=shape.circle, location=location.belowbar, title="Fast MA Crossover") plotshape(ta.crossunder(fastMA, slowMA), color=color.red, style=shape.circle, location=location.abovebar, title="Fast MA Crossunder") plotshape(rsi < rsiOversold, color=color.blue, style=shape.triangleup, location=location.belowbar, title="RSI Oversold") plotshape(rsi > rsiOverbought, color=color.orange, style=shape.triangledown, location=location.abovebar, title="RSI Overbought") // Entry and Exit Execution if (longCondition) strategy.entry("Buy", strategy.long) if (shortCondition) strategy.entry("Sell", strategy.short) takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc / 100) stopLossPrice = strategy.position_avg_price * (1 - stopLossPerc / 100) if (strategy.position_size > 0) strategy.exit("Exit Buy", from_entry="Buy", limit=takeProfitPrice, stop=stopLossPrice) if (strategy.position_size < 0) strategy.exit("Exit Sell", from_entry="Sell", limit=takeProfitPrice, stop=stopLossPrice) // Plot Moving Averages plot(fastMA, color=color.blue, title="Fast MA") plot(slowMA, color=color.red, title="Slow MA") // RSI Levels hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green)