
Bài viết này giới thiệu một chiến lược theo dõi ngược động lực dựa trên chỉ số Parabolic SAR. Chiến lược này sử dụng chỉ số Parabolic SAR để xác định sự đảo ngược xu hướng tiềm ẩn trong thị trường tương lai Nifty, để thực hiện giao dịch theo dõi xu hướng tự động.
Chiến lược này chủ yếu dành cho các nhà giao dịch ưa thích phương pháp giao dịch có hệ thống, nó cung cấp tín hiệu nhập và thoát rõ ràng. Bằng cách nắm bắt xu hướng thị trường, chiến lược này giúp đạt được mục tiêu tài chính của các nhà giao dịch.
Chiến lược này sử dụng chỉ số Parabolic SAR để xác định hướng của xu hướng giá. Trong xu hướng tăng giá, giá trị SAR nằm bên dưới đợt phá vỡ giá và di chuyển dần lên khi có điểm cao mới; trong xu hướng giảm giá, giá trị SAR nằm trên đợt phá vỡ giá và di chuyển dần xuống khi có điểm thấp mới.
Khi giá SAR đi lên hoặc đi xuống, nó cho thấy xu hướng tiềm năng bị đảo ngược, và chiến lược sẽ tháo dỡ hoặc tháo dỡ tương ứng để nắm bắt hướng xu hướng mới.
Cụ thể, sau khi tính toán ban đầu giá trị SAR hiện tại và yếu tố gia tốc, chiến lược liên tục theo dõi giá cao hoặc thấp và điều chỉnh giá trị SAR theo đó. Trên đường K được xác nhận, nếu xu hướng giảm giá thì làm giảm giá dưới giá trị SAR; nếu xu hướng giảm giá thì làm nhiều trên giá trị SAR.
Chiến lược này cung cấp một hệ thống giao dịch tự động hóa các chỉ số Parabolic SAR để nắm bắt xu hướng thị trường. Nó cung cấp tín hiệu ra thị trường rõ ràng cho các quyết định giao dịch, giúp theo dõi xu hướng và thu lợi nhuận. Tuy nhiên, cũng cần xem xét các vấn đề như tín hiệu sai của chỉ số, rủi ro dừng lỗ. Với sự tối ưu hóa liên tục, chiến lược này có khả năng trở thành một phương pháp theo dõi xu hướng đáng tin cậy.
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-03 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Positional Parabolic SAR Strategy", overlay=true)
initial = input(0.02)
step = input(0.02)
cap = input(0.2)
var bool isUptrend = na
var float Extremum = na
var float SARValue = na
var float Accelerator = initial
var float futureSAR = na
if bar_index > 0
isNewTrendBar = false
SARValue := futureSAR
if bar_index == 1
float pastSAR = na
float pastExtremum = na
previousLow = low[1]
previousHigh = high[1]
currentClose = close
pastClose = close[1]
if currentClose > pastClose
isUptrend := true
Extremum := high
pastSAR := previousLow
pastExtremum := high
else
isUptrend := false
Extremum := low
pastSAR := previousHigh
pastExtremum := low
isNewTrendBar := true
SARValue := pastSAR + initial * (pastExtremum - pastSAR)
if isUptrend
if SARValue > low
isNewTrendBar := true
isUptrend := false
SARValue := math.max(Extremum, high)
Extremum := low
Accelerator := initial
else
if SARValue < high
isNewTrendBar := true
isUptrend := true
SARValue := math.min(Extremum, low)
Extremum := high
Accelerator := initial
if not isNewTrendBar
if isUptrend
if high > Extremum
Extremum := high
Accelerator := math.min(Accelerator + step, cap)
else
if low < Extremum
Extremum := low
Accelerator := math.min(Accelerator + step, cap)
if isUptrend
SARValue := math.min(SARValue, low[1])
if bar_index > 1
SARValue := math.min(SARValue, low[2])
else
SARValue := math.max(SARValue, high[1])
if bar_index > 1
SARValue := math.max(SARValue, high[2])
futureSAR := SARValue + Accelerator * (Extremum - SARValue)
if barstate.isconfirmed
if isUptrend
strategy.entry("ShortEntry", strategy.short, stop=futureSAR, comment="ShortEntry")
strategy.cancel("LongEntry")
else
strategy.entry("LongEntry", strategy.long, stop=futureSAR, comment="LongEntry")
strategy.cancel("ShortEntry")
plot(SARValue, style=plot.style_cross, linewidth=3, color=color.white)
plot(futureSAR, style=plot.style_cross, linewidth=3, color=color.red)