TWAP lawan VWAP lawan POV: memilih penanda aras eksekusi (dan mengetahui bila setiap satu menipu anda)
Setiap penjadual eksekusi adalah pertaruhan ke atas ramalan volum. TWAP mempertaruhkan bahawa kecairan adalah rata mengikut masa. VWAP mempertaruhkan bahawa lengkung volum hari ini akan menyerupai lengkung semalam. POV mempertaruhkan bahawa volum yang sedang tercetak pada tape sekarang ini adalah alasan yang baik untuk berdagang sekarang — termasuk bahagian tape yang merupakan diri anda sendiri. Tiada satu pun daripada pertaruhan ini dilabel sebagai pertaruhan dalam dokumentasi vendor, itulah sebabnya kebanyakan perbandingan ketiga-tiganya dibaca seperti jadual ciri: TWAP itu "ringkas," VWAP itu "bijak," POV itu "adaptif." Kerangka itu tidak memberitahu anda apa-apa tentang yang mana satu merugikan anda, bila, atau berapa banyak.
Ini adalah bahagian 2 daripada rangkaian yang kami mulakan dalam Jenis Pesanan dalam Algotrading, di mana kami membina pelaksana TWAP dan VWAP mainan dalam kira-kira 40 baris Python setiap satu. Pelaksana tersebut memadai sebagai infrastruktur asas. Artikel ini adalah tentang segala yang disembunyikan oleh infrastruktur tersebut: andaian tersirat, politik penanda aras, dan eksperimen head-to-head yang boleh dihasilkan semula ke atas data buku pesanan yang dimainkan semula, yang menunjukkan bahawa ketiga-tiga algoritma bukanlah "variasi berbeza" — mereka adalah profil risiko berbeza dengan mod kegagalan yang berbeza.
Tiga penjadual, tiga pertaruhan tersembunyi
Tetapkan notasi. Pesanan induk bersaiz mesti dilaksanakan sepanjang ufuk , dibahagikan kepada selang. Biar menjadi kuantiti anak dalam selang , volum pasaran dalam selang , dan harga purata dalam selang . VWAP pasaran sepanjang ufuk adalah
TWAP berdagang : kuantiti sama dalam masa sama. Andaian tersirat ialah kecairan — kedalaman, spread, volum — adalah seragam mengikut masa, jadi hirisan sama menanggung impak sama. Ini palsu di setiap pasaran yang pernah wujud, tetapi ia gagal secara anggun: jadual adalah deterministik, penyelesaian dijamin melalui pembinaannya, dan kes terburuk ialah anda berdagang klip tetap ke dalam jam yang nipis dan membayar spread yang lebih lebar untuknya. Andaian kedua, yang kurang dibincangkan, ialah tiada siapa yang memerhati. TWAP yang melepaskan pesanan anak setiap 60 saat pada :00 adalah metronom, dan metronom akan di-front-run. TWAP yang serius akan merawakkan masa dan saiz anak; jadual sepatutnya menjadi proses seakan-Poisson yang jangkaannya rata, bukan jam.
VWAP berdagang , di mana ialah pecahan ramalan volum harian dalam selang , . Pertaruhan kini eksplisit: anda memegang lengkung yang dianggarkan daripada sejarah, dan anda mengandaikan hari ini mengikutinya. Andaiannya bukan volum itu rata tetapi ia boleh diramal dan eksogen — lengkung itu tidak peduli sama ada anda berdagang atau tidak. Apabila ramalan itu baik, VWAP menumpukan dagangan anda di tempat pasaran boleh menyerapnya dan slippage anda berbanding VWAP pasaran adalah kecil hampir secara tautologi. Apabila ramalan itu buruk — peristiwa berita tidak dijadualkan menggerakkan 40% volum hari itu ke dalam jam yang diperuntukkan lengkung anda hanya 6% — VWAP terus berdagang jadual basi dengan tenang dan anda menanggung bezanya. VWAP menukar risiko eksekusi kepada risiko ramalan-volum. Itulah keseluruhan pertukaran, dan itulah sebabnya kejuruteraan menarik dalam enjin VWAP adalah peramal, bukan pemotong hirisan.
POV (percentage of volume, juga "participation") meninggalkan ramalan: berdagang , pecahan tetap daripada volum yang diperhatikan dalam setiap selang. Ini kelihatan seperti ia mengatasi VWAP — mengapa meramal volum apabila anda boleh hanya mengikutinya? Masalahnya ialah isyarat itu kini endogen. Isian anda sendiri tercetak pada tape. Jika baki pasaran berdagang dalam satu selang dan anda mensasarkan pecahan daripada jumlah volum tape, kuantiti anda menyelesaikan , iaitu
Pada pembetulan itu ringan (11.1% daripada volum orang lain). Pada anda sedang berdagang 33% daripada aliran semua orang lain; pada anda memadankan keseluruhan baki pasaran satu-lawan-satu dan titik tetap itu mencapah. POV juga menggugurkan satu-satunya jaminan yang ditawarkan oleh TWAP dan VWAP: tiada masa penyelesaian. Jika volum mati, jadual anda turut mati. Kami akan kembali kepada patologi POV di bawah, kerana ia layak mendapat bahagian tersendiri.
Satu lagi kerangka yang akan penting kemudian: tiada satu pun daripada ketiga-tiga ini "optimum" dalam sebarang erti formal. Penjadual yang benar-benar meminimumkan objektif kos-risiko ialah keluarga Almgren–Chriss (Almgren and Chriss, 2000, "Optimal Execution of Portfolio Transactions," Journal of Risk 3, 5–39), yang kami olah dengan betul dalam Almgren–Chriss dan teori jadual eksekusi optimum. TWAP adalah kes khas Almgren–Chriss dengan sifar keengganan risiko di bawah impak linear; VWAP adalah strategi ralat-penjejakan-minimum berbanding penanda aras berpemberat-volum (Konishi, 2002, "Optimal slice of a VWAP trade," Journal of Financial Markets 5(2)); POV adalah heuristik yang tidak sepadan dengan sebarang fungsi objektif langsung, dan itulah sebabnya mod kegagalannya begitu ganjil.
Menganggar lengkung volum apabila pasaran tidak pernah tutup
Kesusasteraan ekuiti mendapat kemudahan. Volum intraharian dalam ekuiti berbentuk-U — berat di pembukaan, tenang pada waktu makan tengah hari, berat menjelang penutupan — didokumenkan sejak Jain and Joh (1988, "The Dependence between Hourly Prices and Trading Volume," JFQA 23(3)) dan diberikan asas teori oleh Admati and Pfleiderer (1988, "A Theory of Intraday Patterns: Volume and Price Variability," Review of Financial Studies 1(1)), yang menunjukkan bahawa peniaga kecairan bebas budi bicara dan peniaga bermaklumat berkumpul secara endogen mengikut masa. Bentuk-U itu ditambat oleh dua peristiwa keras, lelongan pembukaan dan penutupan, jadi lengkung itu stabil dan purata bergerak 20-hari bagi pecahan volum selang membawa anda 90% dari jalan.
Kripto tiada pembukaan dan tiada penutupan, jadi tanggapan naif ialah volum sepatutnya rata dan TWAP ≈ VWAP. Tanggapan naif itu salah. Volum intraharian kripto mempunyai struktur — ia hanya ditambat kepada jam yang berbeza:
Kesan sesi. Volum menjejaki jam bangun orang dan meja dagangan yang mendagangkannya. Pada pasangan utama BTC dan ETH, jalur paling berat ialah petang AS yang bertindih dengan petang Eropah (kira-kira 13:00–21:00 UTC), dengan rak sekunder Asia sekitar 00:00–08:00 UTC dan lembah ketara sekitar 04:00–06:00 UTC pada pasangan utama. Pasangan alt dengan pemilikan wilayah tertumpu condong lebih kuat ke arah sesi tempatan mereka.
Cap masa pendanaan. Kontrak niaga hadapan perpetual menyelesaikan pendanaan pada waktu UTC tetap — secara sejarahnya setiap 8 jam pada 00:00, 08:00, 16:00 UTC, dengan Binance dan lain-lain berpindah kepada kitaran penyelesaian 4-jam malah 1-jam sejak 2025–2026. Minit-minit sekitar penyelesaian secara konsisten mencetak volum yang tinggi: peniaga basis membuka dan menutup kedudukan carry, dan sesiapa yang memain snapshot pendanaan berdagang tepat pada sempadan itu. Ini adalah lonjakan, bukan rak — lengkung dengan baldi 30-minit dapat melihatnya; lengkung dengan baldi 2-jam meratakannya dan VWAP anda kurang menyertai tepat pada masa kecairan paling baik.
Musiman mingguan. Volum hujung minggu pada pasangan utama secara struktural berada di bawah volum hari bekerja, dan petang Ahad UTC (pagi Isnin Asia, ditambah pembukaan semula CME untuk niaga hadapan BTC) mempunyai tandatangannya sendiri. Satu lengkung tunggal masa-hari yang dikumpulkan merentasi semua hari adalah salah spesifikasi; anda mahukan grid hari-dalam-minggu × masa-dalam-hari.
Peristiwa berjadual. Opsyen Deribit tamat tempoh 08:00 UTC (Jumaat, dengan kelompok suku tahunan), pengumuman makro AS mendarat pada 12:30/14:00 UTC, penyelesaian CME penting untuk aliran basis. Ini adalah ciri kalendar, bukan musiman — kendalikan sebagai dummy, bukan dengan mencemari lengkung asas.
Penganggar yang berfungsi, dalam semangat memastikan peramal jujur sebelum menjadikannya bijak:
import pandas as pd
def volume_curve(trades: pd.DataFrame, bucket="30min") -> pd.Series:
"""day-of-week x time-of-day volume shares from a trades tape."""
v = trades["qty"].resample(bucket).sum()
day_total = v.groupby(v.index.date).transform("sum")
share = v / day_total # fraction of that day's volume
key = [v.index.dayofweek, v.index.time]
curve = share.groupby(key).median()
return curve / curve.groupby(level=0).transform("sum") # renormalize per day
Median berbanding min bukanlah pilihan gaya. Volum kripto sangat berekor-berat; satu lata pelikuidasian tunggal boleh menjadi 15% daripada volum sehari dalam 10 minit, dan lengkung berasaskan min akan sentiasa menjangkakan lonjakan dalam baldi itu selepas itu. Kesusasteraan ekuiti melangkah lebih jauh daripada lengkung statik: Białkowski, Darolles and Le Fol (2008, "Improving VWAP strategies: A dynamic volume approach," Journal of Banking & Finance 32(9), 1709–1722) menguraikan volum selang kepada komponen pasaran sepunya dan komponen khusus-saham yang dimodelkan dengan dinamik ARMA/SETAR, dan menunjukkan penguraian itu mengurangkan secara ketara risiko penjejakan VWAP berbanding lengkung klasik statik. Terjemahan kripto adalah langsung: anggarkan lengkung meluas-pasaran daripada N pasangan teratas (faktor sepunya adalah kuat — jam pendanaan dan sesi adalah dikongsi), kemudian modelkan sisihan pasangan anda sebagai proses intraharian purata-berbalik yang anda kemas kini secara masa nyata. Baru-baru ini, Genet (2025, "Deep Learning for VWAP Execution in Crypto Markets: Beyond the Volume Curve," arXiv:2502.13722) menunjukkan jadual pembelajaran hujung-ke-hujung mengatasi VWAP lengkung-statik pada data Binance — bukti bahawa dalam kripto, lengkung volum adalah pautan paling lemah dalam saluran paip, bukan pemotongan hirisan.
Ringkasan operasi: lengkung semua-hari statik adalah VWAP strawman. Jika perbandingan anda menunjukkan "VWAP hampir tidak mengalahkan TWAP dalam kripto," semak sama ada VWAP diberi lengkung yang benar-benar mengandungi lonjakan pendanaan dan pembahagian hari bekerja/hujung minggu sebelum membuat sebarang kesimpulan.

Patologi POV: algoritma yang mengejar ekornya sendiri
Tawaran POV ialah kebolehsuaian: berdagang apabila pasaran berdagang. Tiga patologi berbeza melemahkannya.
1. Gelung maklum balas. Endogeniti di atas bukan sekadar pembetulan perakaunan. Pesanan anak anda mencipta volum; volum menaikkan sasaran anda; sasaran anda mencipta volum. Pada sederhana titik tetap adalah stabil, tetapi penyertaan yang diukur yang ditunjukkan oleh laporan pasca-dagangan anda ( daripada jumlah tape) memperkecilkan jejak anda berbanding apa yang pasaran akan menjadi tanpa anda ( daripada semua orang lain). Lebih teruk lagi, maklum balas peringkat kedua wujud: isian anda menggerakkan harga, pergerakan harga menarik aliran momentum dan mencetuskan stop, aliran itu menaikkan volum tape, dan enjin POV anda membaca volum yang ia sendiri sebabkan sebagai jemputan untuk mempercepatkan. Ini adalah songsang tepat daripada tingkah laku optimum — penjadual sedar-impak (Almgren–Chriss dengan parameter munasabah, dan anggaran impak empirik seperti Almgren, Thum, Hauptmann and Li, 2005, "Direct Estimation of Equity Market Impact," Risk 18(7)) mahu anda perlahan selepas menekan harga, bukan mempercepatkan. Lata pelikuidasian adalah had patologi: volum tape yang besar, buku sehala, dan POV vanila membeli paling keras ke dalam puncak squeeze kerana itulah tempat cetakan berada.
2. Digam. Algo POV adalah mesin aliran pesanan tercetus-volum, dan apa sahaja yang tercetus boleh diumpan. Pemangsa yang mengesyaki pembeli penyertaan besar boleh mencetak volum — self-crossing di mana peraturan membenarkannya, atau hanya berdagang secara aktif dalam saiz kecil — untuk menarik enjin POV ke hadapan, kemudian membekalkannya kecairan pada harga yang dinaikkan. Ini adalah contoh berskala kecil bagi mekanisme umum dalam Brunnermeier and Pedersen (2005, "Predatory Trading," Journal of Finance 60(4)): apabila permintaan masa depan anda boleh diramal daripada tingkah laku lampau anda, orang lain berdagang mendahuluinya dan laluan harga yang anda hadapi lebih buruk daripada yang anda ramalkan. TWAP membocorkan jadual mengikut masa; POV membocorkan fungsi respons, yang lebih berbahaya kerana lawan boleh memanggilnya atas permintaan.
3. Ekor yang tidak pernah selesai. POV tiada jam. Jika anda mesti membeli 500 BTC menjelang 16:00 UTC dan volum menguap pada 14:00, POV tulen duduk dan menunggu — ia, mengikut reka bentuk, tidak mampu menyelesaikan dengan sendirinya. Setiap POV pengeluaran oleh itu membawa lantai kadar-minimum dan mod tangkap-semula, dan mod tangkap-semula itulah tempat kerugian tersembunyi: anda menghabiskan hari berdagang secara pasif pada penyertaan 10%, kemudian meletupkan baki 30% pesanan induk melalui tetingkap penutupan yang nipis pada penyertaan efektif tiga kali sasaran anda. Purata pasca-dagangan kelihatan baik; kos marginal bagi tranche terakhir adalah kejam. Jika laporan POV anda tidak memecahkan ekor secara berasingan, anda belum melihat kos sebenarnya.
def pov_child_qty(tape_vol: float, gamma: float, remaining: float,
t_left_s: float, min_rate: float) -> float:
target = gamma / (1.0 - gamma) * tape_vol # exclude our own prints
floor = remaining / max(t_left_s, 1.0) * CHILD_INTERVAL_S
if t_left_s < CATCHUP_HORIZON_S: # deadline dominates
floor = max(floor, remaining * CHILD_INTERVAL_S / t_left_s)
return min(remaining, max(target, floor, min_rate))
Dua butiran dalam potongan ini melakukan kerja sebenar: sasaran menggunakan daripada volum tape bukan-kami (anda mesti menolak isian anda sendiri daripada tape yang anda bertindak balas — bilangan pelaksanaan yang mengejutkan tidak berbuat demikian), dan lantai tarikh akhir menukar POV kepada TWAP-pada-baki apabila masa semakin tamat, yang sekurang-kurangnya menjadikan kos ekor boleh diramal.

Penanda aras: mengapa mengalahkan VWAP masih boleh merugikan wang
Penjadual dan penanda aras adalah pilihan berasingan, dan mencampuradukkannya adalah dosa pasca-dagangan paling biasa. Dua penanda aras mendominasi.
Penanda aras VWAP — bandingkan harga isian purata anda dengan VWAP selang — diperkenalkan oleh Berkowitz, Logue and Noser (1988, "The Total Cost of Transactions on the NYSE," Journal of Finance 43(1)), yang mencadangkan harga berpemberat-volum hari itu sebagai penanda neutral bagi kualiti eksekusi institusi. Ia menjadi lalai industri atas sebab sosiologi sama banyak dengan sebab teknikal: ia mudah dikira, mudah dijelaskan, dan sukar untuk kelihatan buruk berbandingnya jika anda hanya menyebarkan dagangan anda sepanjang hari.
Implementation shortfall (harga ketibaan) datang daripada Perold (1988, "The Implementation Shortfall: Paper Versus Reality," Journal of Portfolio Management 14(3), 4–9): ukur segalanya berbanding harga pada saat keputusan dibuat. Bagi pembelian dengan kuantiti terisi pada harga purata , harga terminal :
Hujah Perold ialah jurang antara portfolio kertas dan portfolio sebenar adalah tepat kuantiti ini — dan perhatikan ia mengenakan caj atas apa yang anda gagal laksanakan, yang mana penanda aras VWAP mengabaikannya secara senyap. Terma kos peluang itulah yang menjadikan IS satu-satunya penanda aras jujur untuk POV, yang mod kegagalan tandatangannya ialah kuantiti tidak terisi.
Kini perangkapnya. VWAP sebagai penanda aras mempunyai dua titik buta struktural:
Ia rujukan-kendiri. Isian anda berada di dalam penanda aras. Jika anda 30% daripada volum selang, maka lebih kurang 30% daripada VWAP itu adalah harga purata anda sendiri, dan slippage anda yang diukur berbanding VWAP secara mekanikal dikecilkan oleh penyertaan anda sendiri — semakin besar dan berimpak pesanan anda, semakin baik ia mendapat markah. Pada had di mana anda satu-satunya peniaga, anda mengalahkan VWAP dengan tepat sifar tanpa mengira betapa teruknya anda menggerakkan harga. Slippage VWAP mengukur kepatuhan jadual, bukan kos.
Ia mengabaikan hanyutan berbanding keputusan. Angka konkrit: anda memutuskan untuk membeli 100 BTC pada harga keputusan 60,320 dan anda terisi pada purata 290 melebihi harga keputusan pada 100 BTC — +48 bps, $29,000 implementation shortfall. Kedua-dua angka adalah betul. Hanya satu daripadanya adalah wang. Dan kerosakan insentif berlaku lebih dalam: peniaga yang dinilai atas VWAP sepatutnya perlahan pada hari trending (menyebarkan dagangan menjejaki penanda aras lebih baik), yang mana tepat sebaliknya daripada apa yang meminimumkan shortfall apabila harga lari daripada anda. Penanda aras itu bukan sahaja salah mengukur kos — ia menetapkan tingkah laku yang salah. Kissell (2013, The Science of Algorithmic Trading and Portfolio Management, Academic Press) mengolah masalah pemilihan-penanda-aras ini dengan panjang lebar; kerangkanya berbaloi untuk dihayati: penanda aras mengekod risiko siapa yang anda uruskan. VWAP menguruskan risiko keaiban meja pelaksana. Harga ketibaan menguruskan P&L portfolio.
Penyelesaian praktikal: nilaikan strategi atas implementation shortfall; gunakan slippage VWAP sebagai diagnostik (ia mengasingkan kemahiran penjadualan daripada nasib pemasaan, kerana hanyutan menjejaskan kedua-dua anda dan penanda aras); dan jangan sekali-kali benarkan sesiapa yang pesanannya >10% daripada volum selang memetik slippage VWAP tanpa turut memetik penyertaan.
Eksperimen: tiga algoritma, satu tape
Selepas definisi ditetapkan, kita boleh melakukan apa yang artikel perbandingan tidak pernah lakukan: jalankan ketiga-tiga penjadual ke atas pesanan induk yang sama sepanjang data yang dimainkan semula sama dan lihat taburan kos, bukan kata sifat. Harness ini dijalankan pada simulator isian berpacukan-peristiwa yang diterangkan dalam Simulasi isian: isian separa, kedudukan giliran dan mengapa isian backtest anda berbohong — kedalaman L2 yang dimainkan semula, pesanan had anak memperoleh kedudukan giliran, anak agresif berjalan melalui buku, dan isian kami mengganggu tape yang diperhatikan oleh penjadual (yang penting secara besar untuk POV, mengikut bahagian maklum balas).
Persediaan, supaya anda boleh menghasilkan semula pada data anda sendiri:
- Instrumen/data: BTCUSDT perpetual, 90 hari replay L2 (20 tahap teratas, 100 ms) + tape dagangan.
- Pesanan induk: 500 setiap algoritma, identik merentasi algoritma: masa mula rawak, ufuk j, saiz 0.75% daripada ADV 30-hari terkini (cukup besar supaya impak adalah nyata, cukup kecil supaya ketiga-tiganya boleh masuk akal untuk selesai), sisi beli, harga keputusan = mid pada permulaan.
- TWAP: 48 hirisan anak, jitter masa/saiz ±30%.
- VWAP: lengkung median hari-dalam-minggu × masa-dalam-hari 30-minit (penganggar di atas), disuai semula mingguan, tiada kemas kini intraharian — sengaja versi yang ringkas.
- POV: daripada volum tape bukan-kami, lantai kadar-minimum, tangkap-semula TWAP dalam 30 minit terakhir.
- Metrik: IS dalam bps harga keputusan (termasuk yuran), slippage VWAP dalam bps, kadar penyelesaian, dan — satu yang tiada siapa laporkan — IS bagi kuartil terakhir setiap induk.
Keputusan wakil daripada larian kami (angka anda akan berbeza, bentuk seharusnya tidak):
| Metric (bps vs arrival) | TWAP | VWAP | POV 12% |
|---|---|---|---|
| Mean IS | 11.8 | 9.6 | 8.9 |
| Median IS | 9.1 | 7.7 | 6.4 |
| Std of IS | 21.5 | 19.8 | 26.3 |
| 95th percentile IS | 46 | 41 | 58 |
| Mean VWAP slippage | +1.9 | +0.4 | –0.8 |
| Completion at T | 100% | 100% | 96.4% |
| Mean IS, final quartile of parent | 12.5 | 10.2 | 19.7 |
Tiga pembacaan, mengikut urutan kepentingan menaik:
Purata mengipas POV dan ekor mensabitkannya. POV menang pada IS min dan median — menyesuaikan diri dengan kecairan terealisasi benar-benar bernilai beberapa bps berbanding lengkung statik. Tetapi sisihan piawai IS-nya dan persentil ke-95 adalah paling teruk daripada ketiga-tiganya, kadar penyelesaiannya bukan 100%, dan kos kuartil terakhirnya lebih daripada dua kali ganda angka utamanya: ekor yang tidak pernah selesai ditambah mod tangkap-semula memusatkan kos tepat di tempat purata menyembunyikannya. Jika pesanan induk anda dipacu-alfa dengan tarikh akhir keras, ekor itulah angka yang penting, dan kelebihan min POV tidak membayarnya.
Kelebihan VWAP berbanding TWAP adalah tepat kualiti ramalannya. Syaratkan jurang IS VWAP–TWAP atas ralat lengkung-volum terealisasi (jarak antara ramalan dan pecahan terealisasi) dan hubungannya adalah monoton: pada tersil ramalan-terbaik hari, VWAP mengalahkan TWAP sebanyak ~4 bps; pada tersil terburuk jurang itu berada dalam bunyi bising dan kadangkala terbalik. Dalam kripto, tersil terburuk bukan rawak — ia adalah hari lata dan hari berita, yang juga hari berkos paling tinggi secara keseluruhan. VWAP menambah baik purata anda dengan mengatasi pada hari-hari yang mudah walau apa pun.
Slippage VWAP dan IS menyusun algoritma secara berbeza. POV mencatat slippage VWAP min yang negatif — sudah tentu ia berbuat demikian, ia berdagang berkadaran dengan volum yang tepat mendefinisikan penanda aras itu, dan isiannya berada di dalamnya. Mengikut papan skor VWAP, POV adalah algoritma terbaik di sini; mengikut papan skor ketibaan dan risiko penyelesaian, ia paling berbahaya. Tape sama, isian sama, kesimpulan bertentangan — itulah keseluruhan hujah bahagian sebelumnya dijelmakan sebagai jadual.

Harness itu sendiri kira-kira 50 baris di sekitar simulator isian dan berbaloi setiap minitnya, kerana ia menukar pemilihan penjadual daripada perdebatan citarasa kepada pengukuran:
for parent in sample_parents(n=500, horizon="4h", adv_frac=0.0075):
for algo in (twap, vwap, pov):
sim = ReplaySim(l2_stream(parent.window), fees=TAKER_MAKER)
fills = sim.run(algo.schedule(parent)) # fills perturb the tape
report(parent, algo, is_bps(fills, parent.p0),
vwap_slip_bps(fills, sim.tape), fills.completion)
Memilih, dalam praktik
Peraturan pemilihan jujur yang terhasil daripada semua ini:
- Tarikh akhir keras, induk dipacu-alfa: TWAP atau jadual Almgren–Chriss beban-hadapan. Bayar cukai kecairan-rata; beli jaminan penyelesaian dan ekor terbatas. Rawakkan anak-anak.
- Aliran dipacu-penanda-aras (anda literalnya dibayar atas VWAP), atau saiz besar pada hari biasa: VWAP — dan belanjakan bajet kejuruteraan anda pada peramal volum: grid hari-dalam-minggu, resolusi lonjakan-pendanaan, kemas kini dinamik intraharian à la Białkowski–Darolles–Le Fol. Enjin VWAP dengan lengkung malas adalah TWAP dengan langkah tambahan.
- Oportunistik, tiada tarikh akhir keras, sensitif-kecairan: POV pada sederhana (≤15%), dikira atas volum bukan-kami, dengan penapis lata (hadkan penyertaan apabila skor-z volum tape meletup) dan fallback tarikh akhir yang kosnya anda ukur secara berasingan.
- Apa sahaja yang anda jalankan: nilaikannya atas implementation shortfall berbanding ketibaan, mengikut Perold. Kekalkan slippage VWAP sebagai diagnostik kemahiran penjadualan, jangan sekali-kali sebagai papan skor — papan skor mesti dinamakan dalam wang, dan hanya harga ketibaan yang begitu.
Dan meta-peraturan yang eksperimen ini terus menguatkuasakan: bandingkan taburan, bukan purata, pada data yang dimainkan semula milik anda sendiri. Penjadual adalah pertaruhan ke atas ramalan volum, dan anda tidak menilai pertaruhan melalui purata bayarannya sambil mengabaikan ekor — itulah cara pasaran menjual POV kepada anda.
Pengarang
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.