Chiến lược EMA Ribbon tạo ra các tín hiệu giao dịch bằng cách tính toán các đường trung bình động theo cấp số nhân (EMA) của các giai đoạn khác nhau và xác định các giao dịch chéo giữa chúng. Chiến lược này xây dựng một băng 8 EMA với các giai đoạn khác nhau, và sử dụng giao dịch chéo giữa EMA ngắn nhất và EMA dài nhất để xác định xu hướng thị trường và tạo ra các tín hiệu giao dịch.
Cốt lõi của chiến lược này bao gồm 8 EMA: 20 giai đoạn, 25 giai đoạn, 30 giai đoạn, 35 giai đoạn, 40 giai đoạn, 45 giai đoạn, 50 giai đoạn và 55 giai đoạn. 8 EMA này tạo thành một ruột xếp chồng lên nhau từ dưới lên trên. Khi EMA ngắn hơn vượt qua EMA dài hơn, một tín hiệu mua được tạo ra. Khi EMA ngắn hơn vượt qua dưới EMA dài hơn, một tín hiệu bán được tạo ra.
Ví dụ, khi EMA 20 giai đoạn vượt trên EMA 55 giai đoạn, một tín hiệu mua được kích hoạt; khi EMA 20 giai đoạn vượt dưới EMA 55 giai đoạn, một tín hiệu bán được kích hoạt. EMA có thể chỉ ra xu hướng thị trường rất tốt. Chiến lược này xác định xu hướng chiếm ưu thế bằng cách sử dụng nhiều đường chéo EMA và tạo ra các tín hiệu giao dịch phù hợp.
Chiến lược EMA Ribbon có những lợi thế sau:
Sử dụng nhiều EMA của các giai đoạn khác nhau có thể xác định chính xác hơn những thay đổi trong xu hướng thị trường.
Xây dựng một ruy băng với nhiều EMA làm cho các tín hiệu giao dịch rõ ràng hơn.
Kết hợp cả EMA dài hạn và ngắn hạn xem xét cả xu hướng dài hạn và điều chỉnh ngắn hạn.
Chiến lược cho phép không gian tối ưu hóa tham số lớn bằng cách điều chỉnh thời gian EMA và các tham số khác.
Logic chiến lược đơn giản và dễ hiểu và thực hiện.
Chiến lược EMA Ribbon cũng có một số rủi ro:
Nó có thể tạo ra các tín hiệu sai khi xu hướng thị trường tổng thể không rõ ràng.
Tần suất giao dịch cao làm tăng chi phí giao dịch và trượt. Thời gian EMA có thể được điều chỉnh để giảm tần suất giao dịch.
Cài đặt tham số không chính xác có thể làm cho tín hiệu quá nhạy hoặc chậm.
Khoảng cách giá đột ngột từ các sự kiện có thể vô hiệu hóa tín hiệu. Chiến lược dừng lỗ nên được sử dụng để kiểm soát rủi ro.
Chiến lược EMA Ribbon có thể được tối ưu hóa trong các khía cạnh sau:
Điều chỉnh các thông số thời gian EMA để tìm kết hợp tối ưu.
Thêm các chỉ số kỹ thuật khác để lọc và xác nhận tín hiệu để cải thiện độ chính xác.
Bao gồm các chỉ số biến động để giảm tần suất giao dịch trong môi trường biến động thấp.
Thiết lập các chiến lược dừng lỗ để giới hạn mỗi lỗ giao dịch.
Tối ưu hóa các chiến lược quản lý tiền để cải thiện các yếu tố lợi nhuận.
Kiểm tra độ bền của các tham số trên các sản phẩm và hợp đồng khác nhau.
Chiến lược EMA Ribbon có logic rõ ràng, xác định xu hướng với EMA chéo và tạo tín hiệu giao dịch. Nó có không gian tối ưu hóa lớn để điều chỉnh các tham số, thêm bộ lọc tín hiệu vv. Nhìn chung nó khá đơn giản và thực tế, tốt cho người mới bắt đầu giao dịch lượng. Nhưng kiểm soát tần suất giao dịch và rủi ro vẫn quan trọng.
/*backtest start: 2024-01-14 00:00:00 end: 2024-01-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="EMA Ribbon [Krypt] with Buy/Sell Signals", shorttitle="EMA Ribbon", overlay=true) dropn(src, n) => na(src[n]) ? na : src length1 = input(20, title="MA-1 period", minval=1) length2 = input(25, title="MA-2 period", minval=1) length3 = input(30, title="MA-3 period", minval=1) length4 = input(35, title="MA-4 period", minval=1) length5 = input(40, title="MA-5 period", minval=1) length6 = input(45, title="MA-6 period", minval=1) length7 = input(50, title="MA-7 period", minval=1) length8 = input(55, title="MA-8 period", minval=1) source_input = input(close, title="Source") price = dropn(source_input, 1) ema1 = ema(price, length1) ema2 = ema(price, length2) ema3 = ema(price, length3) ema4 = ema(price, length4) ema5 = ema(price, length5) ema6 = ema(price, length6) ema7 = ema(price, length7) ema8 = ema(price, length8) plot(ema1, title="MA-1", color=#f5eb5d, transp=0, linewidth=2) plot(ema2, title="MA-2", color=#f5b771, transp=0, linewidth=2) plot(ema3, title="MA-3", color=#f5b056, transp=0, linewidth=2) plot(ema4, title="MA-4", color=#f57b4e, transp=0, linewidth=2) plot(ema5, title="MA-5", color=#f56d58, transp=0, linewidth=2) plot(ema6, title="MA-6", color=#f57d51, transp=0, linewidth=2) plot(ema7, title="MA-7", color=#f55151, transp=0, linewidth=2) plot(ema8, title="MA-8", color=#aa2707, transp=0, linewidth=2) // Buy and sell signals based on crossover and crossunder buySignal = crossover(ema1, ema8) sellSignal = crossunder(ema1, ema8) plotshape(series=buySignal, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sellSignal, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small) if buySignal strategy.entry("Enter Long", strategy.long) else if sellSignal strategy.entry("Enter Short", strategy.short)