
Chiến lược này là một hệ thống theo dõi xu hướng dựa trên chỉ số ADX và khối lượng giao dịch. Nó đánh giá cường độ của xu hướng bằng cách kết hợp chỉ số ADX và sử dụng khối lượng giao dịch như một tín hiệu xác nhận, để nắm bắt cơ hội giao dịch đáng tin cậy trong thị trường có xu hướng mạnh.
Chiến lược sử dụng chỉ số ADX và cơ chế lọc hai lần khối lượng giao dịch. Khi ADX vượt quá ngưỡng thiết lập (đặc biệt là 26), thị trường cho thấy có xu hướng rõ ràng; đồng thời xác nhận tính hiệu quả của xu hướng bằng cách so sánh khối lượng giao dịch hiện tại với mối quan hệ của khối lượng giao dịch trung bình trong 20 chu kỳ (đặc biệt là 1,8 lần). Dựa trên việc đáp ứng hai điều kiện này, hướng xu hướng được đánh giá dựa trên mối quan hệ tương đối mạnh mẽ của DI + và DI - và do đó quyết định hướng mở vị trí.
Đây là một chiến lược theo dõi xu hướng có cấu trúc, logic rõ ràng. Bằng cách sử dụng các chỉ số ADX và khối lượng giao dịch kết hợp, giải quyết tốt hơn các vấn đề về độ tin cậy tín hiệu trong giao dịch xu hướng. Các tham số của chiến lược được thiết lập linh hoạt, có thể được tối ưu hóa theo các đặc điểm thị trường khác nhau. Mặc dù có một số rủi ro bị tụt hậu, nhưng chiến lược có giá trị thực tế tốt bằng cách điều chỉnh và tối ưu hóa các tham số thích hợp.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-11-11 00:00:00
period: 1h
basePeriod: 1h
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("ADX + Volume Strategy", overlay=true)
// Strategy parameters
adxLength = input(21, title="ADX Period") // ADX period
adxThreshold = input(26, title="ADX Threshold") // ADX threshold to determine strong trend
volumeMultiplier = input.float(1.8, title="Volume Multiplier", minval=0.1, maxval=10 , step = 0.1) // Volume multiplier, adjustable float
// Calculate ADX, DI+, DI-
[diPlus, diMinus, adx] = ta.dmi(adxLength, adxLength)
// Average volume for signal confirmation
avgVolume = ta.sma(volume, 20) // Simple Moving Average of volume over 20 bars
// Conditions for entering a long position
longCondition = adx > adxThreshold and diPlus > diMinus and volume > avgVolume * volumeMultiplier
// Conditions for entering a short position
shortCondition = adx > adxThreshold and diMinus > diPlus and volume > avgVolume * volumeMultiplier
// Enter a long position
if (longCondition)
strategy.entry("Long", strategy.long)
// Enter a short position
if (shortCondition)
strategy.entry("Short", strategy.short)
// Close positions on opposite signals
if (strategy.position_size > 0 and shortCondition)
strategy.close("Long")
if (strategy.position_size < 0 and longCondition)
strategy.close("Short")
// Display ADX on the chart
plot(adx, color=color.red, title="ADX")
hline(adxThreshold, "ADX Threshold", color=color.green)