Chiến lược này sử dụng hoạt động chéo giữa giá trượt Parabolic SAR và nến để đạt được theo dõi đà và dừng lỗ cho giao dịch swing. Chiến lược sẽ thiết lập các vị trí dài và ngắn khi giá tăng và giảm. Nó sẽ đóng các vị trí này để dừng lỗ khi giá đảo ngược.
Trong trường hợp này, chiến lược sẽ kiểm tra vào cuối mỗi ngọn nến xem giá trị Parabolic SAR có vượt qua mức thấp của ngọn nến hay không. Nếu không, điều đó có nghĩa là xu hướng tăng tiếp tục và chiến lược sẽ thiết lập một vị trí dài. Nếu Parabolic SAR vượt qua mức thấp, điều đó có nghĩa là xu hướng tăng ngược xuống, và chiến lược sẽ đóng vị trí dài để dừng lỗ.
Ngược lại, khi Parabolic SAR nằm trên ngọn nến, điều đó có nghĩa là giá đang giảm. Trong trường hợp này, chiến lược sẽ kiểm tra vào cuối mỗi ngọn nến xem Parabolic SAR vượt qua dưới mức cao của ngọn nến. Nếu không, nó sẽ thiết lập một vị trí ngắn. Nếu Parabolic SAR vượt qua mức cao, điều đó có nghĩa là xu hướng giảm đang đảo ngược lên, và chiến lược sẽ đóng vị trí ngắn để dừng lỗ.
Thông qua logic này, chiến lược có thể thiết lập các vị trí dọc theo xu hướng giá và thực hiện dừng lỗ trong lần đầu tiên khi xu hướng đảo ngược, khóa lợi nhuận.
Các phương pháp để tăng cường độ bền bao gồm: tối ưu hóa các điểm dừng lỗ để làm cho chúng đủ nghiêm ngặt; kết hợp các chỉ số khác để xác nhận; điều chỉnh các tham số để thích nghi với môi trường thay đổi; chọn các bộ tham số tối ưu cho các sản phẩm khác nhau, v.v.
Nói chung, chiến lược chuyển động Parabolic SAR này là một chiến lược giao dịch ngắn hạn khá hiệu quả. Nó tận dụng lợi thế của Parabolic SAR để xác định hướng xu hướng và sự thay đổi động lực, cùng với các phương pháp giao dịch chuyển động, để liên tục thiết lập các vị trí dài và ngắn trong xu hướng tăng và giảm. Cơ chế dừng lỗ nghiêm ngặt cũng cung cấp cho chiến lược này khả năng kiểm soát rủi ro tốt. Nhưng như một chiến lược chỉ số duy nhất, sự vô hiệu của Parabolic SAR sẽ có tác động đáng kể. Vì vậy, đây là một chiến lược có một số sức mạnh và tiềm năng, nhưng cũng có một số rủi ro. Nó cần kiểm tra lại, tối ưu hóa và cải tiến để tạo ra lợi nhuận dư thừa ổn định trong giao dịch trực tiếp.
/*backtest start: 2023-12-14 00:00:00 end: 2023-12-21 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Parabolic SAR Strategy", overlay=true) start = input(0.05) increment = input(0.075) maximum = input(1) fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := min(AF + increment, maximum) else if low < EP EP := low AF := min(AF + increment, maximum) if uptrend SAR := min(SAR, low[1]) if bar_index > 1 SAR := min(SAR, low[2]) else SAR := max(SAR, high[1]) if bar_index > 1 SAR := max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) if barstate.isconfirmed and time_cond if uptrend strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE") strategy.cancel("ParLE") else strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE") strategy.cancel("ParSE") plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange) plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)