Strategi VB Berdasarkan Saldo Volume

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

img

Strategi ini dirancang berdasarkan indikator Volume Saldo untuk menentukan daya beli dan penjualan di pasar.

Logika Strategi

Indikator Volume Balances (VB) mencerminkan kekuatan pendorong perubahan volume pada harga.

  1. Menghitung tingkat volatilitas intraday dari harga tipikal sebagai momentum harga.

  2. Menghakimi daya beli dan penjualan di dekat dengan produk volume dan momentum harga.

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

Strategi ini membangun indikator VB dan menetapkan garis sinyal. Sinyal beli dihasilkan ketika indikator VB melintasi di atas garis sinyal. Sinyal jual dihasilkan ketika indikator VB melintasi di bawah garis sinyal.

Langkah-langkah utama dari kode adalah:

  1. Menghitung tingkat volatilitas intraday dari harga tipikal sebagai momentum harga.

  2. Atur koefisien kisaran cutoff untuk momentum.

  3. Hitung momentum vcp setelah pemotongan.

  4. Jumlah vcp untuk mendapatkan indikator kuantifikasi vfi.

  5. Tetapkan panjang sinyal garis signalLength dan mendapatkannya vfima.

  6. Bandingkan indikator VB vfi dengan garis sinyal vfima untuk menghasilkan sinyal perdagangan.

Keuntungan

Keuntungan dari strategi ini adalah:

  1. Gunakan hubungan volume-harga untuk menilai daya beli dan penjualan, tidak terpengaruh oleh harga itu sendiri.

  2. Jangkauan perhitungan momentum yang dikuantifikasi dapat dikontrol oleh parameter untuk menghindari dampak fluktuasi abnormal.

  3. Menggabungkan perbandingan antara indikator VB itu sendiri dan garis sinyal dapat menetapkan waktu masuk yang wajar.

  4. Metode perhitungan indikator sederhana dan jelas, mudah dioperasikan dalam perdagangan langsung.

  5. Parameter indikator yang dapat disesuaikan dan parameter jalur sinyal untuk mengoptimalkan kinerja strategi.

Risiko

Ada juga beberapa risiko dalam strategi ini:

  1. Indikator VB sensitif terhadap fluktuasi harga yang tidak normal.

  2. Probabilitas perbedaan harga dari sinyal indikator tinggi.

  3. Parameter indikator dan parameter jalur sinyal perlu dioptimalkan dengan benar untuk mencegah sinyal palsu.

  4. Lebih cocok untuk produk dengan karakteristik harga volume yang jelas. Tidak cocok untuk produk likuiditas rendah.

  5. Perhatikan perbedaan indikator, yang dapat menandakan pembalikan pasar.

Risiko dapat dikendalikan dengan menyesuaikan rentang parameter, menggunakan filter lain, memungkinkan stop loss longgar yang tepat, dll.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan parameter perhitungan untuk momentum yang dikuantifikasi untuk menyeimbangkan sensitivitas dan stabilitas.

  2. Mengoptimalkan parameter jalur sinyal untuk menyeimbangkan lag dan kebisingan.

  3. Tambahkan indikator lain seperti Volume Spread Analysis untuk verifikasi.

  4. Tambahkan indikator tren dan support/resistance untuk menghindari perdagangan yang tidak menguntungkan.

  5. Atur stop loss dinamis berdasarkan volatilitas pasar.

  6. Gunakan pembelajaran mesin untuk menemukan kombinasi parameter yang optimal.

  7. Backtest di berbagai produk dan kerangka waktu untuk mengevaluasi ketahanan.

  8. Bandingkan parameter indikator dampak pada kurva keuntungan untuk menemukan yang optimal.

Ringkasan

Strategi ini menilai daya beli/penjualan berdasarkan indikator Volume Balance. Ini memiliki keuntungan seperti desain indikator sederhana dan parameter yang dapat disesuaikan, dan juga risiko seperti sinyal palsu. Optimasi lebih lanjut dan verifikasi dari berbagai aspek dapat meningkatkan kinerja 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 banyak