Chiến lược siêu xu hướng kép là một chiến lược giao dịch định lượng kết hợp một hệ thống kênh SuperTrend kép. Nó tính toán biến động phạm vi thực sự và xây dựng một kênh hai băng tần để theo dõi sự đột phá giá, cho phép theo dõi xu hướng và đảo ngược giao dịch.
Chiến lược siêu xu hướng kép bắt nguồn từ chỉ số siêu xu hướng. siêu xu hướng bao gồm các dải trên và dưới để xác định xu hướng giá và mức hỗ trợ / kháng cự chính. siêu xu hướng kép xây dựng hai kênh trên đầu của nó: kênh củng cố và kênh phá vỡ.
Chiến lược này đầu tiên tính toán phạm vi thực và phạm vi thực trung bình. Sau đó nó tính toán các dải cơ bản dựa trên các thông số chiều dài và nhân. Tiếp theo, nó xây dựng kênh phá vỡ nếu giá vượt qua các dải cơ bản.
Trong cấu trúc hai kênh, tín hiệu giao dịch được tạo ra khi giá vượt qua các kênh khác nhau:
Việc theo dõi hai kênh cho phép cả theo dõi xu hướng và thu thập sự đảo ngược.
Chiến lược Dual SuperTrend với hệ thống hai kênh có những lợi thế sau:
Chiến lược Dual SuperTrend cũng có những rủi ro sau:
Các rủi ro có thể được giảm thiểu bằng cách điều chỉnh phạm vi tham số, thêm bộ lọc, kiểm soát kích thước vị trí, v.v.
Chiến lược Dual SuperTrend có thể được tối ưu hóa trong các khía cạnh sau:
Tối ưu hóa hơn nữa có thể cải thiện Phân tích tham số và Phân tích đi trước để có hiệu suất mạnh mẽ hơn.
Chiến lược Dual SuperTrend sử dụng cơ chế hai kênh để theo dõi xu hướng và nắm bắt sự đảo ngược. Chiến lược giao dịch ổn định có thể được phát triển thông qua tối ưu hóa tham số, nhưng có những hạn chế.
/*backtest start: 2022-11-08 00:00:00 end: 2023-11-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Double Supertrend Strategy", overlay=true) // Define your parameters length = input(10, title="Length") multiplier = input(3, title="Multiplier") // Calculate the True Range and Average True Range trueRange = max(high - low, max(abs(high - close[1]), abs(low - close[1]))) averageTrueRange = sma(trueRange, length) // Calculate the basic upper and lower bands basicUpperBand = hl2 + (multiplier * averageTrueRange) basicLowerBand = hl2 - (multiplier * averageTrueRange) // Calculate the final upper and lower bands finalUpperBand = basicUpperBand finalLowerBand = basicLowerBand finalUpperBand := close[1] > finalUpperBand[1] ? max(basicUpperBand, finalUpperBand[1]) : basicUpperBand finalLowerBand := close[1] < finalLowerBand[1] ? min(basicLowerBand, finalLowerBand[1]) : basicLowerBand // Determine if we're currently in an uptrend or downtrend uptrend = close > finalLowerBand[1] downtrend = close < finalUpperBand[1] // Plot the bands plot(uptrend ? finalUpperBand : na, color=color.green, linewidth=2) plot(downtrend ? finalLowerBand : na, color=color.red, linewidth=2) // Define your conditions for entering and exiting trades if (uptrend) strategy.entry("Buy", strategy.long) else if (downtrend) strategy.entry("Sell", strategy.short)