
Chiến lược này là một hệ thống giao dịch hai chiều kết hợp với chỉ số tương đối yếu ((RSI) và chỉ số hướng trung bình ((ADX)). Chiến lược nhận ra tín hiệu mua bán quá mức thông qua RSI 8 chu kỳ, kết hợp với cường độ xu hướng lọc ADX 20 chu kỳ, để nắm bắt cơ hội đảo ngược trong xu hướng mạnh.
Lập luận cốt lõi của chiến lược này dựa trên sự phối hợp của hai chỉ số kỹ thuật. Đầu tiên, sử dụng RSI 8 chu kỳ làm máy phát tín hiệu giao dịch chính, tạo ra tín hiệu đa khi RSI vượt lên 70, tạo ra tín hiệu đồng bằng khi RSI vượt xuống 30.
Tiếp theo, chiến lược giới thiệu ADX làm bộ lọc cường độ xu hướng. Quá trình tính toán của ADX bao gồm: tính toán chuyển động lên ((upMove) và chuyển động xuống ((downMove), xác định chuyển động theo hướng thẳng ((+DM) và chuyển động theo hướng ngược ((-DM), tính toán chỉ số theo hướng thẳng ((+DI) và chỉ số theo hướng ngược ((-DI) thông qua xử lý trơn tru RMA, và cuối cùng tính toán giá trị ADX thông qua tiêu chuẩn hóa giá trị chênh lệch DI. Chỉ khi ADX lớn hơn 14, cho thấy thị trường đang trong trạng thái xu hướng rõ ràng, tín hiệu RSI tại thời điểm này được coi là có hiệu quả.
Cơ chế thoát sử dụng cực RSI ngược lại như một tín hiệu giá rạch: giữ nhiều đầu khi RSI giảm xuống 30 và giữ đầu trống khi RSI phá vỡ 70. Thiết kế này đảm bảo thoát ra kịp thời khi xu hướng có thể đảo ngược.
Cơ chế lọc képRSI cung cấp thời gian nhập chính xác, ADX đảm bảo chỉ giao dịch khi xu hướng rõ ràng, giảm hiệu quả tín hiệu giả trong thị trường biến động.
Giao dịch hai chiều linh hoạtChiến lược này có thể nắm bắt cả xu hướng tăng và giảm, cải thiện hiệu quả sử dụng vốn và cơ hội kiếm lợi nhuận trong các môi trường thị trường khác nhau.
Tối ưu hóa tham số hợp lýRSI chu kỳ 8 nhạy cảm hơn so với chu kỳ 14 truyền thống, có thể nắm bắt được sự thay đổi của thị trường nhanh hơn; ADX chu kỳ 20 cung cấp sự phán đoán xu hướng ổn định; Thấp ADX chu kỳ 14 là mức hiệu quả được chứng minh bởi thị trường.
Kiểm soát rủi ro nghiêm ngặtCài đặt vị trí 10% và quy tắc thoát lỗ rõ ràng, kiểm soát hiệu quả rủi ro giao dịch đơn lẻ.
Tính chính xác và đáng tin cậy: Thực hiện tính toán ADX bằng tay, tránh sự khác biệt về phiên bản có thể tồn tại trong chức năng tích hợp, đảm bảo tính nhất quán của chính sách trên các nền tảng khác nhau.
Rủi ro giao dịch ngượcTrong một xu hướng cực mạnh, RSI có thể bị quá mua hoặc quá bán trong một thời gian dài, dẫn đến việc tham gia quá sớm chịu tổn thất lớn.
Vấn đề về sự chậm trễADX là một chỉ số theo dõi xu hướng có sự chậm trễ, có thể chỉ xác nhận xu hướng ở cuối xu hướng. Có thể xem xét kết hợp hành vi giá hoặc chỉ số khối lượng giao dịch để đưa ra phán đoán hỗ trợ.
Sự biến động của thị trường: Mặc dù ADX đã lọc một số biến động, nhưng có thể tạo ra tín hiệu vào ra thường xuyên khi giá ADX gần ngưỡng thấp. Khuyến nghị thiết lập khoảng đệm ADX, ví dụ như vào yêu cầu ADX> 15 và cho phép ADX> 13 trong khi giữ.
Rủi ro thị trường cực đoanTrong trường hợp giao dịch đơn phương nhanh, hoạt động đảo ngược có thể gây thiệt hại lớn.
Điều chỉnh tham số động: Phong cách điều chỉnh chu kỳ RSI và ADX theo biến động của thị trường. Sử dụng chu kỳ dài trong thời gian biến động cao làm giảm tiếng ồn, sử dụng chu kỳ ngắn trong thời gian biến động thấp làm tăng độ nhạy.
Xác nhận khung thời gian đa dạng: Xác định xu hướng của khung thời gian cao hơn dựa trên tín hiệu khung thời gian hiện tại, đảm bảo hướng giao dịch phù hợp với xu hướng chính.
Tối ưu hóa quản lý vị tríĐổi vị trí theo chiều hướng của ADX, vị trí lớn hơn khi xu hướng mạnh hơn. Ngoài ra, bạn có thể xem xét chiến lược gia tăng vị trí kim tự tháp, tăng vị trí dần dần sau khi xu hướng được xác nhận.
Tối ưu hóa Stop LossNgoài các dấu hiệu dừng của tín hiệu đảo ngược RSI, thêm các dấu hiệu dừng theo dõi dựa trên ATR, cho phép các vị trí nắm giữ đủ không gian dao động trong khi bảo vệ lợi nhuận.
Tăng cường lọc tín hiệuTăng các điều kiện phụ trợ như xác nhận khối lượng giao dịch, nhận dạng hình thức giá, cải thiện chất lượng tín hiệu. Ví dụ: yêu cầu tăng cường khi phá vỡ hoặc thực hiện giao dịch gần mức kháng cự hỗ trợ quan trọng.
Chiến lược giao dịch lọc động lượng hai chiều RSI-ADX là một hệ thống giao dịch định lượng được thiết kế tinh xảo, nắm bắt cơ hội thị trường bằng cách kết hợp các lợi thế của chỉ số động lượng và chỉ số xu hướng, trong khi kiểm soát rủi ro. Sự đổi mới cốt lõi của chiến lược là sử dụng tín hiệu động lượng vượt quá xu hướng mạnh mẽ, tránh các giới hạn của chỉ số đơn lẻ. Mặc dù có rủi ro vốn có của giao dịch đảo ngược, chiến lược đã thể hiện tính hữu dụng tốt thông qua thiết lập tham số hợp lý và kiểm soát rủi ro nghiêm ngặt.
/*backtest
start: 2024-08-13 00:00:00
end: 2025-08-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":5000000}]
*/
//@version=6
strategy("RSI & ADX Long/Short Strategy v6 (Manual ADX)", overlay=true,
margin_long=100, margin_short=100,
default_qty_type=strategy.percent_of_equity, default_qty_value=10)
//--------------------
// Parameters
//--------------------
rsiLength = 8
adxLength = 20
adxThreshold = 14.0
//--------------------
// RSI
//--------------------
rsiVal = ta.rsi(close, rsiLength)
//--------------------
// Manual ADX Calculation
//--------------------
upMove = high - high[1]
downMove = low[1] - low
plusDM = (upMove > downMove and upMove > 0) ? upMove : 0
minusDM = (downMove > upMove and downMove > 0) ? downMove : 0
tr = ta.rma(ta.tr(true), adxLength)
plusDI = 100 * ta.rma(plusDM, adxLength) / tr
minusDI = 100 * ta.rma(minusDM, adxLength) / tr
dx = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adxVal = ta.rma(dx, adxLength) // <-- Final ADX value
//--------------------
// Entry/Exit Conditions
//--------------------
longEntry = ta.crossover(rsiVal, 70) and adxVal > adxThreshold
shortEntry = ta.crossunder(rsiVal, 30) and adxVal > adxThreshold
longExit = ta.crossunder(rsiVal, 30)
shortExit = ta.crossover(rsiVal, 70)
//--------------------
// Orders
//--------------------
if longEntry
strategy.entry("Long", strategy.long)
if longExit
strategy.close("Long")
if shortEntry
strategy.entry("Short", strategy.short)
if shortExit
strategy.close("Short")
//--------------------
// Plots
//--------------------
plot(rsiVal, title="RSI(8)", color=color.new(color.blue, 0))
hline(70, 'RSI Overbought', color=color.red)
hline(30, 'RSI Oversold', color=color.green)
plot(adxVal, title="ADX(20)", color=color.new(color.orange, 0))
hline(adxThreshold, 'ADX Threshold', color=color.gray, linestyle=hline.style_dotted)