이 전략은 상대적 강도 지수 (RSI) 를 기반으로 한 동적 출구 시스템으로, 동적 출입 및 출구 조건을 통해 시장 트렌드를 포착합니다. 이 전략은 RSI가 과소매와 과소매 수준을 넘어서면 거래 신호를 생성하며, 거래 성과를 최적화하기 위해 다른 RSI 수준에서 출구 조건을 설정하여 독특한 동적 출구 메커니즘을 통합합니다. 이 전략은 시장 방향 모두에서 기회를 포착 할 수있는 완전한 장기 단위 거래 시스템을 사용합니다.
핵심 논리는 몇 가지 핵심 요소를 포함합니다.
이것은 RSI 지표와 동적인 출구 메커니즘을 통해 시장 기회를 포착하는 잘 설계된 모멘텀 거래 전략입니다. 전략의 주요 특징은 높은 체계적인 성격, 강력한 위험 통제 및 강력한 적응력입니다. 내재적인 위험이 존재하지만 매개 변수 최적화 및 기능 확장으로 개선할 수있는 상당한 여지가 있습니다. 견고한 거래 시스템을 찾는 투자자에게는 고려해야 할 가치가있는 전략 프레임워크를 나타냅니다.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Strategy with Close Levels", shorttitle="RSI Strat", overlay=true) // RSI Input settings rsiLength = input.int(14, title="RSI Length") rsiOverbought = input.int(70, title="RSI Overbought Level") rsiOversold = input.int(30, title="RSI Oversold Level") rsiCloseLongLevel = input.int(60, title="RSI Level to Close Long Position") rsiCloseShortLevel = input.int(40, title="RSI Level to Close Short Position") // Calculate RSI rsi = ta.rsi(close, rsiLength) // Generate buy and sell signals based on RSI levels buySignal = ta.crossover(rsi, rsiOversold) sellSignal = ta.crossunder(rsi, rsiOverbought) // Check if there are open positions var bool inPosition = na if (strategy.opentrades > 0) inPosition := true else inPosition := false // Open long position on buy signal if not already in a position if (buySignal and not inPosition) strategy.entry("Buy", strategy.long) inPosition := true // Close long position on sell signal or when RSI reaches the close long level if (inPosition and strategy.position_size > 0 and (sellSignal or rsi >= rsiCloseLongLevel)) strategy.close("Buy") inPosition := false // Open short position on sell signal if not already in a position if (sellSignal and not inPosition) strategy.entry("Sell", strategy.short) inPosition := true // Close short position on buy signal or when RSI reaches the close short level if (inPosition and strategy.position_size < 0 and (buySignal or rsi <= rsiCloseShortLevel)) strategy.close("Sell") inPosition := false // Plot buy and sell signals //plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") //plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Plot RSI for visualization hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green) hline(rsiCloseLongLevel, "RSI Close Long Level", color=color.blue) hline(rsiCloseShortLevel, "RSI Close Short Level", color=color.purple) plot(rsi, title="RSI", color=color.orange)