Chiến lược này là một chiến lược theo xu hướng dựa trên các đường chéo EMA để tạo ra các tín hiệu giao dịch. Nó sử dụng các đường chéo giữa các đường chéo EMA nhanh và chậm để xác định những thay đổi trong xu hướng giá và vào thị trường lúc bắt đầu xu hướng và thoát vào cuối, để kiếm lợi nhuận.
Chiến lược sử dụng EMA nhanh hơn với thời gian 20, phản ứng nhạy cảm với sự thay đổi giá, và EMA chậm hơn với thời gian 50, phản ứng trơn tru hơn.
Khi EMA nhanh hơn vượt qua trên EMA chậm hơn, nó báo hiệu xu hướng tăng giá, cho thấy cơ hội mua. Khi EMA nhanh hơn vượt qua dưới EMA chậm hơn, nó báo hiệu xu hướng giảm, cho thấy cơ hội bán.
Dựa trên các tín hiệu này, chúng ta có thể đưa ra quyết định giao dịch tương ứng: đi dài khi tín hiệu mua xuất hiện và đi ngắn khi tín hiệu bán xuất hiện.
Giải pháp:
Chiến lược có thể được cải thiện trong các khía cạnh sau:
Tối ưu hóa các thông số EMA bằng cách thử nghiệm các kết hợp khác nhau để tìm các thông số có lợi nhất.
Thêm các điều kiện lọc bằng cách sử dụng các chỉ số khác như MACD, KDJ để tránh tín hiệu sai. Chỉ thực hiện giao dịch khi các tín hiệu bổ sung phù hợp.
Kết hợp các cơ chế dừng lỗ như dừng cố định hoặc dừng lại để kiểm soát lỗ giao dịch duy nhất.
Hãy xem xét kết hợp với các chiến lược khác, như theo xu hướng để tăng động lực, hoặc đảo ngược trung bình để có các vị trí đảo ngược khi giá quá kéo dài.
Đây là một chiến lược theo xu hướng rất điển hình. Nó nắm bắt các xu hướng giá hiệu quả thông qua các đường chéo EMA nhanh và chậm đơn giản. Ngoài ra còn có một số vấn đề như bước vào chậm, tổn thất thắt lưng. Nhưng tất cả các vấn đề này đều có giải pháp. Nhìn chung nó cung cấp một khuôn khổ chiến lược tốt có thể được nâng cao hơn thông qua điều chỉnh tham số, lọc, dừng lỗ v.v.v. cho hiệu suất thực tế tốt.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Habitrade EMA Cross Strategy"), overlay=true //Input for EMA lengths emaShortLength = input.int(20, title="Short EMA Length") emaLongLength = input.int(50, title="Long EMA Length") //Calculate EMAs based on inputs emaShort = ta.ema(close, emaShortLength) emaLong = ta.ema(close, emaLongLength) //Plot the EMAs plot(emaShort, color=color.blue, linewidth=2, title="EMA Short") plot(emaLong, color=color.orange, linewidth=2, title="EMA Long") //Generate long and short signals longCondition = ta.crossover(emaShort, emaLong) shortCondition = ta.crossunder(emaShort, emaLong) //Enter long positions if (longCondition) strategy.entry("Long", strategy.long) //Enter short positions if (shortCondition) strategy.entry("Short", strategy.short) //Close long positions if (shortCondition) strategy.close("Long") //Clos short positions if (longCondition) strategy.close("Short")