Strategi Trend Volume Harga Terpanjang (EPVT) adalah strategi gabungan penunjuk teknikal. Ia menggabungkan penunjuk percepatan momentum dengan penunjuk tambahan lain untuk mengenal pasti titik pembalikan trend dan pergeseran momentum yang berpotensi.
Indikator teras strategi ini adalah Trend Volume Harga Terpanjang (EPVT). Kaedah penghitungannya adalah: jumlah dagangan kumulatif * perubahan harga peratusan. Kemudian mengira nilai maksimum dan minimum EPVT dalam tempoh tertentu untuk mendapatkan julat penanda aras. kurva penanda aras adalah kurva perbezaan antara EPVT dan julat penanda aras ini.
Apabila kurva penunjuk EPVT melintasi di atas paksi sifar, ia menunjukkan bahawa tekanan membeli meningkat dan isyarat panjang muncul. Sebaliknya, apabila EPVT melintasi di bawah paksi sifar, isyarat pendek muncul.
Untuk meningkatkan kualiti isyarat, strategi ini juga menggunakan purata bergerak mudah untuk mengesahkan kebolehpercayaan perubahan trend.
Strategi ini menggabungkan penunjuk dari tiga dimensi: trend, momentum dan jumlah dagangan, yang dapat menilai sentimen dan intensiti pasaran dengan lebih komprehensif.
Menetapkan tiga tahap mengambil keuntungan untuk keluar boleh memilih nisbah keuntungan yang berbeza mengikut pilihan risiko anda sendiri.
Strategi ini agak bergantung kepada morfologi lengkung penunjuk, dan akan mengeluarkan isyarat palsu apabila trend tidak biasa.
Parameter boleh diselaraskan dengan sewajarnya atau penapis lain boleh ditambah untuk mengoptimumkan.
Pengoptimuman parameter, seperti menyesuaikan parameter kitaran EPVT untuk mencari kombinasi parameter yang optimum.
Tambahkan keadaan penapisan trend, seperti menilai arah saluran harga atau purata bergerak berdasarkan isyarat EPVT.
Mengoptimumkan strategi stop loss. seperti menetapkan stop nilai tetap atau ATR berhenti.
Strategi trend volume harga diperluaskan percepatan momentum menangkap perubahan sentimen pasaran melalui penunjuk EPVT, mengambil kesempatan daripada titik perubahan trend yang berpotensi. Menetapkan tiga tahap mengambil keuntungan nisbah yang berbeza membolehkan memenuhi selera risiko pelabur yang berbeza. Strategi ini bernilai ujian dan pengoptimuman lanjut untuk menjadi alat yang berkesan untuk mengenal pasti perubahan trend jangka pendek di pasaran.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Extended Price Volume Trend", overlay=true )//@version=5 var cumVol = 0. cumVol += nz(volume) if barstate.islast and cumVol == 0 runtime.error("No volume is provided by the data vendor.") src = close lenght = input(200,"Trend Lenght") 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 VTY = ta.valuewhen(ta.cross(VTX,0),close,0) plot(VTY, color=color.black, title="Extended-PVT") /////////////////////// STRATEGY //////////////// /////////////////////// TAKE PROFIT SECTION //////////////// longConditionx = ta.crossover(close,VTY) ShortConditionx = ta.crossunder(close,VTY) tp1 = input.int(10, minval=1,title = "TP-1") tp2 = input.int(20, minval=1,title = "TP-2") tp3 = input.int(30, minval=1,title = "TP-3") ematp = ta.ema(close,2) TPTAKA1S = VTY*(1-tp1/100) plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1) TPTAKA2S = VTY*(1-tp2/100) plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1) TPTAKA3S = VTY*(1-tp3/100) plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1) TPTAKA1B = VTY*(1+tp1/100) plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1) TPTAKA2B = VTY*(1+tp2/100) plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1) TPTAKA3B = VTY*(1+tp3/100) plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1) BUYTP = ta.crossunder(close,VTY) or ta.crossunder(ematp,TPTAKA1B) or ta.crossunder(ematp,TPTAKA2B) or ta.crossunder(ematp,TPTAKA3B) SELLTP = ta.crossover(close,VTY) or ta.crossover(ematp,TPTAKA1S) or ta.crossover(ematp,TPTAKA2S) or ta.crossover(ematp,TPTAKA3S) /////////////////////// STRATEGY //////////////// // Check for Long Entry longCondition = longConditionx==true if longCondition strategy.entry('Long', strategy.long, comment = "ENTER-LONG") buyclose = ShortConditionx==true or BUYTP==true // Exit condition strategy.close('Long', when=buyclose or BUYTP==true, comment = "EXIT-LONG") // Check for Short Entry ShortCondition = ShortConditionx==true if ShortCondition strategy.entry('Short', strategy.short, comment = "ENTER-SHORT") sellclose = longConditionx==true or SELLTP ==true // Exit condition strategy.close('Short', when=sellclose or SELLTP==true, comment = "EXIT-SHORT") ///// END OF STRATEGY ///////////