
Chiến lược này là một hệ thống giao dịch dựa trên sự khác biệt giữa các chỉ số SAR đường thẳng và giá. Bằng cách theo dõi sự khác biệt giữa các chỉ số SAR và biến động giá để xác định các điểm đảo ngược xu hướng tiềm ẩn, để nắm bắt cơ hội biến đổi thị trường. Chiến lược này sử dụng các chỉ số SAR đường thẳng cổ điển như một chỉ số kỹ thuật cốt lõi, kết hợp với các phương pháp phân tích khác biệt, để xây dựng một hệ thống giao dịch theo dõi xu hướng hoàn chỉnh.
Logic cốt lõi của chiến lược bao gồm các yếu tố chính sau:
Đây là một chiến lược theo dõi xu hướng dựa trên các chỉ số kỹ thuật cổ điển, nắm bắt các điểm biến đổi của thị trường bằng cách rời khỏi phương pháp phân tích. Ý tưởng thiết kế chiến lược rõ ràng, phương pháp thực hiện đơn giản và có khả năng hoạt động tốt. Tuy nhiên, trong ứng dụng thực tế, vẫn cần tối ưu hóa theo đặc điểm thị trường cụ thể, đặc biệt là cần phải hoàn thiện thêm về kiểm soát rủi ro.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SAR Divergence Strategy", overlay=true)
// --- Inputs ---
length = input.int(14, title="SAR Length", minval=1)
accelerationFactor = input.float(0.02, title="Acceleration Factor", minval=0.01)
maximumFactor = input.float(0.2, title="Maximum Factor", minval=0.01)
// --- SAR Calculation ---
sar = ta.sar(length, accelerationFactor, maximumFactor)
// --- Divergence Detection ---
lookback = 5
// Bullish Divergence
bullCond = close[lookback] < close[lookback + 1] and sar[lookback] > sar[lookback + 1]
// Bearish Divergence
bearCond = close[lookback] > close[lookback + 1] and sar[lookback] < sar[lookback + 1]
// --- Strategy Logic ---
if (bullCond)
strategy.entry("Long", strategy.long)
if (bearCond)
strategy.entry("Short", strategy.short)
// --- Plotting ---
plot(sar, color=color.blue, linewidth=2, title="Parabolic SAR")
plotshape(bullCond, style=shape.triangleup, color=color.green, size=size.small, title="Bullish Divergence")
plotshape(bearCond, style=shape.triangledown, color=color.red, size=size.small, title="Bearish Divergence")
// --- Alerts ---
alertcondition(bullCond, title="Bullish SAR Divergence", message="Bullish Divergence detected")
alertcondition(bearCond, title="Bearish SAR Divergence", message="Bearish Divergence detected")