Chiến lược này là một hệ thống thoát động dựa trên chỉ số sức mạnh tương đối (RSI), nắm bắt xu hướng thị trường thông qua các điều kiện bước vào và bước ra năng động. Chiến lược tạo ra các tín hiệu giao dịch khi RSI vượt qua mức mua quá mức và bán quá mức, kết hợp một cơ chế thoát động độc đáo bằng cách thiết lập các điều kiện thoát ở các mức RSI khác nhau để tối ưu hóa hiệu suất giao dịch. Nó sử dụng một hệ thống giao dịch dài ngắn hoàn chỉnh có khả năng nắm bắt cơ hội trong cả hai hướng thị trường.
Logic cốt lõi bao gồm một số thành phần chính:
Đây là một chiến lược giao dịch động lực được thiết kế tốt, nắm bắt các cơ hội thị trường thông qua các chỉ số RSI và cơ chế thoát động. Các tính năng chính của chiến lược là tính chất có hệ thống cao, kiểm soát rủi ro mạnh mẽ và khả năng thích nghi mạnh mẽ. Mặc dù rủi ro vốn có tồn tại, nhưng có nhiều chỗ để cải thiện thông qua tối ưu hóa tham số và mở rộng chức năng. Đối với các nhà đầu tư tìm kiếm một hệ thống giao dịch mạnh mẽ, đây là một khuôn khổ chiến lược đáng xem xét.
/*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)