Chiến lược này là một hệ thống theo xu hướng dựa trên chỉ số ADX và khối lượng giao dịch. Nó kết hợp chỉ số ADX để xác định sức mạnh của xu hướng và sử dụng khối lượng như các tín hiệu xác nhận để nắm bắt các cơ hội giao dịch đáng tin cậy trong các thị trường xu hướng mạnh.
Chiến lược sử dụng một cơ chế lọc kép bằng cách sử dụng ADX và khối lượng. Khi giá trị ADX vượt quá ngưỡng thiết lập (thất định 26), nó chỉ ra một xu hướng thị trường quan trọng. Trong khi đó, nó xác nhận tính hợp lệ của xu hướng bằng cách so sánh khối lượng hiện tại với đường trung bình động khối lượng 20 giai đoạn (thất định nhân 1,8). Dựa trên hai điều kiện này, hướng giao dịch được xác định bởi sức mạnh tương đối của DI + và DI. Chiến lược tự động đóng các vị trí khi các tín hiệu ngược xuất hiện để kiểm soát rủi ro.
Đây là một chiến lược theo xu hướng với cấu trúc hoàn chỉnh và logic rõ ràng. Thông qua sự kết hợp của chỉ số ADX và khối lượng giao dịch, nó giải quyết hiệu quả vấn đề độ tin cậy tín hiệu trong giao dịch xu hướng. Chiến lược có cài đặt tham số linh hoạt có thể được tối ưu hóa cho các đặc điểm thị trường khác nhau. Mặc dù có một số rủi ro chậm trễ, chiến lược có giá trị thực tế tốt thông qua điều chỉnh tham số thích hợp và cải tiến tối ưu hóa.
/*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)