Chiến lược theo xu hướng dựa trên SuperTrend và DEMA


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

Chiến lược theo xu hướng dựa trên SuperTrend và DEMA

Tổng quan

Chiến lược này kết hợp chỉ số SuperTrend và chỉ số DEMA để thực hiện một chiến lược giao dịch theo dõi xu hướng. Nó tạo ra tín hiệu mua khi giá vượt quá đường lên, tạo ra tín hiệu bán khi giá rơi xuống đường, kết hợp với DEMA để lọc tín hiệu giả. Chiến lược này được áp dụng cho các hành vi xu hướng, có thể theo dõi xu hướng một cách hiệu quả, lọc rung động.

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

Chiến lược này chủ yếu dựa trên chỉ số SuperTrend để xác định xu hướng giá. Chỉ số SuperTrend kết hợp với chỉ số ATR, có thể xác định xu hướng giá một cách hiệu quả. Khi giá tăng, nó sẽ hình thành đường lên, và khi giá giảm, nó sẽ hình thành đường xuống.

Để lọc các tín hiệu báo cáo sai, chiến lược này cũng kết hợp với chỉ số DEMA. Chỉ có tín hiệu mua khi giá vượt quá đường lên và cao hơn đường DEMA; chỉ có tín hiệu bán khi giá giảm xuống và thấp hơn đường DEMA. Điều này có thể lọc hiệu quả tín hiệu sai trong thị trường biến động.

Cụ thể, các tín hiệu giao dịch của chiến lược này sẽ có logic như sau:

  1. Khi giá phá vỡ đường đi xuống, nó sẽ đảo ngược xu hướng, tạo ra tín hiệu mua
  2. Khi giá phá vỡ đường dẫn trên, nó sẽ tạo ra một tín hiệu bán
  3. Chỉ khi có tín hiệu mua và giá cao hơn đường DEMA, tín hiệu mua thực sự được tạo ra
  4. Chỉ khi có tín hiệu bán và giá thấp hơn đường DEMA, tín hiệu bán thực sự được tạo ra

Bằng cách thiết kế logic như vậy, bạn có thể làm theo xu hướng và tránh thường xuyên mở vị trí trong thị trường biến động.

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

  • Kết hợp với chỉ số SuperTrend và chỉ số DEMA, để thực hiện theo dõi xu hướng và hiệu ứng lọc tín hiệu kép
  • Các tham số chỉ số SuperTrend dễ tối ưu hóa, có thể điều chỉnh theo các giống và chu kỳ khác nhau
  • Tối ưu hóa tham số chỉ số DEMA đơn giản, không cần thử nghiệm lặp lại
  • Các chiến lược được áp dụng cho các hoạt động có xu hướng, có thể theo dõi xu hướng
  • Các chỉ số DEMA có hiệu quả trong việc lọc các tín hiệu sai của thị trường
  • Đơn giản, dễ hiểu và dễ sửa đổi

Rủi ro chiến lược

  • Chiến lược không thể đối phó tốt với tình huống biến động giá mạnh
  • Lợi nhuận có thể giảm khi xu hướng thay đổi
  • Các tham số chỉ số DEMA được đặt không đúng, có thể bỏ lỡ thời điểm tốt nhất để mua / bán
  • Các tham số chỉ số SuperTrend có thể tạo ra tín hiệu báo cáo sai, chẳng hạn như ATR không được thiết lập đúng

Phương pháp giải quyết rủi ro:

  • Tối ưu hóa tham số DEMA và tham số SuperTrend
  • Kết hợp với chiến lược dừng lỗ, kiểm soát dừng lỗ đơn
  • Tăng cơ chế xác nhận tại các điểm quan trọng để tránh tín hiệu sai

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

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Tối ưu hóa tham số của chỉ số SuperTrend. Bạn có thể thử nghiệm các tham số khác nhau của chu kỳ ATR để tìm ra sự kết hợp tham số tốt nhất.

  2. Tối ưu hóa tham số chỉ số DEMA. Bạn có thể thử nghiệm các tham số khác nhau để xác định cài đặt tham số tối ưu nhất.

  3. Tăng cơ chế dừng lỗ. Bạn có thể đặt mức dừng lỗ theo giá trị ATR, tránh dừng lỗ quá lớn.

  4. Thêm quy tắc lọc tín hiệu. Bạn có thể thêm xác nhận các chỉ số khác tại các điểm quan trọng, tránh tín hiệu báo cáo sai. Ví dụ như xác nhận các chỉ số năng lượng tăng tại các điểm biến xu hướng.

  5. Tối ưu hóa quản lý vị trí. Bạn có thể điều chỉnh vị trí tùy theo biến động của thị trường và tình trạng rủi ro.

Tóm tắt

Chiến lược này tích hợp các ưu điểm của chỉ số SuperTrend và chỉ số DEMA, thực hiện chiến lược giao dịch định lượng dựa trên theo dõi xu hướng và lọc tín hiệu. Có nhiều không gian để tối ưu hóa chiến lược, có thể cải thiện hơn nữa sự ổn định và khả năng lợi nhuận của chiến lược thông qua các biện pháp như tối ưu hóa tham số, cơ chế dừng lỗ và lọc tín hiệu. Ý tưởng chiến lược đơn giản, rõ ràng và dễ thực hiện, có thể kiểm soát rủi ro tổng thể, phù hợp với giao dịch định lượng thực tế.

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

//@version=5
strategy('Krish\'s Supertrend Strategy', overlay=true)

// Supertrend Settings
Periods = input(title='ATR Period', defval=10)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)

atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2

up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up

dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn

trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1

plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
plotshape(buySignal and showsignals ? up : na, title='Buy', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))

dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1

plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
plotshape(sellSignal and showsignals ? dn : na, title='Sell', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))

// DEMA Settings
dema_length = 200
dema = ta.ema(close, dema_length)

// Long and Short Conditions
longCondition = buySignal and close > dema
shortCondition = sellSignal and close < dema

// Strategy Entry and Exit
strategy.entry('Long', strategy.long, when=longCondition)
strategy.entry('Short', strategy.short, when=shortCondition)

strategy.close('Long', when=ta.change(trend) or close < dema)
strategy.close('Short', when=ta.change(trend) or close > dema)

// Plotting
mPlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? trend == 1 ? color.green : color.white : color.white
shortFillColor = highlighting ? trend == -1 ? color.red : color.white : color.white

fill(mPlot, upPlot, title='UpTrend Highlighter', color=longFillColor, transp=90)
fill(mPlot, dnPlot, title='DownTrend Highlighter', color=shortFillColor, transp=90)

// Alerts (using plotshape for alerts in strategies)
plotshape(buySignal, title='SuperTrend Buy', color=color.new(color.green, 0), style=shape.triangleup, size=size.small)
plotshape(sellSignal, title='SuperTrend Sell', color=color.new(color.red, 0), style=shape.triangledown, size=size.small)
changeCond = trend != trend[1]
plotshape(changeCond, title='SuperTrend Direction Change', color=color.new(color.yellow, 0), style=shape.triangleup, size=size.small)