Chiến lược va chạm ba chỉ số là một chiến lược giao dịch định lượng rất cổ điển. Nó kết hợp ba chỉ số kỹ thuật cổ điển - trung bình động, chỉ số MACD và chỉ số RSI. Nó tạo ra tín hiệu giao dịch khi cả ba chỉ số tạo ra tín hiệu mua hoặc bán đồng thời.
Chiến lược này sử dụng EMA 20 ngày, MACD ((12, 26, 9) và RSI 14 ngày.
Khi giá vượt trên đường EMA 20 ngày, biểu đồ MACD vượt trên đường tín hiệu và chỉ số RSI vượt trên đường EMA 20 ngày của RSI, đi dài. Khi giá vượt dưới đường EMA 20 ngày, biểu đồ MACD vượt dưới đường tín hiệu và chỉ số RSI vượt dưới đường EMA 20 ngày của RSI, đi ngắn.
Với các tín hiệu giao dịch chỉ được tạo ra khi cả ba chỉ số đồng ý, điều này lọc ra một số tín hiệu sai và làm cho chiến lược vững chắc và đáng tin cậy hơn.
Chiến lược va chạm ba chỉ số có những lợi thế sau:
Lọc ra tiếng ồn và giảm tín hiệu sai. Chỉ số duy nhất dễ bị tiếng ồn thị trường và tín hiệu sai. Sử dụng ba chỉ số có thể lọc ra tiếng ồn hiệu quả và làm cho tín hiệu đáng tin cậy hơn.
Nhận các điểm uốn cong trong xu hướng. Các chỉ số khác nhau phản ứng với biến động giá khác nhau. Khi ba chỉ số đồng ý trong ngắn hạn, nó thường biểu thị sự đảo ngược xu hướng. Điều này cung cấp khả năng nắm bắt các điểm uốn cong.
Đánh giá thị trường từ nhiều chiều. Ba chỉ số phân tích thị trường từ các góc độ khác nhau, xác minh lẫn nhau, để đánh giá xu hướng thị trường toàn diện và chính xác hơn.
Giảm rủi ro vị trí. Việc lọc với nhiều chỉ số làm giảm thời gian giao dịch không hiệu quả và doanh thu quỹ không cần thiết, giúp kiểm soát rủi ro.
Ngoài ra còn có một số rủi ro với chiến lược này:
Rủi ro tối ưu hóa tham số. Các tham số về độ dài trung bình động, tham số MACD, tham số RSI v.v. đều có thể ảnh hưởng đến hiệu suất chiến lược. Sự kết hợp tham số không phù hợp có thể dẫn đến hiệu suất chiến lược kém trong xu hướng thị trường. Do đó, cần phải thử nghiệm và tối ưu hóa toàn diện để tìm ra sự kết hợp tham số tối ưu.
Không có cơ hội giao dịch. Chiến lược ba chỉ số tương đối bảo thủ và có thể bỏ lỡ một số cơ hội giao dịch. Nếu không nắm bắt được xu hướng lớn, nó sẽ làm tổn hại đến lợi nhuận của chiến lược.
Kiểm soát trượt trong giao dịch trực tiếp. Trong giao dịch trực tiếp, chi phí giao dịch và trượt cũng ảnh hưởng đến các chiến lược ở một mức độ nào đó. Tần suất giao dịch cần phải được kiểm soát để đảm bảo lợi nhuận lớn hơn chi phí giao dịch.
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Kiểm tra các kết hợp tham số khác nhau để tìm các tham số tối ưu, bằng cách thay đổi chiều dài của đường trung bình động, tham số MACD, tham số RSI v.v.
Thêm cơ chế dừng lỗ. Di chuyển dừng lỗ hoặc lệnh dừng lỗ đang chờ có thể kiểm soát hiệu quả lỗ giao dịch duy nhất.
Kết hợp các chỉ số khác để lọc tín hiệu. Bollinger Bands, KDJ vv cũng có thể được sử dụng để xác minh tín hiệu và lọc ra các tín hiệu sai.
Điều chỉnh các tham số dựa trên các sản phẩm và khung thời gian khác nhau.
Chiến lược va chạm ba chỉ số sử dụng các tín hiệu giao dịch từ đường trung bình động, MACD và RSI để đưa ra quyết định dài và ngắn. Nó có thể lọc hiệu quả tiếng ồn và xác định các điểm uốn nắn tiềm năng trong xu hướng, làm cho tín hiệu giao dịch đáng tin cậy hơn. Bằng cách tối ưu hóa các thông số, đặt dừng lỗ, lọc tín hiệu và vân vân, chiến lược này có thể được cải thiện liên tục để tạo ra các tín hiệu rõ ràng hơn và lợi nhuận đáng tin cậy hơn.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © fangdingjun //@version=4 strategy("MACD_RSI strategy", overlay=false) _ema_len = input(20, title="EMA length") _macd_fast = input(12, title="MACD Fast") _macd_slow = input(26, title="MACD Slow") _macd_signal_len = input(20, title="MACD Signal length") _rsi_len = input(14, title="RSI length") _rsi_signal_len = input(20, title="RSI signal length") _ema = ema(close, _ema_len) _macd = ema(close, _macd_fast) - ema(close, _macd_slow) _macd_signal = ema(_macd, _macd_signal_len) _rsi = rsi(close, _rsi_len) _rsi_signal = ema(_rsi, _rsi_signal_len) plot(_rsi, color=color.orange) plot(_rsi_signal, color=color.purple) longCondition = close > _ema and _macd > _macd_signal and _rsi > _rsi_signal if (longCondition) strategy.entry("Buy", strategy.long) shortCondition = close < _ema and _macd < _macd_signal and _rsi < _rsi_signal if (shortCondition) strategy.entry("Sell", strategy.short)