Chiến lược Breakout chéo EMA kép tạo ra tín hiệu mua và bán dựa trên sự chéo chéo của các đường EMA nhanh và chậm, kết hợp với việc phá vỡ khối lượng giao dịch, mô hình nến và bộ lọc phá vỡ giá để cải thiện độ tin cậy. Bằng cách tích hợp nhiều chỉ số kỹ thuật, nó nhằm mục đích xác định xu hướng trong khi kiểm soát rủi ro.
Lý thuyết cốt lõi của chiến lược Breakout Crossover EMA kép nằm trong lý thuyết chéo vàng của hai EMA. Lý thuyết tin rằng khi EMA ngắn hạn vượt qua trên EMA dài hạn, nó báo hiệu xu hướng tăng, nên thiết lập các vị trí dài. Khi EMA ngắn hạn vượt qua dưới EMA dài hạn, nó báo hiệu xu hướng giảm, nên thiết lập các vị trí ngắn.
Đặc biệt, chiến lược này đầu tiên tính toán các EMA 9 giai đoạn và 21 giai đoạn. Khi 9-EMA vượt qua trên 21-EMA, một tín hiệu
Điều kiện khối lượng - khối lượng của nến gần đây nên vượt quá 85% khối lượng trung bình của 5 nến trước. Điều này lọc ra các tín hiệu với khối lượng giao dịch không đủ.
Điều kiện phá vỡ giá - Giá cần phá vỡ trên 9-EMA như xác nhận nhập cảnh.
Tình trạng mô hình nến - Xác định các mô hình đảo ngược tăng hoặc giảm, tránh chém trong các thị trường bên.
Đối với các vị trí dài, exit được kích hoạt khi giá vượt qua 9-EMA. Đối với các vị trí ngắn, exit được kích hoạt khi giá vượt qua 9-EMA.
Bằng cách kết hợp các tín hiệu từ nhiều chỉ số kỹ thuật, chiến lược Dual EMA Crossover Breakout có thể xác định hiệu quả xu hướng và cải thiện tỷ lệ thắng.
Sử dụng EMA kép để xác định hướng xu hướng chính là rất đáng tin cậy.
Thêm bộ lọc âm lượng tránh các tín hiệu sai khi âm lượng không đủ.
Thêm bộ lọc mẫu nến loại bỏ tiếng ồn từ thị trường giới hạn phạm vi.
Nhập sau khi giá phá vỡ EMA xác nhận xu hướng.
Cơ chế dừng lỗ chủ động kiểm soát rủi ro.
Vẫn còn một số rủi ro với chiến lược:
EMA có thể tạo ra tín hiệu sai trong các thị trường hỗn loạn, gây ra tổn thất.
Thời gian EMA cố định có thể không thích nghi với thị trường thay đổi.
Vẫn có khả năng xác định sai các mẫu nến.
Chiến lược có thể bỏ lỡ một số chuyển động giá và có theo dõi xu hướng không hoàn hảo.
Các hướng tối ưu hóa chính là:
Kiểm tra nhiều kết hợp EMA để tìm các thông số tối ưu.
Thêm EMA thích nghi dựa trên các điều kiện thị trường thay đổi.
Tối ưu hóa kích thước vị trí cho các điều kiện thị trường khác nhau.
Kết hợp thêm các chỉ số như MACD, KDJ để tạo ra các chiến lược tổng thể.
Đưa ra các mô hình học máy để cải thiện độ bền.
Chiến lược Breakout Crossover EMA kép xác định hiệu quả xu hướng bằng cách sử dụng phân tích hướng EMA kép và thêm nhiều bộ lọc khối lượng / giá / mẫu để cải thiện hiệu quả trong khi kiểm soát rủi ro. Dễ thực hiện với tính linh hoạt tối ưu hóa, đây là một chiến lược theo xu hướng breakout được khuyến cáo.
/*backtest start: 2023-11-20 00:00:00 end: 2023-11-27 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //Author: Andrew Shubitowski strategy("Buy/Sell Strat", overlay = true) //Define EMAs & Crossovers (Feature 2) a = ta.ema(close, 9) b = ta.ema(close, 21) crossUp = ta.crossover(a, b) crossDown = ta.crossunder(a, b) //Define & calc volume averages (Feature 1) float volAvg = 0 for i = 1 to 5 volAvg := volAvg + volume[i] volAvg := volAvg / 5 //Define candlestick pattern recongition (Feature 4) bool reversalPatternUp = false bool reversalPatternDown = false if (close > close[1] and close[1] > close [2] and close[3] > close[2] and close > close[3]) reversalPatternUp := true if (close < close[1] and close[1] < close [2] and close[3] < close[2] and close < close[3]) reversalPatternDown := true //Execute trade (Feature 3 + 5) if (crossUp) strategy.entry("long", strategy.long, when = ((volume * 0.85) > volAvg and close > a and reversalPatternUp == true)) if (crossDown) strategy.entry("short", strategy.short, when = ((volume * 0.85) > volAvg and close < a and reversalPatternDown == true)) //Exit strategy (New Feature) close_condition_long = close < a close_condition_short = close > a if (close_condition_long) strategy.close("long") if (close_condition_short) strategy.close("short") //plot the EMAs plot(a, title = "Fast EMA", color = color.green) plot(b, title = "Slow EMA", color = color.blue) //Some visual validation parameters //plotchar(volAvg, "Volume", "", location.top, color.aqua) //*TEST* volume calc check //plotshape(reversalPatternUp, style = shape.arrowup, color = color.aqua) //*TEST* reversal check //plotshape(reversalPatternDown, style = shape.arrowup, location = location.belowbar, color = color.red) //*TEST* reversal check