Động lượng theo sau chiến lược dừng-đảo ngược Parabol


Ngày tạo: 2023-12-22 14:45:12 sửa đổi lần cuối: 2023-12-22 14:45:12
sao chép: 0 Số nhấp chuột: 696
1
tập trung vào
1621
Người theo dõi

Động lượng theo sau chiến lược dừng-đảo ngược Parabol

Tổng quan

Chiến lược này là một chiến lược giao dịch Swing sử dụng điểm trượt đường Parabolic SAR và đường K để hoạt động chéo, thực hiện theo dõi động lực và dừng lỗ. Chiến lược này sẽ tạo ra các vị trí mua và bán trong tình huống giảm giá và giảm giá, đồng hóa các vị trí dừng lỗ khi giá đảo ngược.

Nguyên tắc chiến lược

Chiến lược này dựa chủ yếu vào chỉ số đường parabolic ((Parabolic SAR) để xác định hiện tại là xu hướng tăng hoặc xu hướng giảm. Khi chỉ số Parabolic SAR ở dưới đường K, cho thấy hiện tại đang ở trạng thái tăng giá, chiến lược sẽ kiểm tra xem giá trị Parabolic SAR có vượt qua mức giá thấp nhất của đường K hay không, nếu không vượt qua, chiến lược sẽ tạo ra nhiều vị trí; Nếu vượt qua mức giá thấp nhất của đường K trên Parabolic SAR, cho thấy xu hướng tăng trở lại xuống, chiến lược sẽ bị dừng nhiều vị trí. Ngược lại, khi chỉ số Parabolic SAR ở trên đường K, cho thấy hiện tại đang ở trạng thái giảm giá.

Với nguyên tắc hoạt động như vậy, chiến lược này có thể tạo vị trí theo thứ tự dưới xu hướng giá được xác nhận và dừng lỗ lần đầu tiên, do đó khóa lợi nhuận. Đồng thời, đường parabola, là một chỉ số động lực, có thể xác định chính xác hơn liệu xu hướng có đảo ngược hay không, điều này cũng làm cho dừng lỗ chính xác hơn.

Lợi thế chiến lược

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

Rủi ro chiến lược

  1. Giống như bất kỳ chiến lược chỉ số đơn nào khác, chiến lược này có thể xảy ra tình huống khi đường parabola đánh giá sai xu hướng giá và điểm đảo ngược. Nếu chỉ số không hoạt động, có thể dẫn đến tổn thất không cần thiết.
  2. Chiến lược này hoạt động hoàn toàn dựa vào các chỉ dẫn của đường parabola, và không thể kiểm soát rủi ro hiệu quả nếu các tham số chỉ số được đặt không đúng cách và điểm dừng lỗ được đặt quá thoải mái.
  3. Bất kỳ chiến lược đơn lẻ nào cũng có thể dần dần thất bại do cấu trúc thị trường hoặc thay đổi môi trường, cần phải kiểm tra và tối ưu hóa chiến lược kịp thời.

Các phương pháp để tăng cường sức mạnh của chiến lược bao gồm: tối ưu hóa thiết lập điểm dừng để nó đủ nghiêm ngặt; kết hợp các phán đoán chỉ số khác để xác nhận; điều chỉnh các tham số chỉ số để phù hợp với sự thay đổi của môi trường thị trường; lựa chọn các cặp tham số tối ưu theo các giống khác nhau.

Hướng tối ưu hóa chiến lược

  1. Chiến lược này có thể kiểm tra và tối ưu hóa các kết hợp tham số của parallax để có được hiệu suất tốt hơn
  2. Có thể kết hợp với các chỉ số phán đoán khác, chẳng hạn như MACD, KD, v.v., tạo thành hệ thống xác nhận đa chỉ số, tăng độ tin cậy của tín hiệu hoạt động
  3. Có thể thử nghiệm hiệu quả của các phương thức dừng khác nhau như dừng chênh lệch, dừng thời gian, dừng giá
  4. Các tham số tối ưu hóa theo các đặc điểm của các giống khác nhau, để chiến lược có thể có được lợi nhuận tốt trên các giống khác nhau

Tóm tắt

Chiến lược xoay ngang là một chiến lược hoạt động ngắn hiệu quả. Nó sử dụng các chỉ số đường ngang để đánh giá xu hướng xu hướng và sự thay đổi động lực của giá cả, kết hợp với phương thức giao dịch Swing, liên tục thiết lập các vị trí mua và bán trong giai đoạn tăng và giảm.

Mã nguồn chiến lược
/*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)