Triple Dragon System adalah strategi perdagangan teknis komposit yang menggabungkan indikator Extended Price Volume Trend (EPVT), indikator Donchian Channels dan indikator Parabolic SAR. Strategi ini memanfaatkan kekuatan komplementer dari tiga indikator untuk mengidentifikasi arah tren pasar dan sinyal beli dan jual potensial.
Strategi ini pertama-tama menggunakan EPVT dan Saluran Donchian untuk menentukan arah tren pasar. Ketika EPVT berada di atas garis dasar dan harga berada di atas Saluran Donchian atas, itu menunjukkan tren naik. Sebaliknya, ketika EPVT berada di bawah garis dasar dan harga berada di bawah Saluran Donchian bawah, itu menunjukkan tren menurun.
Setelah mengidentifikasi arah tren, strategi ini memperkenalkan indikator Parabolic SAR untuk mengidentifikasi titik masuk dan keluar tertentu. Ketika Parabolic SAR melintasi di bawah harga, itu menghasilkan sinyal beli. Ketika Parabolic SAR melintasi di atas harga, itu menghasilkan sinyal jual.
Untuk lebih memvalidasi sinyal, strategi ini juga mengkonfirmasi arah tren di beberapa kerangka waktu untuk menghindari masuk ke pasar selama periode volatilitas tinggi.
Keuntungan terbesar dari Triple Dragon System adalah penggunaan gabungan tiga jenis indikator yang sangat saling melengkapi untuk menentukan tren pasar secara lebih komprehensif dan akurat.
Dengan menggabungkan indikator secara organik, Sistem Tiga Naga dapat memanfaatkan sepenuhnya keuntungan dari setiap indikator, menghasilkan akurasi tinggi dalam menilai tren jangka panjang, menengah dan panjang, identifikasi titik masuk dan keluar yang lebih tepat, dan rasio risiko-manfaat yang lebih tinggi.
Sebagai strategi portofolio indikator, Triple Dragon System memiliki risiko yang dapat dikendalikan secara keseluruhan, tetapi masih ada beberapa risiko yang perlu dicatat:
Untuk mengatasi risiko di atas, kami merekomendasikan penyesuaian pengaturan parameter indikator dengan tepat dan menggunakan indikator lain untuk penilaian tambahan untuk mengurangi kemungkinan kegagalan indikator tunggal.
Ada ruang untuk optimasi lebih lanjut dari Sistem Tiga Naga:
Melalui optimasi parameter algoritmik, penilaian kombinasi multi-indikator, dan analisis kuantifikasi perilaku, ada potensi untuk meningkatkan lebih lanjut profitabilitas dan stabilitas Sistem Triple Dragon.
Triple Dragon System adalah strategi portofolio indikator teknis yang memanfaatkan kekuatan pelengkap EPVT, Donchian Channels dan Parabolic SAR untuk menentukan tren pasar dan mengidentifikasi peluang perdagangan. Strategi ini memiliki penilaian yang tepat, risiko yang dapat dikendalikan, beberapa lapisan validasi, dan merupakan sistem yang efektif yang cocok untuk investor jangka menengah dan panjang. Kami akan terus mengoptimalkan Triple Dragon System untuk rasio risiko-manfaat yang unggul.
/*backtest start: 2023-11-20 00:00:00 end: 2023-12-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="TRIPLE DRAGON SYSTEM", overlay=true,default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=1000,pyramiding=0,commission_value=0.01) /////////////// DRAG-ON ///// EMA'S /////////////// emar = ta.ema(close,5) plot(emar, color=color.blue, title="S-Fast EMA") //EMAlengthTRF = input.int(200, minval=1,title = "EMA Filter") //ematrf = ta.ema(close,EMAlengthTRF) //plot(ematrf, "EMA-TREND FILTER", color=color.red,linewidth = 4) /////////////// 1-DRAG-ON /////EXTENDED PRICE VOLUME TREND /////////////// lenght = input(200,"EPVT - Trend Lenght") var cumVol = 0. cumVol += nz(volume) if barstate.islast and cumVol == 0 runtime.error("No volume is provided by the data vendor.") src = close vt = ta.cum(ta.change(src)/src[1]*volume) upx = ta.highest(vt,lenght) downx = ta.lowest(vt,lenght) basex = (upx +downx)/2 VTX = vt - basex /////////////// 2-DRAG-ON ///// DON TREND /////////////// length = input.int(200, minval=1, title = "Donchian Lenght") lower = ta.lowest(length) upper = ta.highest(length) basis = math.avg(upper, lower) updiff = upper - close downdiff = lower - close dontrend = -(updiff + downdiff) xupx = ta.highest(dontrend,length) >0 ? ta.highest(dontrend,length) : 0 xdownx = ta.lowest(dontrend,length) < 0 ?ta.lowest(dontrend,length) :0 xxbasisxx = math.avg(xdownx, xupx) inversedragup = xupx[1] inversedragdown = xdownx[1] inversedragon = (inversedragup+inversedragdown)/2 /////////////// 3-DRAG-ON ///// SUPER SAR-X /////////////// start = input(0.02) increment = input(0.02) maximum = input(0.8) entry_bars = input(1, title='Entry on Nth trend bar') atr = ta.atr(14) atr := na(atr) ? ta.tr : atr psar = 0.0 // PSAR af = 0.0 // Acceleration Factor trend_dir = 0 // Current direction of PSAR ep = 0.0 // Extreme point trend_bars = 0 sar_long_to_short = trend_dir[1] == 1 and close <= psar[1] // PSAR switches from long to short sar_short_to_long = trend_dir[1] == -1 and close >= psar[1] // PSAR switches from short to long trend_change = barstate.isfirst[1] or sar_long_to_short or sar_short_to_long // Calculate trend direction trend_dir := barstate.isfirst[1] and close[1] > open[1] ? 1 : barstate.isfirst[1] and close[1] <= open[1] ? -1 : sar_long_to_short ? -1 : sar_short_to_long ? 1 : nz(trend_dir[1]) trend_bars := sar_long_to_short ? -1 : sar_short_to_long ? 1 : trend_dir == 1 ? nz(trend_bars[1]) + 1 : trend_dir == -1 ? nz(trend_bars[1]) - 1 : nz(trend_bars[1]) // Calculate Acceleration Factor af := trend_change ? start : trend_dir == 1 and high > ep[1] or trend_dir == -1 and low < ep[1] ? math.min(maximum, af[1] + increment) : af[1] // Calculate extreme point ep := trend_change and trend_dir == 1 ? high : trend_change and trend_dir == -1 ? low : trend_dir == 1 ? math.max(ep[1], high) : math.min(ep[1], low) // Calculate PSAR psar := barstate.isfirst[1] and close[1] > open[1] ? low[1] : barstate.isfirst[1] and close[1] <= open[1] ? high[1] : trend_change ? ep[1] : trend_dir == 1 ? psar[1] + af * atr : psar[1] - af * atr //////////////// MELODY /////////////////// VTY = ta.valuewhen(ta.cross(VTX,0),close,0) //plot(VTY, color=color.black, title="Extended-PVT") //DONTRENDX = ta.valuewhen(ta.cross(dontrend,0),close,0) //plot(DONTRENDX, color=color.red, title="DONCHIAN TREND") SSARX = ta.valuewhen(ta.cross(psar,close),close,0) //plot(SSARX, color=color.black, title="SSAR-X") MAXDRAG = math.max(SSARX,VTY) //plot(MAXDRAG, color=color.black, title="MAX DRAG") MINDRAG = math.min(SSARX,VTY) //plot(MINDRAG, color=color.black, title="MIN DRAG") BASEDRAG = math.avg(MAXDRAG,MINDRAG) //plot(BASEDRAG, color=color.red, title="BASE DRAG") /////BUY AND SELL LOGIC /////////// DRAGONBUY = (ta.crossover(close,MAXDRAG) or ta.crossover(close,MINDRAG) ) DRAGONBUYSTOP = (ta.crossunder(close,MAXDRAG) or ta.crossunder(close,MINDRAG)) DRAGONBUYPLOT = ta.valuewhen(DRAGONBUY==true,close,0) plot(DRAGONBUYPLOT, color=color.red, title="BUY LINE") DRAGONSELL = (ta.crossunder(close,MAXDRAG) or ta.crossunder(close,MINDRAG) ) DRAGONSELLSTOP = (ta.crossover(close,MAXDRAG) or ta.crossover(close,MINDRAG)) DRAGONSELLPLOT = ta.valuewhen(DRAGONSELL==true,close,0) plot(DRAGONSELLPLOT, color=color.red, title="SELL LINE") /////TAKE PROFIT LOGIC /////////// tp1 = input.int(5, minval=1,title = "TP-1") tp2 = input.int(10, minval=1,title = "TP-2") tp3 = input.int(15, minval=1,title = "TP-3") TPTAKA1B = DRAGONBUYPLOT*(1+tp1/100) //plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1) TPTAKA2B = DRAGONBUYPLOT*(1+tp2/100) //plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1) TPTAKA3B = DRAGONBUYPLOT*(1+tp3/100) //plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1) TPTAKA1S = DRAGONSELLPLOT*(1-tp1/100) //plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1) TPTAKA2S = DRAGONSELLPLOT*(1-tp2/100) //plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1) TPTAKA3S = DRAGONSELLPLOT*(1-tp3/100) //plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1) BUYTP = ta.crossunder(emar,TPTAKA1B) or ta.crossunder(emar,TPTAKA2B) or ta.crossunder(emar,TPTAKA3B) SELLTP = ta.crossover(emar,TPTAKA1B) or ta.crossover(emar,TPTAKA2B) or ta.crossover(emar,TPTAKA3B) /////STRATEGY /////////// // Enter condition longCondition = DRAGONBUY==true if longCondition strategy.entry('Long', strategy.long, comment = "ENTER-LONG") // Exit condition strategy.close('Long', when=DRAGONBUYSTOP, comment = "EXIT-LONG") // Enter condition ShortCondition = DRAGONSELL if ShortCondition strategy.entry('Short', strategy.short, comment = "ENTER-SHORT") // Exit condition strategy.close('Short', when=DRAGONSELLSTOP, comment = "EXIT-SHORT") ///// END OF STRATEGY ///////////