Tài nguyên đang được tải lên... tải...

Chiến lược đảo ngược động lượng SAR Parabolic

Tác giả:ChaoZhang, Ngày: 2023-12-22 14:45:12
Tags:

img

Tổng quan

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.

Chiến lược logic

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.

Ưu điểm

  1. Parabolic SAR là một chỉ số kỹ thuật tiên tiến và chính xác để xác định các điểm xu hướng và đảo ngược, cải thiện độ chính xác phán đoán.
  2. Tận dụng các phương pháp theo dõi động lượng và đảo ngược dừng lỗ có thể tận dụng đầy đủ các cơ hội xu hướng.
  3. Các quy tắc dừng lỗ nghiêm ngặt có nghĩa là khả năng kiểm soát rủi ro tốt.
  4. Các thông số tối ưu hóa làm cho chiến lược này đặc biệt phù hợp với GBP/JPY có xu hướng mạnh.

Rủi ro

  1. Giống như bất kỳ chiến lược chỉ số duy nhất nào, chiến lược này có thể bị đánh giá sai về xu hướng và đảo ngược của Parabolic SAR.
  2. Chiến lược hoàn toàn phụ thuộc vào Parabolic SAR cho các bước vào và ra.
  3. Bất kỳ chiến lược nào cũng có thể dần dần suy giảm do thay đổi cấu trúc và môi trường thị trường.

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.

Hướng dẫn tối ưu hóa

  1. Kiểm tra và tối ưu hóa sự kết hợp của các thông số SAR Parabolic để có hiệu suất tốt hơn.
  2. Kết hợp các chỉ số khác như MACD, KD để tạo thành một hệ thống xác nhận đa chỉ số, cải thiện độ tin cậy tín hiệu.
  3. Hiệu ứng thử nghiệm của các phương pháp dừng lỗ khác nhau như dừng lỗ theo dõi, dừng lỗ thời gian, dừng lỗ giá, vv.
  4. Tối ưu hóa các tham số dựa trên các đặc điểm sản phẩm khác nhau để chiến lược có thể đạt được lợi nhuận tốt trên tất cả các sản phẩm.

Kết luận

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)

Thêm nữa