
Chiến lược này sử dụng tổng hợp các chỉ số chuyển động trung bình (Exponential Moving Average, EMA) để xác định các điểm vào và điểm ra tiềm năng của thị trường. Bằng cách so sánh các EMA của các chu kỳ khác nhau, đánh giá xu hướng thị trường hiện tại, tham gia giao dịch khi xu hướng hình thành, và kết thúc xu hướng bằng phẳng.
Chiến lược này sử dụng 4 EMA khác nhau theo chu kỳ làm chỉ số cốt lõi, tương ứng với EMA siêu ngắn (tạm dịch là 8), EMA ngắn (tạm dịch là 13), EMA trung bình (tạm dịch là 21), và EMA dài (tạm dịch là 55). Khi EMA dài nằm bên dưới ba EMA khác, chiến lược mở nhiều vị trí khi xác định rằng hiện tại có thể đang ở giai đoạn đầu của xu hướng tăng; Khi EMA dài nằm trên ba EMA khác, xác định rằng hiện tại có thể đang ở giai đoạn đầu của xu hướng giảm, chiến lược sẽ xóa bỏ tất cả các vị trí nhiều.
EMA quan tâm nhiều hơn đến giá gần đây so với đường trung bình di chuyển đơn giản (SMA), do đó, EMA hoạt động nhạy cảm hơn và có thể phản ứng nhanh hơn với sự thay đổi giá. Sự giao thoa của các EMA khác nhau trong các chu kỳ khác nhau phản ánh sự mạnh mẽ và yếu kém của xu hướng theo các quy mô thời gian khác nhau.
Khả năng áp dụng rộng rãi: Chiến lược này dựa trên chỉ số EMA của chính giá cả và có thể áp dụng cho hầu hết các loại có tính thanh khoản tốt và tương đối trơn tru, chẳng hạn như các loại hợp đồng tương lai, ngoại hối, tiền kỹ thuật số chính thống.
Theo dõi xu hướng: Xác định xu hướng bằng cách so sánh các mối quan hệ vị trí của các EMA khác nhau trong các giai đoạn khác nhau, có thể nắm bắt một mức độ nhất định trong quá trình hình thành xu hướng, theo dõi xu hướng.
Tính linh hoạt của tham số: Các tham số chu kỳ của EMA có thể được điều chỉnh linh hoạt theo các đặc điểm của giống, Investment Horizon, v.v.
Logic rõ ràng: Chiến lược tạo ra tín hiệu giao dịch dựa trên một tổ hợp sắp xếp đơn giản của EMA, logic rõ ràng, dễ hiểu và thực hiện.
EMA trì hoãn: EMA về bản chất là một chỉ số theo dõi xu hướng, có một số độ trễ, có thể xảy ra nhiều tín hiệu sai trong thị trường chấn động.
Thể số nhạy cảm: Lựa chọn tham số EMA có ảnh hưởng lớn đến hiệu suất của chiến lược và không nhất thiết phải duy trì hiệu suất tốt trên dữ liệu ngoài mẫu sau khi tối ưu hóa tham số.
Thiếu lọc: Chiến lược này thiếu lọc thêm các tín hiệu giao dịch, giao dịch sẽ được thực hiện sau khi tất cả các tín hiệu được tạo ra, có thể xảy ra một số giao dịch chất lượng thấp.
Vị trí cố định: Chiến lược hiện tại là mỗi lần mở vị trí là 1 đơn vị cố định, thiếu kiểm soát vị trí động dựa trên rủi ro và quản lý rủi ro không hoàn hảo.
Tiếp theo, bạn có thể sử dụng một bộ lọc xu hướng: trên cơ sở các tín hiệu EMA, thêm các chỉ số lọc cường độ xu hướng như ATR, ADX, để lọc các tín hiệu xu hướng yếu và thời gian dao động.
Tiết xuất tần số dao động: Trên cơ sở của bộ lọc xu hướng, có thể thêm vào bộ lọc tần số dao động, chẳng hạn như băng thông Brin, để lọc các tín hiệu chất lượng thấp có thể dẫn đến tỷ lệ dao động cao.
Tối ưu hóa dừng: Chiến lược hiện tại không có logic dừng rõ ràng, có thể tăng dừng động dựa trên ATR hoặc phần trăm sau khi giới thiệu xu hướng và lọc tỷ lệ biến động, kiểm soát tổn thất tối đa đơn lẻ.
Vị trí động: có thể kiểm soát động số lượng vị trí mở mỗi lần theo chiến lược dựa trên biến động của giống, tỷ lệ giá trị tài khoản, v.v., để tìm kiếm thu nhập tuyệt đối cao hơn trong khi giảm rủi ro.
Các tham số tối ưu hóa: tùy thuộc vào giống và chu kỳ khác nhau, các tham số tối ưu của EMA có thể khác nhau, cần phải tìm các tham số tối ưu hóa theo đặc điểm của giống, để cải thiện tính phù hợp của chiến lược.
Chiến lược này bằng cách so sánh 4 vòng khác nhau của EMA để xác định các điểm thay đổi xu hướng, chụp xu hướng hình thành ban đầu, ý tưởng đơn giản và rõ ràng. Ưu điểm của nó là phạm vi rộng, logic rõ ràng, tham số linh hoạt, có thể theo dõi xu hướng tốt hơn; nhưng cũng có sự chậm trễ vốn có của chỉ số EMA, và các tham số nhạy cảm, thiếu bộ lọc, vị trí cố định và các vấn đề khác.
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © n1ghthawk
//@version=5
strategy("donmo's 4ema", overlay=true, margin_long=100, margin_short=100)
float long = na
float short = na
lowestEMAPeriodInput = input.int(8, "Lowest EMA")
lowEMAPeriodInput = input.int(13, "Low EMA")
medEMAPeriodInput = input.int(21, "Med EMA")
highEMAPeriodInput = input.int(55, "High EMA")
lowestEMA = ta.ema(close, lowestEMAPeriodInput)
lowEMA = ta.ema(close, lowEMAPeriodInput)
medEMA = ta.ema(close, medEMAPeriodInput)
highEMA = ta.ema(close, highEMAPeriodInput)
emaLongCondition = highEMA<medEMA and highEMA<lowEMA and highEMA<lowestEMA
emaShortCondition = highEMA>medEMA and highEMA>lowEMA and highEMA>lowestEMA
longCondition = ta.change(emaLongCondition)
shortCondition = ta.change(emaShortCondition)
notInTrade = strategy.position_size <= 0
if longCondition and emaLongCondition and notInTrade
long:=high
strategy.entry("EL", strategy.long)
if shortCondition and emaShortCondition
short:=low
strategy.close("EL")
plot(long+3,title = 'long', color = color.green, linewidth = 4, style = plot.style_cross)
plot(short-3,title = 'short', color = color.red, linewidth = 4, style = plot.style_cross)
plot(lowestEMA, title = "lowestEMA", color=color.blue)
plot(lowEMA, title = "lowEMA", color=color.green)
plot(medEMA, title = "medEMA", color=color.orange)
plot(highEMA, title = "highEMA", color=color.red)