Chiến lược EMA SAR theo xu hướng trung hạn đến dài hạn là một chiến lược giao dịch định lượng sử dụng sự kết hợp của Mức trung bình chuyển động (EMA) và chỉ số Parabolic Stop and Reverse (SAR) để nắm bắt xu hướng trung hạn đến dài hạn trên thị trường. Chiến lược xác định hướng xu hướng thị trường hiện tại bằng cách so sánh EMA 20 giai đoạn và 60 giai đoạn và xác nhận với chỉ số SAR. Mục tiêu chính của chiến lược là tham gia giao dịch sớm trong quá trình hình thành xu hướng và giữ các vị trí cho đến khi có tín hiệu đảo ngược.
Cốt lõi của chiến lược này là sử dụng sự chéo chéo của hai EMA với các khoảng thời gian khác nhau (20 và 60) để xác định hướng xu hướng. Khi EMA 20 giai đoạn vượt qua trên EMA 60 giai đoạn từ dưới, nó cho thấy rằng một xu hướng tăng có thể hình thành; ngược lại, khi EMA 20 giai đoạn vượt qua dưới EMA 60 giai đoạn từ trên, nó gợi ý một xu hướng giảm tiềm năng. Để xác nhận thêm tính xác thực của xu hướng, chiến lược cũng kết hợp chỉ số xu hướng SAR. Chiến lược sẽ chỉ xem xét tham gia giao dịch khi sự chéo chéo EMA xảy ra đồng thời với chỉ số SAR hiển thị tín hiệu phù hợp với xu hướng (giá SAR dưới trong xu hướng tăng, giá SAR trên trong xu hướng giảm).
Chiến lược theo dõi xu hướng trung hạn đến dài hạn EMA SAR kết hợp các chỉ số EMA và SAR để tham gia giao dịch sớm trong quá trình hình thành xu hướng, nhằm nắm bắt các cơ hội xu hướng trung hạn đến dài hạn trên thị trường. Ưu điểm của chiến lược nằm trong khả năng lọc tiếng ồn và giữ vị trí một khi xu hướng được thiết lập để tối đa hóa lợi nhuận. Tuy nhiên, nó có thể tạo ra nhiều tín hiệu sai trong các thị trường giới hạn phạm vi, và hiệu suất của nó bị ảnh hưởng đáng kể bởi sự lựa chọn tham số.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA SAR Strategy", overlay=true) // EMA Settings ema_20 = ta.ema(close, 20) ema_60 = ta.ema(close, 60) /// SAR Settings sar = ta.sar(0.02, 0.2, 0.2) sar_value = sar is_trend_up = sar[1] > sar[2] ? true : false // Evaluating the trend direction /// Condition for Buy Signal buy_condition = ta.crossover(ema_20, ema_60) and (sar_value < ema_20) and (is_trend_up) // Condition for Sell Signal sell_condition = ta.crossunder(ema_20, ema_60) and (sar_value > ema_20) and (not is_trend_up) // Define Entry Time entry_time = time + 180000 // Strategy Entry strategy.entry("Buy", strategy.long, when=buy_condition, comment="Buy Signal", stop=high[1]) strategy.entry("Sell", strategy.short, when=sell_condition, comment="Sell Signal", stop=low[1], when=entry_time) // Plot EMAs plot(ema_20, color=#f3e221, linewidth=1, title="EMA 20") plot(ema_60, color=#8724f0, linewidth=1, title="EMA 60") // Plot SAR plotshape(sar_value, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small, title="SAR Up") plotshape(sar_value, style=shape.triangledown, location=location.belowbar, color=color.red, size=size.small, title="SAR Down") // Plot Buy and Sell Signals plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Send Alerts alertcondition(condition=buy_condition, title="Buy Signal", message="Buy Signal - EMA SAR Strategy") alertcondition(condition=sell_condition, title="Sell Signal", message="Sell Signal - EMA SAR Strategy")