
Chiến lược này là một hệ thống giao dịch định lượng dựa trên lý thuyết quay trở về giá trị trung bình, kết hợp với các chỉ số Brin, RSI và cơ chế dừng lỗ động ATR. Chiến lược này giao dịch bằng cách xác định các trường hợp cực đoan khi giá lệch khỏi giá trị trung bình.
Chiến lược sử dụng 20 chu kỳ Bollinger Bands là chỉ số định hướng chính, hệ số chênh lệch chuẩn là 2,0 để xác định ranh giới trên và dưới của biến động giá. Đồng thời, giới thiệu 14 chu kỳ RSI như một chỉ số phụ trợ, RSI thấp hơn 30 được coi là bán quá mức, cao hơn 70 được coi là mua quá mức.
Chiến lược này được xây dựng một hệ thống giao dịch hoàn chỉnh bằng cách sử dụng sự kết hợp của Brin và RSI. Việc giới thiệu ATR dừng động đã kiểm soát rủi ro hiệu quả, cho phép chiến lược có đặc tính lợi nhuận rủi ro tốt. Mặc dù có một số không gian tối ưu hóa, nhưng khái niệm thiết kế tổng thể rõ ràng và thực tế.
/*backtest
start: 2024-11-19 00:00:00
end: 2024-11-26 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SOL/USDT Mean Reversion Strategy", overlay=true)
// Input parameters
length = input(20, "Bollinger Band Length")
std_dev = input(2.0, "Standard Deviation")
rsi_length = input(14, "RSI Length")
rsi_oversold = input(30, "RSI Oversold")
rsi_overbought = input(70, "RSI Overbought")
// Calculate indicators
[middle, upper, lower] = ta.bb(close, length, std_dev)
rsi = ta.rsi(close, rsi_length)
// Entry conditions
long_entry = close < lower and rsi < rsi_oversold
short_entry = close > upper and rsi > rsi_overbought
// Exit conditions
long_exit = close > middle or rsi > rsi_overbought
short_exit = close < middle or rsi < rsi_oversold
// Strategy execution
if (long_entry)
strategy.entry("Long", strategy.long)
if (short_entry)
strategy.entry("Short", strategy.short)
if (long_exit)
strategy.close("Long")
if (short_exit)
strategy.close("Short")
// Stop loss and take profit
atr = ta.atr(14)
strategy.exit("Long SL/TP", "Long", stop=strategy.position_avg_price - 2*atr, limit=strategy.position_avg_price + 3*atr)
strategy.exit("Short SL/TP", "Short", stop=strategy.position_avg_price + 2*atr, limit=strategy.position_avg_price - 3*atr)
// Plot indicators
plot(middle, color=color.yellow, title="BB Middle")
plot(upper, color=color.red, title="BB Upper")
plot(lower, color=color.green, title="BB Lower")
// Plot entry and exit points
plotshape(long_entry, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(short_entry, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(long_exit, title="Long Exit", location=location.abovebar, color=color.orange, style=shape.circle, size=size.small)
plotshape(short_exit, title="Short Exit", location=location.belowbar, color=color.orange, style=shape.circle, size=size.small)