이 전략은 상대적 강도 지수 (RSI) 와 이동 평균 (MA) 를 결합한 트렌드를 따르는 거래 시스템이다. 핵심 메커니즘은 90일 이동 평균을 트렌드 필터로 통합하면서 가격 동력 변화를 포착하기 위해 RSI를 활용하여 시장 트렌드를 효과적으로 추적합니다. 전략은 조정 가능한 RSI 과잉 구매 / 과잉 판매 문턱을 갖추고 있으며 실용성과 안정성을 보장하기 위해 2500 일 뷰백 기간 제한을 구현합니다.
이 전략은 몇 가지 핵심 요소에 기반합니다.
구매 신호는 RSI가 70을 넘을 때 발생하고, 판매 신호는 RSI가 62 이하로 떨어질 때 발생합니다. 시스템은 유효한 룩백 기간 내에 입시 조건이 충족되면 자동으로 전체 포지션 엔트리를 계산하고 실행합니다.
위험 관리 권고:
신호 시스템 최적화:
위치 관리 최적화:
위험 관리 최적화:
백테스팅 시스템 최적화:
이 전략은 RSI 모멘텀 지표와 MA 트렌드 필터를 결합하여 비교적 완전한 거래 시스템을 구축합니다. 이 전략의 장점은 강력한 적응력과 포괄적인 위험 통제에 있습니다. 그러나 매개 변수 민감성과 시장 환경 변화에주의를 기울여야합니다. 제안된 최적화 방향을 통해 전략은 안정성과 수익성을 더욱 향상시키기 위해 개선할 수있는 상당한 여지가 있습니다.
/*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("Simple RSI Strategy - Adjustable Levels with Lookback Limit and 30-Day MA", overlay=true) // Parameters rsi_length = input.int(12, title="RSI Length", minval=1) // RSI period rsi_overbought = input.int(70, title="RSI Overbought Level", minval=1, maxval=100) // Overbought level rsi_oversold = input.int(62, title="RSI Oversold Level", minval=1, maxval=100) // Oversold level ma_length = input.int(90, title="Moving Average Length", minval=1) // Moving Average period // Calculate lookback period (2000 days) lookback_period = 2500 start_date = timestamp(year(timenow), month(timenow), dayofmonth(timenow) - lookback_period) // RSI Calculation rsi_value = ta.rsi(close, rsi_length) // 30-Day Moving Average Calculation ma_value = ta.sma(close, ma_length) // Buy Condition: Buy when RSI is above the overbought level long_condition = rsi_value > rsi_overbought // Sell Condition: Sell when RSI drops below the oversold level sell_condition = rsi_value < rsi_oversold // Check if current time is within the lookback period in_lookback_period = (time >= start_date) // Execute Buy with 100% equity if within lookback period if (long_condition and strategy.position_size == 0 and in_lookback_period) strategy.entry("Buy", strategy.long, qty=strategy.equity / close) if (sell_condition and strategy.position_size > 0) strategy.close("Buy") // Plot RSI on a separate chart for visualization hline(rsi_overbought, "Overbought", color=color.red) hline(rsi_oversold, "Oversold", color=color.green) plot(rsi_value, title="RSI", color=color.blue) // Plot the 30-Day Moving Average on the chart plot(ma_value, title="30-Day MA", color=color.orange, linewidth=2)