Strategi Dagangan VWAP Berdasarkan Saluran Harga


Tarikh penciptaan: 2024-02-19 14:25:18 Akhirnya diubah suai: 2024-02-19 14:25:18
Salin: 0 Bilangan klik: 410
1
fokus pada
1166
Pengikut

Strategi Dagangan VWAP Berdasarkan Saluran Harga

Gambaran keseluruhan

Strategi ini dinamakan “Price Channel VWAP Trading Strategy” dan merupakan strategi berdasarkan saluran harga untuk mencapai perdagangan VWAP. Gagasan utama strategi ini adalah: dalam saluran harga, menggunakan garis rata-rata indikator VWAP dan garis saluran yang bergerak ke atas dan ke bawah untuk membuat keputusan mengenai titik jual beli, membuka kedudukan mengikut peratusan aset keseluruhan untuk kedudukan tetap apabila melanggar garis saluran, dan menutup posisi apabila kembali ke garis rata-rata VWAP.

Prinsip Strategi

Strategi ini menggunakan VWAP untuk mengira purata harga transaksi semasa. VWAP mewakili purata harga, iaitu perbandingan antara jumlah transaksi dan jumlah transaksi.

Strategi menggunakan garis rata-rata indikator VWAP dan garis laluan perpindahan. Perkadaran garis laluan perpindahan ditetapkan melalui parameter longlevel1 danshortlevel1. Apabila harga menembusi atas garis laluan perpindahan, buka lebih banyak akaun mengikut peratusan kedudukan pada parameter lotsizelong; Apabila harga menembusi bawah garis laluan perpindahan, buka kosong mengikut peratusan kedudukan pada parameter lotsizeshort.

Tetapan parameter strategi ini mencerminkan pemikiran perdagangan saluran. Pengguna boleh menyesuaikan lebar saluran dan saiz peratusan kedudukan mengikut keutamaan mereka sendiri, untuk mencapai tahap frekuensi perdagangan yang berbeza.

Analisis kelebihan

Strategi perdagangan ini mempunyai beberapa kelebihan:

  1. Menggunakan Indeks VWAP untuk menilai nilai pusat, menangkap arah utama pasaran
  2. Perdagangan dalam koridor, mengelakkan gangguan bunyi, menjadikan operasi lebih jelas
  3. Operasi gabungan saluran berlainan peringkat, penyebaran secara beransur-ansur, mengurangkan risiko
  4. Operasi pengembalian berhenti tepat pada masanya, mengelakkan kerugian yang disebabkan oleh perubahan cepat

Oleh kerana petunjuk VWAP dapat mencerminkan tahap purata harga dengan baik, perdagangan berdasarkan salurannya dapat mengunci pusat nilai dengan berkesan, dan mengelakkan bias oleh band turun naik jangka pendek. Pada masa yang sama, menggunakan saluran parameter yang berbeza untuk menggabungkan, membina gudang secara berturut-turut, dapat mengawal risiko dengan berkesan, dan mencegah risiko unilateral untuk memusatkan kedudukan. Akhirnya, dengan berhenti tepat pada masanya untuk kembali ke kedudukan kosong berhampiran garis rata-rata VWAP, kerugian yang disebabkan oleh pembalikan harga dapat dikurangkan.

Analisis risiko

Strategi ini juga mempunyai risiko yang perlu diperhatikan:

  1. Indeks VWAP tidak sensitif terhadap perdagangan frekuensi tinggi dan tidak dapat mencerminkan harga yang melampau
  2. Tetapan parameter lebar saluran yang tidak betul boleh menyebabkan perdagangan yang terlalu radikal
  3. Kembali ke Operasi Julat Tetap Jika Terlalu Luas Mungkin Membawa Kerosakan

Indeks VWAP tidak sensitif terhadap pergerakan perdagangan frekuensi tinggi, dan jika terdapat kenaikan harga yang melampau atau kecacatan jangka pendek, ia masih akan menyebabkan isyarat perdagangan yang tidak perlu dan kerugian. Selain itu, jika parameter saluran ditetapkan terlalu longgar, isyarat yang tidak berkesan akan terbentuk.

Penyelesaian adalah menetapkan parameter penilaian yang munasabah, menyesuaikan parameter saluran dengan sewajarnya; dan pada masa yang sama, dalam kombinasi dengan indikator lain, menilai ketidaksamaan harga, mengelakkan tindak balas buta; dan akhirnya menilai pengoptimuman parameter di pelbagai peringkat saluran dan julat pengembalian, untuk mencapai kesan penghentian yang lebih baik.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa arah:

  1. Menambah lapisan saluran, mengoptimumkan set parameter
  2. Kesan penembusan digabungkan dengan jumlah transaksi
  3. Tambah strategi henti kerugian, set peratusan henti kerugian

Anda boleh menambah lebih banyak saluran dan mengoptimumkan parameter gabungan untuk mencapai kesan perdagangan yang lebih stabil. Selain itu, anda boleh menambahkan peraturan penghakiman jumlah perdagangan untuk mengelakkan kenaikan harga yang tidak berkesan yang menyebabkan kerugian perdagangan. Akhirnya, anda juga boleh menetapkan peraturan hentikan kerugian, keluar dari tempat hentikan kerugian apabila kerugian memegang kedudukan mencapai peratusan tertentu, dan mengawal risiko dengan berkesan.

ringkaskan

Strategi ini menggabungkan indikator VWAP dengan saluran harga, untuk mencapai strategi perdagangan yang agak stabil. Tetapan parameter strategi fleksibel, pengguna boleh menyesuaikan mengikut keutamaan mereka sendiri. Strategi ini dapat menentukan arah pusat nilai dengan berkesan, mencapai keuntungan yang stabil melalui kombinasi parameter dan pembinaan gudang secara berturut-turut. Walaupun terdapat ruang untuk penambahbaikan, secara keseluruhan merupakan strategi perdagangan kuantitatif yang sangat praktikal.

Kod sumber strategi
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "VWAP Bands Backtest", shorttitle = "VWAP Bands Backtest", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)

//Settings
lotsizelong = input(100, defval = 100, minval = 0, maxval = 10000, title = "Lot long, %")
lotsizeshort = input(100, defval = 100, minval = 0, maxval = 10000, title = "Lot short, %")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
shortlevel1 = input(1.0, title = "Short line 1")
longlevel1 = input(-1.0, title = "Long line 1")
needoffset = input(true, title = "Offset")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Variables
size = strategy.position_size
mult = 1 / syminfo.mintick
truetime = true

//VWAP
ma = vwap(hlc3)

//Levels
longline1 = long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
shortline1 = short1? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close


//Lines
colorlong1 = long1 ? color.lime : na
colorshort1 = short1 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")


//Trading
lotlong = 0.0
lotshort = 0.0
lotlong := size == 0 ? (strategy.equity / close) * (lotsizelong / 100) : lotlong[1]
lotshort := size == 0 ? (strategy.equity / close) * (lotsizeshort / 100) : lotshort[1]


if ma > 0
    if lotlong > 0
        lotslong = 0.0
        lotslong := strategy.position_size > 0 ? round(strategy.position_size / lotlong) : 0.0
        strategy.entry("L1", strategy.long, lotlong, limit = longline1, when = (lotslong == 0 and long1 and truetime))
    if lotshort > 0
        lotsshort = 0.0
        lotsshort := strategy.position_size < 0 ? round(strategy.position_size / lotshort) : 0.0
        strategy.entry("S1", strategy.short, lotshort, limit = shortline1, when = (lotsshort == 0 and short1 and truetime))
if strategy.position_size > 0
    strategy.exit("TPL", "L1", limit = ma)
if strategy.position_size < 0
    strategy.exit("TPS", "S1", limit = ma)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("L1")
    strategy.cancel("S1")
    strategy.cancel("TPL")
    strategy.cancel("TPS")