
Chiến lược này là một hệ thống giao dịch theo dõi xu hướng kết hợp với chỉ số xu hướng trung bình ((ADX) và chỉ số chuyển đổi lỗ hổng đối ngang ((SAR)). Hệ thống này đo cường độ của xu hướng thông qua ADX, sử dụng SAR để xác nhận hướng xu hướng, do đó nắm bắt cơ hội giao dịch trong thị trường xu hướng mạnh. Hệ thống sử dụng cơ chế xác nhận kép, đảm bảo sự tồn tại của xu hướng và xác minh sự tin cậy của xu hướng.
Lập luận cốt lõi của chiến lược dựa trên một số thành phần quan trọng sau:
Các điều kiện kích hoạt tín hiệu giao dịch như sau:
Đề xuất kiểm soát rủi ro:
Tiếp theo, bạn có thể sử dụng các tham số điều chỉnh chỉ số dao động.
Tối ưu hóa cơ chế ra sân
Thêm lọc môi trường thị trường
Quản lý vị trí tốt hơn
Chiến lược này kết hợp các chỉ số ADX và SAR để xây dựng một hệ thống theo dõi xu hướng vững chắc. Ưu điểm chính của chiến lược là cơ chế xác nhận kép và thiết lập dừng lỗ động, nhưng có thể không hoạt động tốt trong thị trường biến động. Với sự tối ưu hóa tham số hợp lý và kiểm soát rủi ro, chiến lược có thể hoạt động tốt trong môi trường thị trường có xu hướng rõ ràng.
/*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)