Strategi trend kuantitatif Super Z adalah strategi penjejakan trend berdasarkan penunjuk kuantitatif. Strategi ini menggunakan penunjuk tersuai digabungkan dengan penunjuk Super Trend untuk menentukan dan mengesan trend.
Indikator inti strategi ini adalah penunjuk kuantitatif tersuai VHMA. Indikator VHMA dikira berdasarkan garis Purata Bergerak Hull. Dengan menggunakan fungsi akar kuadrat untuk meluruskan MA Hull, ia membentuk lengkung dengan kelancaran yang baik. Lengkung VHMA dapat menilai arah trend harga. Apabila VHMA naik, ia mewakili bahawa harga berada dalam trend menaik. Apabila jatuh, ia mewakili trend penurunan harga.
Strategi ini juga menggabungkan penunjuk Super Trend. Penunjuk Super Trend boleh menemui trend harga kitaran yang lebih lama untuk membantu penunjuk VHMA dalam menentukan arah trend. Apabila harga memecahkan garis Super Trend, ia mewakili pembalikan trend.
Oleh itu, strategi ini menggunakan penunjuk VHMA untuk menilai hala tuju trend jangka pendek, dibantu oleh penunjuk Super Trend untuk menentukan titik perubahan trend jangka panjang, merealisasikan penjejakan trend keseluruhan. Logik perdagangan khusus adalah untuk mengeluarkan isyarat perdagangan apabila menembusi garis Super Trend.
Strategi ini mempunyai kelebihan berikut:
Indikator VHMA mempunyai kelancaran yang kuat dan dapat mengurangkan isyarat palsu. Ia boleh menilai arah trend dengan tepat dan boleh dipercayai;
Digabungkan dengan penunjuk Super Trend, ia dapat dengan cepat mengesan pembalikan trend jangka panjang dan memahami masa pembelian dan penjualan;
Menggunakan garis K padat dan garis K berongga warna yang berbeza untuk menggambarkan hubungan saiz antara harga penutupan dan harga pembukaan untuk membentuk penunjuk visual untuk membantu menilai trend;
Mengambil reka bentuk pelbagai jangka masa yang boleh menentukan arah trend pada jangka masa yang lebih tinggi dan mengeluarkan isyarat perdagangan pada jangka masa yang lebih rendah untuk mencapai penapisan yang cekap;
Parameter strategi dioptimumkan untuk kestabilan dan sesuai untuk pelbagai persekitaran pasaran.
Strategi ini juga mempunyai risiko berikut:
Penunjuk kuantitatif mempunyai kesan backtesting, dan kesan sebenar mungkin lebih lemah daripada backtesting;
Tetapan parameter penunjuk Super Trend yang tidak betul boleh menyebabkan peluang perdagangan yang hilang atau perdagangan yang tidak perlu;
Reka bentuk pelbagai jangka masa juga mungkin gagal di bawah keadaan perdagangan sebenar.
Tindakan balas:
Meningkatkan tetapan slippage dan mengoptimumkan parameter untuk mengurangkan kesan backtest;
Mengatur parameter penunjuk Super Trend dan mengoptimumkan tetapan parameter;
Uji kaedah pencocokan pelbagai jangka masa untuk memastikan kestabilan pelbagai jangka masa.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Uji pelbagai penunjuk purata bergerak yang halus untuk menggantikan penunjuk VHMA;
Cuba penunjuk trend yang berbeza untuk menggantikan penunjuk Super Trend;
Meningkatkan parameter penunjuk latihan model pembelajaran mesin.
Langkah-langkah pengoptimuman ini boleh meningkatkan kemampuan strategi untuk menyesuaikan diri dengan keadaan pasaran yang kompleks.
Strategi trend kuantitatif Super Z merealisasikan penghakiman dan penjejakan trend harga melalui penunjuk trend khusus VHMA yang digabungkan dengan penunjuk Super Trend. Strategi ini mempunyai kestabilan yang baik dan kesan sebenar yang sangat baik. Melalui ujian dan pengoptimuman yang berterusan, strategi ini berpotensi menjadi strategi penjejakan trend kuantitatif yang cekap 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)