
Strategi ini menggunakan metrik untuk merancang isyarat dagangan yang boleh digunakan untuk menilai kekuatan jual beli di pasaran.
VB mencerminkan perubahan kuantiti yang mendorong harga.
Kadar turun naik harian yang dikira untuk harga tipikal mewakili kekuatan perubahan harga.
Untuk menentukan kekuatan jual beli pada masa penutupan, kita perlu mengira jumlah dagangan dan pergerakan harga.
Nilai penunjuk berayun ke bawah pada paksi 0, dan pengukuran kekuatan udara adalah positif negatif dari nilai penunjuk.
Strategi ini membina penunjuk VB dan menetapkan garis isyarat. Apabila penunjuk VB melintasi garis isyarat, ia menghasilkan isyarat beli; apabila penunjuk VB melintasi garis isyarat, ia menghasilkan isyarat jual.
Langkah-langkah kod utama adalah seperti berikut:
Hitung kadar turun naik harian harga tipikal inter sebagai kekuatan perubahan harga ≠
Tetapkan coef dalam julat pemotongan kekuatan bergolak, dan kuasa bergolak di luar julat ini dikategorikan sebagai coef.
Hitung kekuatan kuantitatif selepas pemotongan vcp.
Perjumpaan vcp untuk mendapatkan penunjuk kuantitatif vfi。
Tetapkan panjang talian isyarat signalLength, untuk mendapatkan vfima。
Bandingkan penunjuk VB vfi dengan jalur isyarat vfima, menghasilkan isyarat perdagangan ≠
Strategi ini mempunyai kelebihan berikut:
Menggunakan hubungan kuantiti-harga untuk menilai kekuatan jual beli di pasaran, tidak dipengaruhi oleh harga itu sendiri.
Anda boleh menetapkan parameter yang mengawal kuantiti kuasa untuk mengelakkan kesan turun naik yang tidak normal.
Gabungan penunjuk VB dengan perbandingan dengan garis isyarat, anda boleh menetapkan masa masuk yang munasabah.
Kaedah pengiraan penunjuk adalah mudah dan jelas, mudah untuk dikendalikan secara langsung.
Anda boleh menyesuaikan parameter penunjuk dan parameter garis isyarat untuk mengoptimumkan kesan strategi.
Strategi ini mempunyai beberapa risiko:
Indeks VB sensitif terhadap turun naik harga yang tidak normal dan memerlukan parameter pemotongan yang sesuai.
Kemungkinan harga saham berlainan dengan isyarat penunjuk adalah lebih besar, dan anda harus mengelakkan mengikut secara buta.
Parameter penunjuk dan parameter saluran isyarat perlu dioptimumkan dengan sewajarnya untuk mengelakkan isyarat palsu.
Sesuai untuk jenis yang mempunyai ciri-ciri kuantiti yang jelas, tidak sesuai untuk jenis yang kurang cair.
Ia mungkin menunjukkan bahawa pasaran akan berbalik arah.
Risiko boleh dikawal dengan menyesuaikan julat parameter, bercampur dengan penapis lain, dan menghentikan kerugian dengan kelonggaran yang sesuai.
Strategi ini boleh dioptimumkan dengan:
Mengoptimumkan parameter pengiraan kekuatan kuantitatif, mengimbangi sensitiviti dan kestabilan.
Optimumkan parameter saluran isyarat, keseimbangan kelewatan dan bunyi bunyi.
Menambah metrik seperti Analisis Penyebaran Jilid untuk mengesahkan keberkesanan.
Meningkatkan trend dan menyokong penunjuk rintangan, mengelakkan perdagangan ke arah yang tidak baik.
Menetapkan mekanisme hentian kerugian dinamik, menyesuaikan titik hentian kerugian mengikut tahap turun naik pasaran.
Menggunakan kaedah pembelajaran mesin untuk melatih kombinasi parameter terbaik.
Ujian semula dilakukan pada pelbagai jenis dan kitaran yang berbeza untuk menilai keberkesanan strategi.
Bandingkan kesan parameter penunjuk yang berbeza terhadap kurva pendapatan, cari parameter yang optimum.
Strategi ini berdasarkan metrik pengukuran panjang dan panjang harga, untuk menilai kekuatan jual beli. Ia mempunyai kelebihan seperti reka bentuk indikator yang mudah, parameter yang boleh disesuaikan, tetapi terdapat risiko isyarat palsu tertentu. Dengan mengoptimumkan parameter, mengelakkan pasaran yang tidak menguntungkan dan lain-lain, anda boleh meningkatkan kestabilan strategi.
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("VB Strategy", overlay=true)
length = input(130, title="거래량 길이")
coef = input(0.2, title="계수")
vcoef = input(2.5, title="최대 계수")
signalLength=input(5)
smoothVFI=input(false, type=bool, title="부드럽게")
//볼밴
length2 = input(20, minval=1, title="볼밴 길이")
ma(x,y) => smoothVFI ? sma(x,y) : x
typical=hlc3
inter = log( typical ) - log( typical[1] )
vinter = stdev(inter, 30 )
cutoff = coef * vinter * close
vave = sma( volume, length )[1]
vmax = vave * vcoef
vc = iff(volume < vmax, volume, vmax)
mf = typical - typical[1]
vcp = iff( mf > cutoff, vc, iff ( mf < -cutoff, -vc, 0 ) )
vfi = ma(sum( vcp , length )/vave, 3)
vfima=ema( vfi, signalLength )
d=vfi-vfima
upper = vfima + stdev(vfi, length2)
lower = vfima - stdev(vfi, length2)
buysignal = cross(vfi, lower) and crossunder(vfi, lower) == 1 ? vfima : na
sellsignal = cross(vfi, upper) and crossover(vfi, upper) == 1 ? vfima : na
//times = timestamp("GMT+6", 2017, 12, 6, 00, 00)
//if (buysignal and times <= time)
if (buysignal)
if(strategy.position_size < 0)
strategy.close("SHORT")
if(strategy.position_size > 0)
strategy.order("LONG", true, 1, when = (low+high)/2)
if(strategy.position_size == 0)
strategy.entry("LONG", strategy.long, when = (low+high)/2)
//if (sellsignal and times <= time)
if (sellsignal)
if(strategy.position_size > 0)
strategy.close("LONG")
if(strategy.position_size < 0)
strategy.order("SHORT", false, 1, when = (low+high)/2)
if(strategy.position_size == 0)
strategy.entry("SHORT", strategy.short, when = (low+high)/2)