
Chiến lược này kết hợp với các chỉ số Brin và RSI để xác định các điểm đảo ngược tiềm năng của thị trường thông qua phương pháp xác nhận kép. Đặt nhiều vị trí khi giá vượt qua Brin và RSI xác nhận điều kiện bán tháo. Đặt vị trí trống khi giá vượt qua Brin và RSI xác nhận điều kiện mua quá. Chiến lược này đồng thời thực hiện các cơ chế dừng cố định và theo dõi dừng lỗ để quản lý rủi ro, nhằm nắm bắt cơ hội giao dịch đảo ngược có khả năng cao, đồng thời bảo vệ an toàn vốn.
Chiến lược này hoạt động dựa trên nguyên tắc quay trở về giá trị trung bình và cơ chế xác nhận động lực. Các dây Brin giúp xác định cực điểm giá so với biến động gần đây, trong khi RSI xác định liệu thị trường có thực sự bị mua quá mức hay bán quá mức không. Các nguyên tắc cốt lõi bao gồm:
Trên thực hiện mã, chiến lược sử dụng vòng tròn 30 ngày để tính toán SMA theo trục trung tâm của vòng tròn, chênh lệch chuẩn là 2.0, và sử dụng chu kỳ 14 ngày RSI để xác nhận động lực. Khi giá vượt qua đường ray và RSI cao hơn 70, nó sẽ kích hoạt tín hiệu đầu không; khi giá vượt qua đường ray và RSI thấp hơn 30, nó sẽ kích hoạt tín hiệu đa đầu. Đồng thời, mỗi giao dịch được áp dụng 40 điểm dừng cố định và 40 điểm theo dõi để đảm bảo rủi ro có thể được kiểm soát.
Chiến lược này được thiết kế để nắm bắt các biến động có khả năng cao, trong khi lọc các tín hiệu giả. Cơ chế quản lý rủi ro được xây dựng cung cấp một lớp bảo vệ quan trọng thông qua việc xác định và theo dõi các biến động tiềm năng khác. Mặc dù chiến lược này có lợi thế rõ ràng trong việc sử dụng hai lần xác định các biến động tiềm năng khác, nó vẫn có thể được tối ưu hóa hơn nữa, đặc biệt là khi thích ứng với các điều kiện thị trường khác nhau và thực hiện các cơ chế quản lý vị trí và thoát hiểm phức tạp hơn.
/*backtest
start: 2024-08-11 00:00:00
end: 2025-08-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("BB & RSI Trailing Stop Strategy", overlay=true, initial_capital=10000)
// --- Inputs for Bollinger Bands, RSI, and Trade Management ---
bb_length = input.int(30, title="BB Length", minval=1)
bb_mult = input.float(2.0, title="BB StdDev", minval=0.001, maxval=50)
rsi_length = input.int(14, title="RSI Length", minval=1)
rsi_overbought = input.int(70, title="RSI Overbought Level", minval=1)
rsi_oversold = input.int(30, title="RSI Oversold Level", minval=1)
// We only need an input for the fixed stop loss now.
fixed_stop_points = input.int(40, title="Fixed Stop Loss Points", minval=1)
// --- Define Trailing Stop Value ---
// The trailing stop is hardcoded to 40 points as requested.
trailing_stop_points = 40
// --- Calculate Indicators ---
// Bollinger Bands
basis = ta.sma(close, bb_length)
dev = bb_mult * ta.stdev(close, bb_length)
upper = basis + dev
lower = basis - dev
// RSI
rsi_value = ta.rsi(close, rsi_length)
// --- Plot the Indicators on the chart ---
plot(basis, "Basis", color=color.new(color.gray, 0))
plot(upper, "Upper", color=color.new(color.red, 0))
plot(lower, "Lower", color=color.new(color.green, 0))
// --- Define Entry Conditions ---
// Short entry when price crosses upper band AND RSI is overbought
short_condition = ta.crossover(close, upper) and (rsi_value > rsi_overbought)
// Long entry when price crosses under lower band AND RSI is oversold
long_condition = ta.crossunder(close, lower) and (rsi_value < rsi_oversold)
// --- Execute Trades and Manage Exits ---
if (strategy.position_size == 0)
// Logic for SHORT trades
if (short_condition)
strategy.entry("BB/RSI Short", strategy.short)
// Logic for LONG trades
if (long_condition)
strategy.entry("BB/RSI Long", strategy.long)
// Apply the fixed stop loss and trailing stop to any open position
strategy.exit(id="Exit Order",
loss=fixed_stop_points,
trail_points=trailing_stop_points,
trail_offset=0)