
Strategi EPVT (Extended Price Volume Trend) adalah strategi gabungan indikator teknikal. Ia menggabungkan indikator percepatan momentum dengan indikator lain untuk mengenal pasti potensi titik perubahan trend dan masa perubahan momentum.
Indikator utama strategi ini ialah trend harga meluas ((EPVT)). Kaedah pengiraan adalah: jumlah dagangan terkumpul * kenaikan harga. Kemudian kira nilai maksimum dan minimum EPVT dalam tempoh tertentu, dan dapatkan zon asas.
Apabila kurva penunjuk EPVT melintasi ke atas pada paksi sifar, ia menunjukkan peningkatan tekanan pembelian, dan isyarat plura muncul. Sebaliknya, apabila EPVT melintasi ke bawah pada paksi sifar, isyarat kosong muncul.
Untuk meningkatkan kualiti isyarat, strategi ini juga membantu menggunakan purata bergerak sederhana untuk mengesahkan kebolehpercayaan perubahan trend.
Strategi ini menggabungkan tiga dimensi trend, momentum dan jumlah perdagangan untuk menilai keinginan dan kekuatan pasaran secara menyeluruh. Menggunakan indikator trend harga meluas, ia berfungsi dengan baik untuk mengenal pasti pergerakan berlebihan yang tiba-tiba berlaku dalam jangka pendek, dan dapat menangkap titik perubahan pasaran.
Tetapkan tiga kedudukan penangguhan dari lapangan, dan pilih perkadaran penangguhan yang berbeza mengikut keutamaan risiko anda.
Strategi ini lebih bergantung pada ciri-ciri bentuk kurva penunjuk, yang akan memberi isyarat salah apabila pergerakan tidak tipikal. Selain itu, tiga bar berbalik dan sebagainya boleh menyebabkan pembukaan kedudukan yang tidak perlu.
Parameter boleh diselaraskan dengan sewajarnya, atau menambah indikator lain untuk mengoptimumkan. Strategi menghentikan kerugian juga dapat mengurangkan kerugian tunggal.
Pengoptimuman parameter. Contohnya, menyesuaikan parameter kitaran EPVT untuk mencari kombinasi parameter terbaik.
Menambah syarat penapis trend. Sebagai contoh, berdasarkan isyarat EPVT, menentukan arah saluran harga atau garis rata.
Strategi pengoptimuman untuk menghentikan kerugian, seperti menetapkan nilai berhenti tetap atau ATR berhenti.
Strategi trend harga yang diperluaskan untuk mempercepatkan momentum, mengeksplorasi perubahan dalam keinginan untuk membeli dan menjual pasaran melalui petunjuk EPVT, dengan itu menangkap titik perubahan trend yang berpotensi. Menyediakan tiga garisan peratusan perhentian yang berbeza untuk memenuhi pilihan risiko yang berbeza bagi pelabur.
/*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 ///////////