Strategi VB Berdasarkan Saldo Volume

Penulis:ChaoZhang, Tarikh: 2023-10-30 17:03:02
Tag:

img

Strategi ini direka berdasarkan penunjuk Saldo Volume untuk menentukan kuasa beli dan jual di pasaran.

Logika Strategi

Indikator Saldo Volume (VB) mencerminkan kuasa pemacu perubahan jumlah pada harga.

  1. Mengira kadar turun naik intraday harga biasa sebagai momentum harga.

  2. Menghakimi kuasa beli dan jual di dekat dengan hasil daripada jumlah dan momentum harga.

  3. Indikator ini berfluktuasi di atas dan di bawah paksi 0. Kriteria untuk mengukur daya beli dan jual adalah positif dan negatif nilai indikator.

Strategi ini membina penunjuk VB dan menetapkan garis isyarat. Isyarat beli dihasilkan apabila penunjuk VB melintasi di atas garis isyarat. Isyarat jual dihasilkan apabila penunjuk VB melintasi di bawah garis isyarat.

Langkah-langkah utama kod adalah:

  1. Mengira kadar turun naik intraday harga tipikal sebagai momentum harga.

  2. Tetapkan pekali julat pemotongan untuk momentum. Lebihan momentum di atas julat diambil sebagai pekali.

  3. Mengira vcp momentum kuantiti selepas pemotongan.

  4. Jumlah vcp untuk mendapatkan penunjuk berjumlah vfi.

  5. Tetapkan panjang garis isyarat signalLength dan mendapatkannya vfima.

  6. Bandingkan penunjuk VB vfi dengan garis isyarat vfima untuk menjana isyarat perdagangan.

Kelebihan

Kelebihan strategi ini ialah:

  1. Gunakan hubungan jumlah-harga untuk menilai kuasa beli dan jual, tidak dipengaruhi oleh harga itu sendiri.

  2. Julat pengiraan momentum yang dikuantifkan boleh dikawal oleh parameter untuk mengelakkan kesan turun naik yang tidak normal.

  3. Menggabungkan perbandingan antara penunjuk VB itu sendiri dan garis isyarat boleh menetapkan masa kemasukan yang munasabah.

  4. Kaedah pengiraan penunjuk adalah mudah dan jelas, mudah digunakan dalam perdagangan langsung.

  5. Parameter penunjuk yang boleh disesuaikan dan parameter garis isyarat untuk mengoptimumkan prestasi strategi.

Risiko

Terdapat juga beberapa risiko dalam strategi ini:

  1. Indikator VB sensitif terhadap turun naik harga yang tidak normal.

  2. Kemungkinan perbezaan harga dari isyarat penunjuk adalah tinggi.

  3. Parameter penunjuk dan parameter garis isyarat memerlukan pengoptimuman yang betul untuk mengelakkan isyarat palsu.

  4. Lebih sesuai untuk produk dengan ciri harga jumlah yang jelas. Tidak sesuai untuk produk kecairan rendah.

  5. Perhatikan perbezaan penunjuk, yang mungkin menandakan pembalikan pasaran.

Risiko boleh dikawal dengan menyesuaikan julat parameter, menggunakan penapis lain, membenarkan kehilangan berhenti longgar yang betul, dll.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter pengiraan untuk momentum berjumlah untuk mengimbangi kepekaan dan kestabilan.

  2. Mengoptimumkan parameter saluran isyarat untuk mengimbangi kelewatan dan bunyi bising.

  3. Tambah penunjuk lain seperti Analisis Penyebaran Volume untuk pengesahan.

  4. Tambah trend dan penunjuk sokongan / rintangan untuk mengelakkan perdagangan yang tidak menguntungkan.

  5. Tetapkan stop loss dinamik berdasarkan turun naik pasaran.

  6. Gunakan pembelajaran mesin untuk mencari kombinasi parameter yang optimum.

  7. Ujian balik di pelbagai produk dan jangka masa untuk menilai ketahanan.

  8. Bandingkan parameter penunjuk kesan pada kurva keuntungan untuk mencari yang optimum.

Ringkasan

Strategi ini menilai daya beli / jual berdasarkan penunjuk Saldo Volume. Ia mempunyai kelebihan seperti reka bentuk penunjuk yang mudah dan parameter yang boleh disesuaikan, dan juga risiko seperti isyarat palsu. Pengoptimuman dan pengesahan lanjut dari pelbagai aspek dapat meningkatkan prestasi langsung.


/*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)


Lebih lanjut