Chiến lược này kết hợp các chỉ số MACD và RSI để xác định hướng xu hướng và mức mua quá mức / bán quá mức cho giao dịch xu hướng.
Lý thuyết chính:
Tính toán đường MACD và đường tín hiệu (EMA của MACD)
Delta là sự khác biệt của họ, thể hiện sự thay đổi động lực giá
RSI để đo lường các điều kiện mua quá mức/bán quá mức
Đi dài khi Delta vượt qua đường không và RSI mua quá mức (thất định 70)
Đi ngắn khi Delta vượt qua dưới đường không và RSI quá bán (thất định 30)
MACD cho hướng chuyển động, RSI cho mua quá mức / bán - combo lọc nhiều tín hiệu sai.
Kết hợp hai chỉ số cho tín hiệu được lọc
MACD đo đạc động lực, chỉ số RSI đo đạc mua/bán quá mức
Các tham số có thể cấu hình cho các thị trường khác nhau
Lý lẽ rõ ràng về chiến lược giao dịch xu hướng
Hiệu quả hạn chế từ sự kết hợp chỉ số duy nhất
Không dừng lỗ, không thể kiểm soát lỗ cho mỗi giao dịch
Không xem xét kích thước vị trí
Hạn chế:
Kiểm tra các chỉ số khác, tìm kết hợp tối ưu
Thêm trailing hoặc dừng lỗ cứng
Kích thước vị trí dựa trên kích thước tài khoản hoặc biến động
Kiểm tra MACD với các kết hợp chỉ số khác
Tối ưu hóa các tham số cho sự ổn định
Bộ lọc tín hiệu theo xu hướng để tránh đột phá sai
Sử dụng lệnh dừng lỗ để bảo vệ lợi nhuận
ML để đánh giá chất lượng tín hiệu
Chiến lược này kết hợp MACD và RSI để xác định xu hướng vững chắc. Tính ổn định có thể được cải thiện thông qua tối ưu hóa tham số, dừng lỗ, bộ lọc thông minh v.v. Nó cung cấp một khuôn khổ giao dịch xu hướng hiệu quả để cải thiện hơn nữa.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 6h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("MACD RSI Strategy", overlay=true) fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD // RSI length_rsi = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close vrsi = rsi(price, length_rsi) // if (not na(vrsi)) if (crossover(delta, 0) and crossover(vrsi, overBought )) strategy.entry("MacdLE", strategy.long, comment="LE") if (crossunder(delta, 0) and crossunder(vrsi, overSold)) strategy.entry("MacdSE", strategy.short, comment="SE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)