Chiến lược theo dõi xu hướng siêu khung thời gian kép


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

Tổng quan

Chiến lược này là một chiến lược theo dõi xu hướng siêu của hai khung thời gian. Nó áp dụng hai chỉ số xu hướng siêu của hai chu kỳ khác nhau, một làm khung thời gian chính để xác định hướng xu hướng và một làm khung thời gian phụ để lọc vào. Chỉ khi chỉ số xu hướng siêu của hai khung thời gian đồng bộ, nó có thể nắm bắt chính xác hơn điểm biến xu hướng.

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

Chỉ số trung tâm của chiến lược này là chỉ số siêu xu hướng. Chỉ số siêu xu hướng được sử dụng để đánh giá xu hướng tương đối của giá bằng cách tính toán chênh lệch chênh lệch giá.

Các giao dịch được thực hiện theo các logic sau:

  1. Xác định hướng của đường xu hướng vượt qua khung thời gian chính là hướng của xu hướng lớn.

  2. Chờ khung thời gian trợ giúp khi đường siêu xu hướng phát ra tín hiệu đồng chiều vị trí.

  3. Cài đặt điểm dừng lỗ.

  4. Các nhà đầu tư đã có thể chứng minh rằng các nhà đầu tư đang thực hiện các động thái này một cách hợp lý.

Bằng cách kết hợp hai chỉ số chu kỳ, bạn có thể lọc ra một số tín hiệu sai lệch để đưa vào chính xác hơn.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Sự kết hợp của hai khung thời gian cho phép đánh giá chính xác hơn về xu hướng.

  2. Chỉ số siêu xu hướng nhạy cảm với sự thay đổi xu hướng và chính xác khi nhập cuộc.

  3. Cài đặt điểm dừng lỗ để kiểm soát rủi ro.

  4. Lập luận của chiến lược đơn giản, trực tiếp và dễ hiểu.

  5. Các tham số có thể được tự tối ưu hóa để phù hợp với các giống khác nhau.

Phân tích rủi ro

Những rủi ro chính của chiến lược này là:

  1. Các chỉ số siêu xu hướng có thể bị trễ và có thể sai tín hiệu.

  2. Chặn hư hỏng không được thiết lập đúng có thể gây ra quá nhiều hư hỏng hoặc cố ý dừng hư hỏng.

  3. Một sự kết hợp hai khung thời gian có thể bỏ lỡ cơ hội quay trở lại ngắn hơn.

  4. Các tham số được tối ưu hóa dựa trên dữ liệu lịch sử, có nguy cơ quá phù hợp.

  5. Không tính đến chi phí giao dịch.

Giải pháp tương ứng:

  1. Điều chỉnh các tham số chỉ số thích hợp, giới thiệu các chứng thực kết hợp các chỉ số khác.

  2. Động thái tối ưu hóa vị trí dừng lỗ dựa trên dữ liệu phản hồi.

  3. Kiểm tra ngắn hơn như một sự phán đoán hỗ trợ.

  4. Mở rộng phạm vi tra cứu dữ liệu, xác minh tra cứu đa thị trường.

  5. Ghi thêm chi phí giao dịch, điểm trượt, v.v.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa thêm bằng cách:

  1. Kiểm tra kết hợp hiệu quả của nhiều chỉ số hơn để tìm ra sự kết hợp tối ưu.

  2. Tiến hành các phương pháp học máy để tối ưu hóa các tham số động.

  3. Tối ưu hóa chiến lược dừng lỗ và cải thiện tỷ lệ lợi nhuận.

  4. Thử kết hợp nhiều chu kỳ thời gian.

  5. Chuyển đổi phạm vi dừng lỗ theo số lần giao dịch.

  6. Tính toán logic của phí và điểm trượt.

  7. Phát triển công cụ tối ưu hóa tham số đồ họa.

Tóm tắt

Chiến lược này thực hiện phán đoán và nhập xu hướng chính xác hơn thông qua các chỉ số vượt quá xu hướng trên hai khung thời gian. Thiết lập rủi ro kiểm soát dừng lỗ. Lập luận của chiến lược đơn giản và rõ ràng, dễ dàng mở rộng và tối ưu hóa.

Mã nguồn chiến lược
/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator

// strategy("Super Trend 2", overlay=true, default_qty_value=100)
TrendUp = 0.0
TrendDown = 0.0
Trend = 0.0
MTrendUp = 0.0
MTrendDown = 0.0
MTrend = 0.0

res = input(title="Main SuperTrend Time Frame",  defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)

tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))

Mclose=security(syminfo.tickerid,res,close)

TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

MTrendUp:=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown:=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn

Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

MTrend := Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown

linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)

up = Trend == 1 and Trend[1] == -1 and MTrend == 1 
down = Trend == -1 and Trend[1] == 1 and MTrend == -1 
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)


golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 

strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
   
   
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)