
Chiến lược chỉ số kép (tiếng Anh: Dual Indicator Strategy) là một chiến lược giao dịch định lượng kết hợp đồng thời trung bình di chuyển đơn giản (SMA) và chỉ số phân tán hội tụ trung bình di chuyển (MACD). Chiến lược này sử dụng nhiều chỉ số kỹ thuật để xác nhận tín hiệu giao dịch nhằm tăng độ chính xác của quyết định giao dịch.
Chiến lược chỉ số kép chủ yếu dựa trên hai chỉ số kỹ thuật: SMA và MACD. Chiến lược sử dụng SMA với các đường K 7, 15 và 60, và MACD với các tham số 12 / 26 / 9 tiêu chuẩn.
Khi 7 SMA cao hơn 15 SMA và 60 SMA, 15 SMA cũng cao hơn 60 SMA, được coi là tín hiệu dự đoán của chỉ số SMA, xác suất là 0,5
Trong khi đó, khi MACD của MACD đi qua đường MACD, nó cũng được coi là tín hiệu dự đoán của MACD với xác suất là 0.5.
Khi hai chỉ số cộng với xác suất tín hiệu lạc quan là 1, thì mua và mở vị trí.
Ngược lại, khi 7 SMA thấp hơn 15 SMA và 60 SMA, 15 SMA cũng thấp hơn 60 SMA, được coi là tín hiệu giảm giá của chỉ số SMA, có xác suất là 0,5 .
Trong khi đó, khi MACD của MACD đi ngang qua đường tín hiệu, nó cũng được coi là tín hiệu giảm giá của MACD với xác suất là 0.5.
Bán và mở vị trí khi xác suất tín hiệu giảm của hai chỉ số cộng lại là 1.
Ngoài ra, chiến lược sử dụng hai điểm dừng khác nhau: 50% vị trí được bán khi giá tăng hoặc giảm 9%; và tất cả các vị trí còn lại được bán khi giá tăng hoặc giảm 21%.
Nếu có tín hiệu trái ngược với hướng giữ vị trí hiện tại, vị trí trước đó sẽ được xóa và sau đó mở vị trí theo tín hiệu mới.
Ưu điểm lớn nhất của chiến lược hai chỉ số là có thể sử dụng cả hai chỉ số SMA và MACD. SMA có thể theo dõi hiệu quả sự thay đổi xu hướng giá, lọc tiếng ồn thị trường; và MACD có thể phát hiện thời gian đảo ngược xu hướng ngắn hạn. Sự kết hợp của cả hai có thể làm tăng độ tin cậy của tín hiệu giao dịch.
Ngoài ra, nhiều nhóm SMA với các thiết lập tham số khác nhau giúp xác định xu hướng trung và dài hạn; trong khi chiến lược dừng có thể khóa một phần lợi nhuận và kiểm soát rủi ro.
Chiến lược chỉ số kép cũng có một số rủi ro tiềm ẩn cần lưu ý. Do chỉ dựa vào chỉ số kỹ thuật, có thể có trường hợp chỉ số phát ra tín hiệu sai. Ngoài ra, thiết lập chặn không đúng cũng có thể dẫn đến ra sân sớm, bỏ lỡ đà sụp đổ.
Có thể tối ưu hóa chiến lược bằng cách điều chỉnh các tham số chu kỳ SMA hoặc thêm các chỉ số khác để đảm bảo tín hiệu giao dịch đáng tin cậy hơn. Đồng thời, mức dừng cũng cần phải được điều chỉnh động theo mức độ biến động của thị trường để đảm bảo có thể tiếp tục nắm bắt xu hướng.
Có một số cách để tối ưu hóa chiến lược chỉ số kép:
Thử nghiệm thêm các chỉ số kỹ thuật khác, chẳng hạn như RSI, BRI, v.v., để tạo ra một bộ lọc đa chỉ số;
Thử nghiệm các thuật toán học máy để xây dựng mô hình phán đoán tín hiệu giao dịch với nhiều biến;
Điều chỉnh chiến lược theo các tham số khác nhau về giống và chu kỳ;
Tăng các chiến lược ngăn chặn tổn thất, kiểm soát chặt chẽ tổn thất đơn lẻ;
Tối ưu hóa chiến lược dừng lại để duy trì lợi nhuận trong xu hướng.
Bằng cách phản hồi và tối ưu hóa hệ thống, bạn có thể liên tục nâng cao tính ổn định và lợi nhuận của chiến lược.
Chiến lược chỉ số kép sử dụng lợi thế của cả hai chỉ số SMA và MACD để kiểm soát rủi ro giao dịch hiệu quả trong khi tăng độ chính xác của tín hiệu. Chiến lược này có không gian tối ưu hóa và khả năng mở rộng tốt, là một chiến lược giao dịch định lượng đáng tin cậy và thích ứng. Bằng cách liên tục điều khiển dữ liệu và điều chỉnh chiến lược, chiến lược này có thể dần dần phát triển thành một hệ thống giao dịch định lượng mạnh mẽ.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA & MACD Dual Direction Strategy", shorttitle="SMDDS", overlay=true, initial_capital=1000)
// SMA settings
sma7_length = input.int(7, title="7 Candle SMA Length")
sma15_length = input.int(15, title="15 Candle SMA Length")
sma60_length = input.int(60, title="60 Candle SMA Length")
// MACD settings
fast_length = input.int(12, title="Fast Length")
slow_length = input.int(26, title="Slow Length")
signal_length = input.int(9, title="Signal Length")
// Leverage
leverage = 10
// Calculate the SMAs
sma7 = ta.sma(close, sma7_length)
sma15 = ta.sma(close, sma15_length)
sma60 = ta.sma(close, sma60_length)
// Calculate the MACD line and Signal line
[macdLine, signalLine, _] = ta.macd(close, fast_length, slow_length, signal_length)
// SMA-based Probabilities
smaBullishProb = (sma7 > sma15 and sma7 > sma60 and sma15 > sma60) ? 0.5 : 0.0
smaBearishProb = (sma7 < sma15 and sma7 < sma60 and sma15 < sma60) ? 0.5 : 0.0
// MACD-based Probabilities
macdBullishProb = ta.crossover(macdLine, signalLine) ? 0.5 : 0.0
macdBearishProb = ta.crossunder(macdLine, signalLine) ? 0.5 : 0.0
// Combined Probabilities
combinedBullishProb = smaBullishProb + macdBullishProb
combinedBearishProb = smaBearishProb + macdBearishProb
// Trade logic using `if` conditions
if combinedBullishProb == 1.0
strategy.close("Short")
strategy.entry("Long", strategy.long, qty=leverage)
if combinedBearishProb == 1.0
strategy.close("Long")
strategy.entry("Short", strategy.short, qty=leverage)
// Exit conditions based on profit points
longTargetProfit1 = close * 1.09
longTargetProfit2 = close * 1.21
shortTargetProfit1 = close * 0.91
shortTargetProfit2 = close * 0.79
strategy.exit("Long TP1", from_entry="Long", limit=longTargetProfit1, qty_percent=0.5)
strategy.exit("Long TP2", from_entry="Long", limit=longTargetProfit2)
strategy.exit("Short TP1", from_entry="Short", limit=shortTargetProfit1, qty_percent=0.5)
strategy.exit("Short TP2", from_entry="Short", limit=shortTargetProfit2)
// Visualization (optional)
plot(sma7, color=color.green, title="7 Candle SMA")
plot(sma15, color=color.blue, title="15 Candle SMA")
plot(sma60, color=color.red, title="60 Candle SMA")
hline(0, "Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram")