Strategi Tren Kuantitatif Super Z

Penulis:ChaoZhang, Tanggal: 2023-11-27 18:41:59
Tag:

img

Gambaran umum

Strategi tren kuantitatif Super Z adalah strategi pelacakan tren berdasarkan indikator kuantitatif. Strategi ini menggunakan indikator khusus dikombinasikan dengan indikator Super Trend untuk menentukan dan melacak tren.

Prinsip Strategi

Indikator inti dari strategi ini adalah indikator kuantitatif kustom VHMA. Indikator VHMA dihitung berdasarkan garis Hull Moving Average. Dengan menerapkan fungsi akar kuadrat untuk meluruskan Hull MA, ia membentuk kurva dengan kelancaran yang baik. kurva VHMA dapat menilai arah tren harga. Ketika VHMA naik, itu mewakili bahwa harga berada dalam tren kenaikan. Ketika turun, itu mewakili tren penurunan harga.

Strategi ini juga menggabungkan indikator Super Trend. Indikator Super Trend dapat menemukan tren harga siklus yang lebih lama untuk membantu indikator VHMA dalam menentukan arah tren. Ketika harga menembus garis Super Trend, itu mewakili pembalikan tren.

Oleh karena itu, strategi ini menggunakan indikator VHMA untuk menilai arah tren jangka pendek, dibantu oleh indikator Super Trend untuk menentukan titik balik tren jangka panjang, mewujudkan pelacakan tren keseluruhan.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Indikator VHMA memiliki kelancaran yang kuat dan dapat mengurangi sinyal palsu.

  2. Dikombinasikan dengan indikator Super Trend, dapat dengan cepat mendeteksi pembalikan tren jangka panjang dan memahami waktu pembelian dan penjualan;

  3. Menggunakan garis K padat berwarna yang berbeda dan garis K berongga untuk menggambarkan hubungan ukuran antara harga penutupan dan harga pembukaan untuk membentuk indikator visual untuk membantu menilai tren;

  4. Mengadopsi desain multi-timeframe yang dapat menentukan arah tren pada timeframe senior dan mengeluarkan sinyal perdagangan pada timeframe junior untuk mencapai penyaringan yang efisien;

  5. Parameter strategi dioptimalkan untuk stabilitas dan cocok untuk berbagai lingkungan pasar.

Analisis Risiko

Strategi ini juga memiliki risiko berikut:

  1. Indikator kuantitatif memiliki efek backtesting, dan efek sebenarnya mungkin lebih lemah daripada backtesting;

  2. Pengaturan parameter indikator Super Trend yang tidak tepat dapat menyebabkan kesempatan perdagangan yang hilang atau perdagangan yang tidak perlu;

  3. Desain multi-timeframe juga mungkin gagal dalam kondisi perdagangan yang sebenarnya.

Pengendalian:

  1. Meningkatkan pengaturan slippage dan mengoptimalkan parameter untuk mengurangi efek backtest;

  2. Mengatur parameter indikator Super Trend dan mengoptimalkan pengaturan parameter;

  3. Uji metode pencocokan beberapa kerangka waktu untuk memastikan stabilitas multi-kerangka waktu.

Arah Optimalisasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Uji indikator rata-rata bergerak rata-rata yang berbeda untuk menggantikan indikator VHMA;

  2. Cobalah indikator tren yang berbeda untuk menggantikan indikator Super Trend;

  3. Meningkatkan parameter indikator pelatihan model pembelajaran mesin.

Langkah-langkah optimalisasi ini dapat meningkatkan kemampuan strategi untuk beradaptasi dengan kondisi pasar yang kompleks.

Ringkasan

Strategi tren kuantitatif Super Z mewujudkan penilaian dan pelacakan tren harga melalui indikator tren khusus VHMA dikombinasikan dengan indikator Super Trend. Strategi ini memiliki stabilitas yang baik dan efek aktual yang sangat baik. Melalui pengujian dan optimalisasi terus-menerus, strategi ini memiliki potensi untuk menjadi strategi pelacakan tren kuantitatif yang efisien dan stabil.


/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//Original script
//https://www.tradingview.com/script/wYknDlLx-super-Z/

//@version=4
strategy("Super Z strategy - Thanks to Rafael Zioni", shorttitle="Super Z strategy",overlay=true )
src5 = input(close)
    
tf = input(1440)
len5 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   tf / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7

ma = ema(src5*volume, len5) / ema(volume, len5)


//script taken from https://www.tradingview.com/script/kChCRRZI-Hull-Moving-Average/

src1 = ma

p(src1, len5) =>
    n = 0.0
    s = 0.0
    for i = 0 to len5 - 1
        w = (len5 - i) * len5
        n := n + w
        s := s + src5[i] * w
    s / n

hm = 2.0 * p(src1, floor(len5 / 2)) - p(src1, len5)
vhma = p(hm, floor(sqrt(len5)))
lineColor = vhma > vhma[1] ? color.lime : color.red
plot(vhma, title="VHMA", color=lineColor ,linewidth=3)
hColor = true,vis = true
hu = hColor ? (vhma > vhma[2] ? #00ff00 : #ff0000) : #ff9800

vl = vhma[0]
ll = vhma[1]
m1 = plot(vl, color=hu, linewidth=1, transp=60)
m2 = plot(vis ? ll : na,  color=hu, linewidth=2, transp=80)

fill(m1, m2,  color=hu, transp=70)
//

b = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   60 / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7



//
res5 = input("D", type=input.resolution)

o = security(syminfo.tickerid, res5, open, barmerge.gaps_off, barmerge.lookahead_on)
c = security(syminfo.tickerid, res5, close, barmerge.gaps_off, barmerge.lookahead_on)
hz = security(syminfo.tickerid, res5, high, barmerge.gaps_off, barmerge.lookahead_on)
l = security(syminfo.tickerid, res5, low, barmerge.gaps_off, barmerge.lookahead_on)



col = c >= o ? color.lime : color.red

ppo = plot(b ? o >= c ? hz : l : o, color=col, title="Open", style=plot.style_stepline, transp=100)
ppc = plot(b ? o <= c ? hz : l : c, color=col, title="Close", style=plot.style_stepline, transp=100)

plot(b and hz > c ? hz : na, color=col, title="High", style=plot.style_circles, linewidth=2,transp=60)
plot(b and l < c ? l : na, color=col, title="Low", style=plot.style_circles,linewidth=2, transp=60)

fill(ppo, ppc, col)

//
// INPUTS //
st_mult   = input(1,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(50, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev =l - (st_mult * atr(st_period))
dn_lev = hz + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := c[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := c[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := c > down_trend[1] ? 1: c < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend

// Plotting
//plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend")
buy=crossover( c, st_line)
sell=crossunder(c, st_line)
signal=input(false)

/////////////// Plotting /////////////// 
plotshape(signal and buy, style=shape.triangleup, size=size.normal, location=location.belowbar, color=color.lime)
plotshape(signal and sell, style=shape.triangledown, size=size.normal, location=location.abovebar, color=color.red)


if (buy)
    strategy.entry("My Long Entry Id", strategy.long)

if (sell)
    strategy.entry("My Short Entry Id", strategy.short)

Lebih banyak