Chiến lược Sunny Supertrend

Tác giả:ChaoZhang, Ngày: 2023-12-13 14:40:24
Tags:

img

Tổng quan

Chiến lược Sunny Supertrend là một chiến lược theo xu hướng dựa trên các chỉ số ATR và SuperTrend. Nó có thể dự đoán chính xác sự đảo ngược xu hướng và hoạt động hoàn hảo như một chỉ số thời gian. Chiến lược có thể tăng sự kiên nhẫn và giúp các nhà giao dịch vào và ra khỏi thị trường vào đúng thời điểm.

Chiến lược logic

Chiến lược sử dụng chỉ số SuperTrend để xác định hướng xu hướng hiện tại. Khi chỉ số SuperTrend thay đổi hướng, chúng tôi nghĩ rằng một sự đảo ngược xu hướng có thể xảy ra. Ngoài ra, chiến lược cũng sử dụng hướng của các thân nến để phán đoán phụ trợ. Khi một tín hiệu đảo ngược tiềm năng xuất hiện và hướng thân nến phù hợp với hướng trước đó, tín hiệu không hợp lệ được lọc ra.

Cụ thể, chiến lược tạo ra các tín hiệu giao dịch theo logic sau:

  1. Sử dụng chỉ số SuperTrend để xác định hướng xu hướng chính
  2. Khi hướng chỉ số SuperTrend thay đổi, một tín hiệu đảo ngược tiềm năng được tạo ra
  3. Nếu hướng thân cây nến là phù hợp với một trước đây tại thời điểm này, tín hiệu đảo ngược được lọc ra
  4. Nếu hướng cơ thể nến thay đổi, tín hiệu đảo ngược được xác nhận và một tín hiệu giao dịch được tạo ra

Phân tích lợi thế

  1. Dựa trên chỉ số Supertrend, nó có thể xác định chính xác các điểm đảo ngược xu hướng
  2. lọc ra các tín hiệu không hợp lệ bằng cách kết hợp các hướng cơ thể nến để cải thiện chất lượng tín hiệu
  3. Thích hợp như một chỉ số thời gian để hướng dẫn các nhà đầu tư chọn thời gian vào và ra hợp lý
  4. Ứng dụng rộng rãi cho bất kỳ khung thời gian nào và các giống khác nhau với khả năng thích nghi mạnh mẽ

Rủi ro và giải pháp

  1. Chỉ số Supertrend có xu hướng tạo ra các tín hiệu dư thừa cần được lọc Giải pháp: Chiến lược này sử dụng hướng thân nến cho phán đoán phụ trợ để lọc hiệu quả các tín hiệu không hợp lệ

  2. Các thông số siêu xu hướng có xu hướng tối ưu hóa quá mức
    Giải pháp: Sử dụng các tham số mặc định để tránh tinh chỉnh thủ công và tối ưu hóa quá mức

  3. Không thể xử lý sự đảo ngược xu hướng cực nhanh Giải pháp: Điều chỉnh tham số thời gian ATR phù hợp để đối phó với sự biến động thị trường nhanh hơn

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

  1. Thử các kết hợp khác nhau của các thông số thời gian ATR
  2. Thêm chỉ số khối lượng hoặc biến động để giúp lọc tín hiệu
  3. Kết hợp với các hệ thống khác để cải thiện hiệu suất chiến lược
  4. Phát triển các cơ chế dừng lỗ để kiểm soát lỗ đơn

Kết luận

Chiến lược siêu xu hướng nắng là một chiến lược đảo ngược xu hướng hiệu quả dựa trên chỉ số siêu xu hướng. Nó kết hợp các hướng cơ thể nến để phán đoán phụ trợ, có thể lọc hiệu quả các tín hiệu không hợp lệ và cải thiện chất lượng tín hiệu. Chiến lược này hoạt động đơn giản, thích nghi cao và có thể được sử dụng rộng rãi trên nhiều sản phẩm và khung thời gian. Bằng cách tối ưu hóa các thông số hợp lý và tăng cơ chế dừng lỗ, hiệu suất của chiến lược có thể được tăng thêm.


/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Sunny Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity)

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

shor= close > open and close[1] > open[1] and close[2] > open[2] 
lon = open > close and open[1] > close[1] and  open[2] > close[2]
tt= ta.change(direction) < 0
ss= ta.change(direction) > 0
long= tt
longexit = lon or ss
short= ss
shortexit = shor or tt

longPosMem = false
longexitPosMem = false
shortPosMem = false
shortexitPosMem = false

longPosMem := long ? true : short ? false : longPosMem[1]
longexitPosMem := longexit ? true : shortexit ? false : longexitPosMem[1]
shortPosMem := short ? true : long ? false : shortPosMem[1]
shortexitPosMem := shortexit ? true : longexit ? false : shortexitPosMem[1]

longy = long and not(longPosMem[1])
longexity = longexit and not(longexitPosMem[1])
shorty = short and not(shortPosMem[1])
shortexity = shortexit and not(shortexitPosMem[1])

//Use this to customize the look of the arrows to suit your needs.
plotshape(longy, location=location.abovebar, color=color.green, style=shape.arrowup, text="Buy")
plotshape(longexity, location=location.top, color=color.green, style=shape.xcross, text="Buy exit")
plotshape(shorty, location=location.belowbar, color=color.red, style=shape.arrowdown, text="Sell")
plotshape(shortexity, location=location.bottom, color=color.red, style=shape.xcross, text="Sell exit")


//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
// STEP 1:
// Make input options that configure backtest date range
startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month", 
     defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year",
     defval=2021, minval=1800, maxval=2100)

endDate = input.int(title="End Date",
     defval=1, minval=1, maxval=31)
endMonth = input.int(title="End Month",
     defval=2, minval=1, maxval=12)
endYear = input.int(title="End Year",
     defval=2021, minval=1800, maxval=2100)

// STEP 2:
// Look if the close time of the current bar
// falls inside the date range
inDateRange =  true



// STEP 3:
// Submit entry orders, but only when bar is inside date range
if (inDateRange and longy)
    strategy.entry("enter long",strategy.long,when= longy)
    strategy.close("long",when=longexity)


if (inDateRange and shorty)
    strategy.entry("enter short",strategy.short,when = shorty)
    strategy.close("short", when=shortexity)


Thêm nữa