
Chiến lược theo dõi xu hướng dài hạn trong EMA SAR là một chiến lược giao dịch định lượng sử dụng sự kết hợp của chỉ số trung bình di chuyển ((EMA) và chỉ số đường parallax ((SAR) để nắm bắt xu hướng trung bình dài hạn của thị trường. Chiến lược này xác định hướng xu hướng của thị trường hiện tại bằng cách so sánh 20 chu kỳ và 60 chu kỳ EMA kết hợp với chỉ số SAR và giao dịch sau khi xu hướng được xác định. Mục tiêu chính của chiến lược này là can thiệp vào giai đoạn đầu của sự hình thành xu hướng và giữ vị trí cho đến khi có tín hiệu biến đổi xu hướng.
Cốt lõi của chiến lược này là sử dụng sự giao thoa của hai chu kỳ khác nhau EMA ((20 và 60) để đánh giá xu hướng của xu hướng. Khi 20 chu kỳ EMA đi qua 60 chu kỳ EMA từ phía dưới, cho thấy xu hướng tăng có thể đang hình thành; ngược lại, khi 20 chu kỳ EMA đi qua 60 chu kỳ EMA từ phía trên, cho thấy xu hướng giảm có thể đang hình thành. Để xác nhận thêm về tính xác thực của xu hướng, chiến lược này cũng đưa ra chỉ số SAR làm phán đoán phụ trợ. Chỉ khi EMA giao thoa, chỉ khi chỉ số SAR cũng hiển thị tín hiệu phù hợp với xu hướng (SAR khi xu hướng tăng ở bên dưới giá, SAR khi xu hướng giảm ở bên trên giá), chiến lược này sẽ xem xét giao dịch.
Chiến lược theo dõi xu hướng dài hạn trong EMA SAR bằng cách kết hợp các chỉ số EMA và SAR, can thiệp vào giai đoạn đầu của xu hướng để nắm bắt cơ hội xu hướng dài hạn trong thị trường. Ưu điểm của chiến lược này là có thể lọc tiếng ồn tốt hơn và giữ vị trí để tối đa hóa lợi nhuận sau khi xu hướng được thiết lập. Tuy nhiên, nó có thể có nhiều tín hiệu sai trong thị trường bất ổn và có ảnh hưởng lớn đến 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")