Chiến lược này là một hệ thống giao dịch theo xu hướng kết hợp Chỉ số hướng trung bình (ADX) với chỉ số Parabolic Stop and Reverse (SAR). Hệ thống đo cường độ xu hướng bằng cách sử dụng ADX và xác nhận hướng xu hướng bằng cách sử dụng SAR để nắm bắt các cơ hội giao dịch trong các thị trường xu hướng mạnh. Nó sử dụng một cơ chế xác nhận kép để đảm bảo cả sự tồn tại và độ tin cậy của xu hướng.
Logic cốt lõi dựa trên các thành phần chính sau:
Các yếu tố kích hoạt tín hiệu giao dịch là như sau:
Các đề xuất kiểm soát rủi ro:
Đưa ra các chỉ số biến động để điều chỉnh tham số
Tối ưu hóa cơ chế thoát
Thêm bộ lọc môi trường thị trường
Cải thiện quản lý vị trí
Chiến lược này xây dựng một hệ thống theo xu hướng mạnh mẽ bằng cách kết hợp các chỉ số ADX và SAR. Ưu điểm chính của nó nằm trong cơ chế xác nhận kép và cài đặt dừng lỗ năng động, mặc dù hiệu suất có thể kém tối ưu trong các thị trường dao động. Thông qua tối ưu hóa tham số thích hợp và kiểm soát rủi ro, chiến lược có thể đạt được hiệu suất tốt trong môi trường thị trường xu hướng rõ ràng. Các nhà giao dịch được khuyên nên tiến hành kiểm tra kỹ lưỡng trước khi thực hiện trực tiếp và điều chỉnh các tham số theo đặc điểm thị trường cụ thể.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © traderhub //@version=5 strategy("Trend Following ADX + Parabolic SAR", overlay=true) // Strategy parameters adxLength = input(14, title="ADX Period") adxThreshold = input(25, title="ADX Threshold") adxSmoothing = input(14, title="ADX Smoothing") sarStart = input(0.02, title="Parabolic SAR Start") // Starting acceleration factor sarIncrement = input(0.02, title="Parabolic SAR Increment") // Increment step sarMax = input(0.2, title="Parabolic SAR Max") // Maximum acceleration factor // Calculate ADX, DI+, and DI- [diPlus, diMinus, adx] = ta.dmi(adxLength, adxSmoothing) // Parabolic SAR calculation sar = ta.sar(sarStart, sarIncrement, sarMax) // Conditions for a long position longCondition = adx > adxThreshold and diPlus > diMinus and close > sar // Conditions for a short position shortCondition = adx > adxThreshold and diMinus > diPlus and close < sar // Enter a long position if (longCondition) strategy.entry("Long", strategy.long) // Enter a short position if (shortCondition) strategy.entry("Short", strategy.short) // Close position on reverse signal if (strategy.position_size > 0 and shortCondition) strategy.close("Long") if (strategy.position_size < 0 and longCondition) strategy.close("Short") // Plot indicators on the chart plot(sar, color=color.blue, style=plot.style_circles, linewidth=2, title="Parabolic SAR") plot(adx, color=color.red, title="ADX") hline(adxThreshold, "ADX Threshold", color=color.green)