Chiến lược này là một hệ thống giao dịch đảo ngược động lực kết hợp các chỉ số RSI và Bollinger Bands, được thiết kế để xác định các khu vực mua quá mức và bán quá mức. Nó thực hiện tỷ lệ rủi ro-lợi nhuận 1: 2 với việc dừng lỗ để quản lý rủi ro.
Chiến lược này sử dụng chỉ số RSI 14 giai đoạn và Bollinger Bands 20 giai đoạn như các chỉ số chính. Điều kiện mua đòi hỏi cả: RSI dưới 30 (đã bán quá mức) và giá ở hoặc dưới Bollinger Band dưới. Điều kiện bán đòi hỏi cả: RSI trên 70 (đã mua quá mức) và giá ở hoặc trên Bollinger Band trên. Hệ thống sử dụng các điểm cao / thấp 5 thanh để dừng lại, lấy lợi nhuận đặt ở khoảng cách hai lần khoảng cách dừng lỗ, tuân thủ nghiêm ngặt tỷ lệ rủi ro-lợi nhuận 1: 2.
Đây là một chiến lược giao dịch đảo ngược được cấu trúc tốt, tăng độ chính xác thông qua các chỉ số kỹ thuật kép và sử dụng quản lý rủi ro nghiêm ngặt. Mặc dù đơn giản và trực quan, nó chứa tất cả các yếu tố chính cần thiết cho một hệ thống giao dịch trưởng thành. Thông qua các hướng tối ưu hóa được đề xuất, chiến lược có chỗ để cải thiện hơn nữa. Đối với giao dịch trực tiếp, nên kiểm tra kỹ lưỡng và tối ưu hóa tham số.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI + Bollinger Bands with 1:2 Risk/Reward", overlay=true) // Define Inputs length_rsi = input.int(14, title="RSI Period") oversold_level = input.int(30, title="RSI Oversold Level") overbought_level = input.int(70, title="RSI Overbought Level") length_bb = input.int(20, title="Bollinger Bands Period") src = close risk_to_reward = input.float(2.0, title="Risk-to-Reward Ratio", minval=1.0, step=0.1) // Calculate Indicators rsi_value = ta.rsi(src, length_rsi) basis = ta.sma(src, length_bb) dev = ta.stdev(src, length_bb) upper_band = basis + 2 * dev lower_band = basis - 2 * dev // Define Buy and Sell Conditions rsi_buy_condition = rsi_value < oversold_level // RSI below 30 (buy signal) bollinger_buy_condition = close <= lower_band // Price at or near lower Bollinger Band (buy signal) rsi_sell_condition = rsi_value > overbought_level // RSI above 70 (sell signal) bollinger_sell_condition = close >= upper_band // Price at or near upper Bollinger Band (sell signal) // Combine Buy and Sell Conditions buy_condition = rsi_buy_condition and bollinger_buy_condition sell_condition = rsi_sell_condition and bollinger_sell_condition // Plot Buy and Sell Signals with white text and green/red boxes plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY", textcolor=color.white, size=size.small) plotshape(series=sell_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL", textcolor=color.white, size=size.small) // Calculate Swing Points (for Stop Loss) swing_low = ta.lowest(low, 5) // Last 5 bars' low swing_high = ta.highest(high, 5) // Last 5 bars' high // Calculate Risk (Distance from Entry to SL) long_risk = close - swing_low short_risk = swing_high - close // Calculate Take Profit using 1:2 Risk-to-Reward Ratio take_profit_long = close + 2 * long_risk take_profit_short = close - 2 * short_risk // Strategy Execution: Enter Buy/Sell Positions if buy_condition strategy.entry("Buy", strategy.long) strategy.exit("Take Profit", "Buy", limit=take_profit_long, stop=swing_low) // Set TP and SL for Buy if sell_condition strategy.entry("Sell", strategy.short) strategy.exit("Take Profit", "Sell", limit=take_profit_short, stop=swing_high) // Set TP and SL for Sell // Plotting the Indicators for Visualization (Optional - comment out if not needed) plot(rsi_value, color=color.blue, title="RSI", linewidth=2, display=display.none) plot(upper_band, color=color.red, title="Upper BB", display=display.none) plot(lower_band, color=color.green, title="Lower BB", display=display.none)