
Ý tưởng chính của chiến lược này là sử dụng sự giao thoa của EMA ngắn hạn và EMA dài hạn làm tín hiệu mua và bán. Cụ thể, khi EMA ngắn hạn tạo ra tín hiệu mua khi EMA dài hạn đi qua EMA dưới; và khi EMA ngắn hạn đi qua EMA dài hạn khi EMA dài hạn đi qua.
Chiến lược này đầu tiên xác định chu kỳ EMA ngắn hạn là 3 ngày và chu kỳ EMA dài hạn là 30 ngày. Sau đó tính giá trị của cả hai EMA. EMA ngắn hạn phản ánh biến động giá gần đây và EMA dài hạn phản ánh xu hướng giá dài hạn.
Cụ thể, chiến lược này xác định một chênh lệch để đánh giá EMA chéo. Khi chênh lệch lớn hơn 0.0005, nó tạo ra tín hiệu mua và khi chênh lệch nhỏ hơn -0.0005, nó tạo ra tín hiệu bán.
Chiến lược này đồng thời đánh dấu hình ảnh tam giác lên và tam giác xuống trên biểu đồ K để hiển thị trực quan tín hiệu mua và bán.
Lợi thế lớn nhất của chiến lược này là nó đơn giản và hiệu quả, sử dụng chỉ số cơ bản nhất của EMA để đánh giá cấu trúc thị trường, tránh rủi ro phù hợp với đường cong do mô hình quá phức tạp.
EMA là một chỉ số theo dõi xu hướng, có thể làm mịn hiệu quả tiếng ồn ngẫu nhiên, phán đoán hướng xu hướng dài hạn. So với các chỉ số phổ biến khác như đường trung bình dài hạn, EMA có tính toán có tính chất mịn chỉ số, có thể phản ứng nhanh hơn với biến động giá.
Ngoài ra, chiến lược này kết hợp nhiều chu kỳ EMA cùng một lúc, có thể lọc các đột phá giả đến một mức độ nào đó thông qua giao thoa các EMA ngắn hạn và dài. Điều này cũng mạnh mẽ hơn so với chiến lược chu kỳ EMA đơn.
Rủi ro lớn nhất của chiến lược này là sự chậm trễ của chính EMA. Khi nhảy vọt nhanh hoặc giá đảo ngược tấn công, tín hiệu chéo EMA thường bị chậm trễ và không thể phản ánh kịp thời sự thay đổi của thị trường. Điều này có thể dẫn đến việc bỏ lỡ thời gian mở vị trí tốt nhất hoặc không dừng lại kịp thời.
Ngoài ra, việc lựa chọn chu kỳ EMA cũng ảnh hưởng đến hiệu suất chiến lược. Nếu lựa chọn chu kỳ không đúng, sẽ dẫn đến quá nhiều tín hiệu sai. Ví dụ: chu kỳ quá ngắn có thể dẫn đến quá nhạy cảm với tiếng ồn thị trường; chu kỳ quá dài không thể bắt kịp sự biến đổi xu hướng.
Cuối cùng, các ngưỡng nhập và thoát của tăng cố định cũng có thể dẫn đến việc kiểm soát vị trí không phù hợp. Khi tỷ lệ biến động lớn, các ngưỡng nên được điều chỉnh thích hợp để kiểm soát vị trí.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Hoạt động tối ưu hóa chu kỳ EMA. Bạn có thể chọn hoặc tự động tối ưu hóa các cặp EMA ngắn hạn và dài hạn tốt nhất theo tình trạng thị trường, để tăng cường sự ổn định của chiến lược.
Đưa ra cơ chế dừng lỗ thích ứng. Trong khi đảm bảo dừng lỗ, hãy thiết lập một đường dừng lỗ di động hợp lý theo tỷ lệ biến động của thị trường, tránh dừng lỗ quá quyết liệt.
Kết hợp với các chỉ số khác để lọc tín hiệu. Ví dụ như chỉ số kiểm soát vị trí, chỉ số tỷ lệ dao động, v.v., để tránh tín hiệu chéo EMA mang lại tổn thất lớn khi dao động cao.
Tiếp theo, các mô hình được đào tạo để dự đoán các tham số EMA tốt nhất. Ngoài ra, các mô hình có thể dự đoán chênh lệch EMA để có được tín hiệu giao dịch chính xác hơn.
Chiến lược kết hợp quyết định EMA ngắn hạn và dài hạn này nói chung rất đơn giản và trực tiếp, đánh giá cấu trúc thị trường đa dạng thông qua chỉ số cơ bản của EMA, tránh tối ưu hóa quá mức và rủi ro mô hình. Đồng thời kết hợp nhiều chu kỳ EMA cũng làm tăng chất lượng tín hiệu.
/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Merged EMA Strategy", shorttitle="MergedEMA", overlay=true)
// Define EMA periods
shortEMA = ta.ema(close, 3)
longEMA = ta.ema(close, 30)
// Plot EMAs on the chart
plot(shortEMA, color=color.blue, title="3 EMA")
plot(longEMA, color=color.red, title="30 EMA")
// Calculate the difference between short and long EMAs
emaDifference = shortEMA - longEMA
// Set threshold for buy and sell signals
buyThreshold = 0.0005
sellThreshold = -0.0005
// Define buy and sell conditions
buyCondition = emaDifference > buyThreshold
sellCondition = emaDifference < sellThreshold
// Plot buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)
// Strategy logic
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.close("Buy", when = sellCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)
strategy.close("Sell", when = buyCondition)