이 전략은 RSI 지표에 기반한 동적 범위 반전 거래 시스템으로, 조정 가능한 과잉 구매/ 과잉 판매 구역과 컨버전스/ 디버전스 감수성 매개 변수와 결합하여 시장 전환점을 포착합니다. 이 전략은 거래에 고정된 수의 계약을 고용하고 특정 백테스팅 시간 내에 작동합니다. 이 모델의 핵심은 동적 RSI 변화를 통해 시장 과잉 구매 및 과잉 판매 조건을 식별하고 적절한 시점에 반전 거래를 실행하는 데 있습니다.
이 전략은 14 기간 RSI를 핵심 지표로 사용하고, 80과 30을 과잉 구매 및 과잉 판매 기준 수준으로 설정합니다. 컨버전스 / 디버전스 감수성 매개 변수 (3.0로 설정) 를 도입함으로써 전통적인 RSI 전략에 동적 조정 능력을 추가합니다. RSI가 과잉 구매 수준을 넘어서면 긴 포지션은 설정되고 RSI가 과잉 판매 수준을 넘어서면 닫습니다. 마찬가지로, 긴 포지션은 RSI가 과잉 판매 수준을 넘어서면 설정되고 RSI가 과잉 구매 수준을 넘어서면 닫습니다. 각 거래는 자본 활용의 안정성을 보장하기 위해 고정 10 계약을 사용합니다.
이것은 RSI 지표에 기반한 동적 범위 역전 전략으로, 유연한 매개 변수 설정과 명확한 거래 규칙으로 비교적 완전한 거래 시스템을 달성합니다. 전략의 주요 장점은 동적 조정 능력과 명확한 위험 통제에 있으며, 불안정하고 트렌딩 시장의 잠재적 위험에주의를 기울여야합니다. 변동성 조정 및 트렌드 필터링과 같은 최적화 조치로 전략은 추가 개선의 여지가 있습니다. 전반적으로 이것은 심층 연구와 실제 검사에 적합한 실용적인 양적 거래 전략 프레임워크입니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Options Strategy", overlay=true) // RSI settings rsiLength = input(14, title="RSI Length") rsiOverbought = input(80, title="Overbought Level") rsiOversold = input(30, title="Oversold Level") rsiSource = input(close, title="RSI Source") rsi = ta.rsi(rsiSource, rsiLength) // Convergence/Divergence Input convergenceLevel = input(3.0, title="Convergence/Divergence Sensitivity") // Order size (5 contracts) contracts = 10 // Date Range for Backtesting startDate = timestamp("2024-09-10 00:00") endDate = timestamp("2024-11-09 23:59") // Limit trades to the backtesting period inDateRange = true // RSI buy/sell conditions with convergence/divergence sensitivity buySignalOverbought = ta.crossover(rsi, rsiOverbought - convergenceLevel) sellSignalOversold = ta.crossunder(rsi, rsiOversold + convergenceLevel) buySignalOversold = ta.crossunder(rsi, rsiOversold - convergenceLevel) sellSignalOverbought = ta.crossover(rsi, rsiOverbought + convergenceLevel) // Execute trades only within the specified date range if (inDateRange) // Buy when RSI crosses above 80 (overbought) if (buySignalOverbought) strategy.entry("Buy Overbought", strategy.long, qty=contracts) // Sell when RSI crosses below 30 (oversold) if (sellSignalOversold) strategy.close("Buy Overbought") // Buy when RSI crosses below 30 (oversold) if (buySignalOversold) strategy.entry("Buy Oversold", strategy.long, qty=contracts) // Sell when RSI crosses above 80 (overbought) if (sellSignalOverbought) strategy.close("Buy Oversold") // Plot the RSI for visualization plot(rsi, color=color.blue, title="RSI") hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green)