Strategi ini disebut
Strategi ini menghitung harga transaksi rata-rata saat ini melalui indikator VWAP. VWAP mewakili harga rata-rata dan merupakan rasio omset terhadap volume perdagangan. Indikator VWAP mencerminkan tingkat penyimpangan antara harga saat ini dan harga perdagangan rata-rata historis.
Strategi ini menggunakan garis rata-rata bergerak dari indikator VWAP dan garis saluran offsetnya. Proporsi garis saluran offset ditetapkan melalui parameter
Pengaturan parameter dari strategi ini sepenuhnya mencerminkan gagasan perdagangan saluran. Pengguna dapat menyesuaikan lebar saluran dan ukuran posisi sebagai persentase dari total aset sesuai dengan preferensi mereka sendiri, sehingga mewujudkan berbagai tingkat frekuensi perdagangan.
Strategi perdagangan ini memiliki keuntungan berikut:
Karena indikator VWAP dapat mencerminkan tingkat harga rata-rata, perdagangan berdasarkan garis kanalnya dapat secara efektif mengunci titik tengah nilai dan menghindari bias oleh fluktuasi jangka pendek. Pada saat yang sama, menggabungkan saluran dengan parameter yang berbeda dan membangun posisi dalam batch dapat secara efektif mengendalikan risiko dan mencegah konsentrasi risiko sepihak yang mengakibatkan likuidasi paksa.
Strategi ini juga memiliki beberapa risiko yang perlu dicatat:
Indikator VWAP tidak sensitif terhadap volatilitas perdagangan frekuensi tinggi. Dalam kasus kesenjangan harga ekstrim atau anomali jangka pendek, indikator ini masih akan memicu sinyal dan kerugian perdagangan yang tidak perlu. Selain itu, jika parameter saluran diatur terlalu longgar, indikator ini akan dengan mudah membentuk sinyal penetrasi harga yang tidak valid. Akhirnya, jika rentang posisi yang ditutup dalam operasi regresi diatur terlalu luas, indikator ini dapat melewatkan waktu terbaik untuk mengambil keuntungan dan menyebabkan kerugian terperangkap.
Tindakan penanggulangan adalah untuk menilai pengaturan parameter secara wajar dan menyesuaikan parameter saluran dengan tepat; sambil menggabungkan indikator lain untuk menilai anomali harga dan menghindari mengikuti sinyal secara membabi buta; akhirnya mengevaluasi optimasi parameter saluran dari tingkat yang berbeda dan rentang regresi untuk mencapai efek mengambil keuntungan yang lebih baik.
Strategi ini dapat dioptimalkan dalam arah berikut:
Selain itu, aturan penilaian volume perdagangan dapat ditambahkan untuk menghindari kesenjangan harga yang tidak valid yang menyebabkan kerugian perdagangan. Akhirnya, aturan stop loss juga dapat ditetapkan sehingga ketika kerugian posisi mencapai persentase tertentu, stop loss untuk posisi keluar, secara efektif mengendalikan risiko.
Strategi ini menggabungkan indikator VWAP dengan saluran harga untuk mencapai strategi perdagangan yang relatif stabil. Pengaturan parameter strategi fleksibel bagi pengguna untuk menyesuaikan sesuai dengan preferensi mereka sendiri. Strategi ini dapat secara efektif menentukan arah titik tengah nilai. Melalui kombinasi parameter dan pembentukan batch posisi, profitabilitas yang stabil dapat dicapai. Meskipun masih ada ruang untuk perbaikan dalam strategi, secara keseluruhan ini adalah strategi perdagangan kuantitatif dengan kepraktisan yang tinggi.
/*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")