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 đảo ngược trung bình, kết hợp các Bollinger Band, chỉ số RSI và cơ chế dừng lỗ động dựa trên ATR. Chiến lược này giao dịch bằng cách xác định các độ lệch giá cực đoan so với trung bình, đi dài khi giá chạm vào Bollinger Band dưới và RSI ở vùng bán quá mức, và đi ngắn khi giá chạm vào Bollinger Band trên và RSI ở vùng mua quá mức, trong khi sử dụng ATR để thiết lập động mức dừng lỗ và lấy lợi nhuận để quản lý rủi ro hiệu quả.
Chiến lược sử dụng 20 giai đoạn Bollinger Bands như là chỉ số xu hướng chính, với nhân lệ lệch tiêu chuẩn 2.0 để xác định ranh giới chuyển động giá. Một chỉ số RSI 14 giai đoạn được kết hợp như một chỉ số bổ sung, với các bài đọc dưới 30 được coi là bán quá mức và trên 70 được coi là mua quá mức. Các vị trí dài được bắt đầu khi giá phá vỡ dưới dải dưới và RSI dưới 30, chỉ ra các điều kiện bán quá mức tiềm năng, trong khi các vị trí ngắn được thực hiện khi giá phá vỡ trên dải trên và RSI trên 70, chỉ ra các điều kiện mua quá mức tiềm năng. Dải giữa phục vụ như là mức thu lợi nhuận, kết hợp với các tín hiệu đảo ngược RSI cho quản lý vị trí. Ngoài ra, một cơ chế dừng lỗ động dựa trên 14 giai đoạn ATR được thực hiện, với các điểm dừng được đặt ở mức 2x ATR và dừng ở mức 3x ATR để kiểm soát rủi ro chính xác.
Chiến lược này xây dựng một hệ thống giao dịch đảo ngược trung bình toàn diện thông qua việc áp dụng kết hợp các băng tần Bollinger và RSI. Việc giới thiệu các điểm dừng động dựa trên ATR có hiệu quả kiểm soát rủi ro, cung cấp các đặc điểm rủi ro-lợi nhuận thuận lợi. Mặc dù có chỗ tối ưu hóa, khái niệm thiết kế tổng thể là rõ ràng và thực tế. Các nhà giao dịch được khuyên phải điều chỉnh các tham số theo các đặc điểm thị trường cụ thể và liên tục theo dõi hiệu suất chiến lược khi thực hiện trong giao dịch trực tiếp.
/*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)