TWAP пен VWAP және POV: орындау бенчмаркін таңдау (әрқайсысы қашан алдайтынын білу)
Әрбір орындау жоспарлаушысы — көлем болжамына жасалған бәс. TWAP уақыт бойынша өтімділік тегіс болады деп бәс тігеді. VWAP бүгінгі көлем қисығы кешегіге ұқсас болады деп бәс тігеді. POV дәл қазір таспада басылып жатқан көлем дәл қазір сауда жасауға жеткілікті негіз деп бәс тігеді — оның ішінде сол таспаның сен өзің құрап отырған бөлігі де бар. Бұл бәстердің ешқайсысы вендор құжаттамасында "бәс" деп аталмайды, сондықтан осы үшеуін салыстырудың көбі мүмкіндіктер кестесі сияқты оқылады: TWAP "қарапайым", VWAP "ақылды", POV "бейімделгіш". Мұндай сипаттама қайсысы сені қашан және қаншаға зиянға ұшырататыны туралы ештеңе айтпайды.
Бұл — Алгоритмдік трейдингтегі бұйрық түрлері мақаласынан бастаған тізбектің 2-бөлімі, онда біз шамамен 40 жолдық Python кодымен ойыншық TWAP және VWAP орындаушыларын құрдық. Ол орындаушылар құбыр ретінде жеткілікті жақсы. Бұл мақала сол құбыр жасырып тұрған нәрсенің бәрі туралы: жасырын болжамдар, бенчмарк саясаты және қайта ойнатылған ордер кітабы деректеріндегі қайталанатын бас-басына эксперимент, ол үш алгоритмнің "әртүрлі дәм" емес екенін, керісінше әртүрлі тәуекел профильдері мен әртүрлі сәтсіздік режимдері екенін көрсетеді.
Үш жоспарлаушы, үш жасырын бәс
Белгілерді бекітейік. горизонтында аралыққа бөлінген көлеміндегі ата-ана бұйрығын орындау керек. — аралығындағы бала мөлшері, — аралығындағы нарық көлемі, — аралығындағы орташа баға болсын. Горизонт бойынша нарықтың VWAP мәні мынаған тең:
TWAP саудасын жасайды: тең уақыт аралығында тең мөлшер. Жасырын болжам мынау — өтімділік (тереңдік, спред, көлем) уақыт бойынша біркелкі, сондықтан тең бөліктер тең әсер тудырады. Бұл кез келген нарықта әрдайым жалған, бірақ ол жайлы сәтсіздікке ұшырайды: жоспар детерминирленген, аяқталу конструкция бойынша кепілдендірілген, ал ең нашар жағдайда — тіркелген клипті сирек сағатта сату да, соған кеңірек спред төлеу. Екінші, азырақ талқыланатын болжам — ешкім бақыламайды деген болжам. Әр 60 секунд сайын :00-де атылатын бала бұйрығын жіберетін TWAP — метроном, ал метрономдарды алдын ала пайдаланып кетеді (front-run). Кез келген елеулі TWAP бала бұйрықтарының уақыты мен мөлшерін кездейсоқтандырады; жоспар күтілетін мәні тегіс болатын Пуассонға ұқсас процесс болуы керек, сағат емес.
VWAP саудасын жасайды, мұндағы — аралығындағы күндік көлемнің болжамды үлесі, . Енді бәс айқын: сен тарихтан бағаланған қисығын ұстайсың және бүгін де сол қисыққа сай болады деп болжайсың. Болжам көлем тегіс дегенде емес, ол болжанатын және экзогенді дегенде — қисық сенің сауда жасайтыныңа немесе жасамайтыныңа қарамайды. Болжам жақсы болса, VWAP сауда-саттығыңды нарық сіңіре алатын жерге шоғырландырады, сонда нарық VWAP-қа қатысты сырғанауың (slippage) дерлік тавтологиялық түрде аз болады. Болжам нашар болса — жоспарланбаған жаңалық оқиғасы күндік көлемнің 40%-ын қисық 6% ғана бөлген сағатқа әкеп тастаса — VWAP тыныш қана ескірген жоспарды орындай береді, ал айырманы сен төлейсің. VWAP орындау тәуекелін көлем-болжам тәуекеліне айналдырады. Бар мәселе осы, әрі дәл сол себепті VWAP қозғалтқышындағы қызық инженерия — бөлгіш емес, болжаушы.
POV (percentage of volume, "қатысу" деп те аталады) болжамнан бас тартады: саудасын жасайды, яғни әр аралықта байқалған көлемнің тіркелген үлесі. Бұл алғаш қарағанда VWAP-тан үстем көрінеді — көлемді сен өзің қуалай алатын болсаң, оны неге болжау керек? Мәселе — сигнал енді эндогенді. Сенің өз орындалымдарың таспада басылады. Қалған нарық аралықта саудаласа, ал сен жалпы таспа көлемінің үлесін мақсат етсең, сенің мөлшерің мынаны шешеді: , яғни
кезінде бұл түзету жеңіл (басқалардың көлемінің 11.1%-ы). кезінде сен қалғандардың ағынының 33%-ын сатып жатырсың; кезінде сен нарықтың қалған бөлігімен бір-біріне тең сауда жасайсың, ал тұрақты нүкте алшақтап кетеді. POV сонымен қатар TWAP пен VWAP екеуі де беретін жалғыз кепілдіктен айырылады: аяқталу уақыты жоқ. Көлем өшсе, жоспарың да өшеді. Біз POV патологияларына төменде қайта ораламыз, себебі олар жеке бөлімге тұрарлық.
Кейінірек маңызды болатын тағы бір қалып: бұл үшеудің ешқайсысы формальды мағынада "оптималды" емес. Шығын-тәуекел мақсат функциясын нақты минимизациялайтын жоспарлаушы — Almgren–Chriss тобы (Almgren and Chriss, 2000, "Optimal Execution of Portfolio Transactions," Journal of Risk 3, 5–39), оны біз Almgren–Chriss және оптималды орындау кестелерінің теориясы мақаласында толық қарастырамыз. TWAP — сызықтық әсер кезінде нөлдік тәуекелге бейімсіздіктегі Almgren–Chriss-тің дербес жағдайы; VWAP — көлем-салмақталған бенчмаркке қатысты минималды-қадағалау-қатесі стратегиясы (Konishi, 2002, "Optimal slice of a VWAP trade," Journal of Financial Markets 5(2)); POV — ешбір мақсат функциясына сәйкес келмейтін эвристика, дәл осы себепті оның сәтсіздік режимдері соншалықты біртүрлі.
Нарық ешқашан жабылмағанда көлем қисықтарын бағалау
Акциялар әдебиетіне жеңіл болды. Акциялардағы күн ішіндегі көлем — U-тәрізді пішін: ашылуда ауыр, түскі үзілісте тыныш, жабылуға қарай ауыр, бұл Jain and Joh (1988, "The Dependence between Hourly Prices and Trading Volume," JFQA 23(3)) мақаласынан бастап құжатталған, ал Admati and Pfleiderer (1988, "A Theory of Intraday Patterns: Volume and Price Variability," Review of Financial Studies 1(1)) теориялық негіз берді, олар дискрециялық өтімділік трейдерлері мен хабардар трейдерлердің уақыт бойынша эндогенді түрде топтасатынын көрсетті. U-тәрізді пішін екі қатты оқиғамен бекітілген — ашылу мен жабылу аукциондары, сондықтан қисық тұрақты және аралық көлем үлестерінің 20 күндік жылжымалы орташасы жолдың 90%-ын жабады.
Криптода ашылу да, жабылу да жоқ, сондықтан аңғал болжам — көлем тегіс болуы керек, ал TWAP ≈ VWAP. Бұл аңғал болжам қате. Криптоның күн ішіндегі көлемінде құрылым бар — ол тек басқа сағаттарға байланысты:
Сессия әсерлері. Көлем оны саудалайтын адамдар мен бөлімдердің ояу сағаттарын қадағалайды. BTC мен ETH негізгі жұптарында ең ауыр аралық — АҚШ түстен кейінгі уақыты Еуропаның кешкі уақытымен қабаттасатын кез (шамамен 13:00–21:00 UTC), екінші дәрежелі Азия белдеуі 00:00–08:00 UTC айналасында және негізгі жұптарда 04:00–06:00 UTC айналасында айқын құлдырау байқалады. Аймақтық меншігі шоғырланған альт-жұптар өз үй сессиясына қарай күштірек ауытқиды.
Фандинг уақыт белгілері. Мәңгілік фьючерстер фандингті тіркелген UTC уақыттарында есептейді — тарихи түрде әр 8 сағат сайын 00:00, 08:00, 16:00 UTC, ал Binance және басқалар 2025–2026 жылдардан бастап көптеген контрактілерді 4 сағаттық, тіпті 1 сағаттық есептеу циклдеріне ауыстыруда. Есептеуге жақын минуттар тұрақты түрде жоғарылатылған көлемді көрсетеді: базис трейдерлері carry позицияларын ашады/жабады, ал фандинг снапшотын ойнатып жатқан кез келген адам дәл шекарада сауда жасайды. Бұл — шыңдар, қалыпты деңгейлер емес — 30 минуттық қоржындары бар қисық оларды көреді; 2 сағаттық қоржындары бар қисық оларды орташалап жібереді, сонда сенің VWAP-ың дәл өтімділік ең жақсы кезде жеткіліксіз қатысады.
Апталық маусымдылық. Негізгі жұптардағы демалыс күндерінің көлемі жұмыс күндерінің көлемінен құрылымдық түрде төмен, ал UTC бойынша жексенбі кеші (Азиядағы дүйсенбі таңы, плюс BTC фьючерстеріне арналған CME қайта ашылуы) өз ерекшелігіне ие. Барлық күндер бойынша жинақталған жалғыз тәулік уақыты қисығы дұрыс емес спецификацияланған; саған апта күні × тәулік уақыты торы керек.
Жоспарланған оқиғалар. Deribit опциондары 08:00 UTC-де мерзімі бітеді (жұмаларда, тоқсандық шоғырлармен), АҚШ макро баспалары 12:30/14:00 UTC-де шығады, CME есеп айырысулары базистік ағындар үшін маңызды. Бұлар — күнтізбелік белгілер, маусымдылық емес — оларды dummy айнымалы ретінде өңдеу керек, базалық қисықты ластамай.
Болжаушыны алдын ала ақ ниетті ұстау рухындағы жұмыс істейтін бағалаушы:
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
Орташаның орнына медиананы алу — стилистикалық таңдау емес. Криптодағы көлем қатты ауыр құйрықты; жалғыз ликвидация каскады бір күннің көлемінің 15%-ын 10 минутта құрауы мүмкін, ал орташаға негізделген қисық сол қоржында мәңгілікке шың күтетін болады. Акциялар әдебиеті статикалық қисықтардан әрі кетті: Białkowski, Darolles and Le Fol (2008, "Improving VWAP strategies: A dynamic volume approach," Journal of Banking & Finance 32(9), 1709–1722) аралық көлемді жалпы нарықтық компонент пен ARMA/SETAR динамикасымен модельденген акцияға тән компонентке ыдыратады және бұл ыдырату статикалық классикалық қисыққа қарағанда VWAP қадағалау тәуекелін елеулі түрде азайтатынын көрсетеді. Криптоға аудармасы тікелей: топ-N жұптардан нарық-кең қисықты бағалаңыз (жалпы фактор күшті — фандинг сағаттары мен сессиялар ортақ), содан кейін өз жұбыңның ауытқуын нақты уақытта жаңартатын орта мәнге қайтарылатын күн ішіндегі процесс ретінде модельдеңіз. Жақындау уақытта Genet (2025, "Deep Learning for VWAP Execution in Crypto Markets: Beyond the Volume Curve," arXiv:2502.13722) Binance деректерінде оқытылған, ұштан-ұшқа кестелер статикалық-қисықты VWAP-тан асып түсетінін көрсетеді — бұл криптода конвейердің ең әлсіз буыны бөлу емес, көлем қисығы екенінің дәлелі.
Операциялық қорытынды: барлық күндерге ортақ статикалық қисық — жалған VWAP (strawman). Салыстыруың "криптода VWAP TWAP-тан әрең асып түседі" дегенді көрсетсе, ешбір қорытынды жасамас бұрын VWAP-қа шынымен фандинг шыңдары мен жұмыс күні/демалыс күні бөлінуі бар қисық берілгенін тексер.

POV патологиялары: өз құйрығын қуалайтын алгоритм
POV идеясы — бейімделгіштік: нарық сауда жасаған кезде сауда жаса. Оны үш түрлі патология бұзады.
1. Кері байланыс циклі. Жоғарыдағы эндогендік — тек бухгалтерлік түзету емес. Сенің бала бұйрықтарың көлем тудырады; көлем сенің мақсатыңды көтереді; мақсатың көлем тудырады. Орташа кезінде тұрақты нүктесі тұрақты, бірақ сауда-саттықтан кейінгі есебің көрсететін өлшенген қатысуың (жалпы таспаның үлесі) сенсіз болатын нарыққа қатысты ( басқалардың) із қалдырыңды төмендетіп көрсетеді. Одан да жаманы, екінші дәрежелі кері байланыс бар: сенің орындалымдарың бағаны қозғайды, баға қозғалысы моментум ағынын тартады және стоптарды іске қосады, ол ағын таспа көлемін көтереді, ал сенің POV қозғалтқышың өзі тудырған көлемді жеделдетуге шақыру деп оқиды. Бұл оптималды мінез-құлыққа дәл қарама-қарсы — әсерді ескеретін жоспарлаушылар (ақылға қонымды параметрлермен Almgren–Chriss, және Almgren, Thum, Hauptmann and Li, 2005, "Direct Estimation of Equity Market Impact," Risk 18(7) сияқты эмпирикалық әсер бағалаулары) бағаны итергеннен кейін баяулауыңды қалайды, жылдамдатуды емес. Ликвидация каскады — патологиялық шекті жағдай: орасан зор таспа көлемі, бір жақты кітап, ал қарапайым POV сквиздің шыңына ең қатты сатып алады, себебі дәл сол жерде баспалар пайда болады.
2. Алдап пайдалану. POV алгоритмі — көлеммен іске қосылатын бұйрық ағыны машинасы, ал іске қосылатын кез келген нәрсе жем ретінде пайдаланылады. Ірі қатысу сатып алушысынан күдіктенген жыртқыш көлемді басып шығаруы мүмкін — ережелер рұқсат еткен жерде өзін-өзі кесіп өтіп, немесе жай ғана шағын мөлшерде белсенді сауда жасап, POV қозғалтқышын алға тартады, содан кейін оған көтерілген бағамен өтімділік ұсынады. Бұл Brunnermeier and Pedersen (2005, "Predatory Trading," Journal of Finance 60(4)) сипаттаған жалпы механизмнің шағын нұсқасы: болашақ сұранысың өткен мінез-құлқыңнан болжанатын болса, басқалар одан бұрын сауда жасайды, ал сен кезіккен баға жолы болжағаныңнан нашар болады. TWAP уақыт бойынша жоспарды ағызады, POV жауап функциясын ағызады, бұл қауіптірек, себебі оппонент оны талап бойынша шақыра алады.
3. Ешқашан аяқталмайтын құйрық. POV-та сағат жоқ. 16:00 UTC-ге дейін 500 BTC сатып алуың керек, ал көлем 14:00-де булансаы, таза POV отырып күте береді — ол, дизайн бойынша, өз бетінше аяқтауға қабілетсіз. Сондықтан кез келген өндірістік POV минималды жылдамдық деңгейі мен қуып жету режимін алып жүреді, ал қуып жету режимі — шығындар жасырынатын жер: күнді пассивті түрде 10% қатысумен сауда жасап өткізесің, содан кейін қалдық 30% ата-ана бұйрығын мақсатыңнан үш есе жоғары тиімді қатысумен сирек жабылу терезесі арқылы жарып өткізесің. Сауда-саттықтан кейінгі орташа мән жақсы көрінеді; ал соңғы бөліктің шекті құны қатал. POV есептерің құйрықты бөлек көрсетпесе, оның нақты құнын көрмегенсің.
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))
Осы кодтағы екі бөлшек нақты жұмыс атқарады: мақсат біз-жоқ таспа көлемінің үлесін пайдаланады (сен жауап беретін таспадан өз орындалымдарыңды алып тастауың керек — керемет көп имплементация мұны жасамайды), ал мерзім еденшесі уақыт таусылған сайын POV-ты қалдыққа-TWAP-қа айналдырады, бұл кем дегенде құйрық шығынын болжамды етеді.

Бенчмарктер: VWAP-ты жеңу неге ақшадан айырылуы мүмкін
Жоспарлаушы мен бенчмарк — бөлек таңдаулар, ал оларды шатастыру — сауда-саттықтан кейінгі ең кең тараған күнә. Екі бенчмарк үстемдік етеді.
VWAP бенчмаркі — сенің орташа орындалу бағаңды аралық VWAP-пен салыстыру — Berkowitz, Logue and Noser (1988, "The Total Cost of Transactions on the NYSE," Journal of Finance 43(1)) енгізген, олар институционалдық орындау сапасының бейтарап өлшемі ретінде күндік көлем-салмақталған бағаны ұсынды. Ол салада әдепкі стандартқа техникалық емес, социологиялық себеппен де айналды: есептеу оңай, түсіндіру оңай, ал сауда-саттығыңды бүкіл күнге жайса, оған қарсы жаман көрінуі қиын.
Implementation shortfall (келу бағасы) Perold-тан (1988, "The Implementation Shortfall: Paper Versus Reality," Journal of Portfolio Management 14(3), 4–9) шыққан: барлығын шешім қабылданған сәттегі бағасына қарсы өлше. көлемінде сатып алуда, орындалған мөлшер , орташа баға , соңғы баға кезінде:
Perold-тың негізгі ойы — қағаз портфельдер мен нақты портфельдер арасындағы алшақтық дәл осы шама екенінде — және назар аудар: ол VWAP бенчмаркі үнсіз елемейтін, сен орындай алмаған нәрсе үшін де сенен алады. Дәл сол мүмкіндік-шығыны мүшесі IS-ті POV үшін жалғыз адал бенчмарк етеді, себебі оның басты сәтсіздік режимі — толтырылмаған мөлшер.
Енді тұзақ. Бенчмарк ретіндегі VWAP-тың екі құрылымдық соқыр нүктесі бар:
Ол өзіне-өзі сілтеме жасайды. Сенің орындалымдарың бенчмарктің ішінде. Сен аралық көлемнің 30%-ын құрасаң, VWAP-тың шамамен 30%-ы сенің өз орташа бағаң, ал VWAP-қа қатысты өлшенген сырғанауың өз қатысуыңмен механикалық түрде кішірейтіледі — бұйрығың неғұрлым үлкен және әсерлі болса, соғұрлым ол жақсы бағаланады. Тек сен ғана сауда жасаған шекті жағдайда, бағаны қаншалықты жаман қозғалтсаң да, VWAP-ты дәл нөлге жеңесің. VWAP сырғанауы шығынды емес, жоспарға сәйкестікті өлшейді.
Ол шешімге қатысты дрейфті елемейді. Нақты сандар: сен 60,000 доллар шешім бағасында 100 BTC сатып алуды шешесің. Нарық бүкіл түстен кейін өседі; аралық VWAP 60,290-де толтырасың. VWAP есебі: –5 базистік пункт, бенчмаркті жеңдің, бөлім жасыл ұяшық алады. Келу есебі: сен 100 BTC үшін шешім бағасынан 29,000 implementation shortfall**. Екі сан да дұрыс. Тек біреуі ғана ақша. Ал ынталандыру бұрмалануы одан да тереңде: VWAP бойынша бағаланатын трейдер трендтегі күні баяулауы керек (бөлшектенген сауда бенчмаркті жақсырақ қадағалайды), бұл баға сенен қашып бара жатқанда шығынды минимизациялайтын нәрсеге дәл қарама-қарсы. Бенчмарк тек шығынды дұрыс емес өлшеп қана қоймайды — ол қате мінез-құлықты дарылайды. Kissell (2013, The Science of Algorithmic Trading and Portfolio Management, Academic Press) осы бенчмарк таңдау мәселесін кеңінен қарастырады; оның тұжырымдамасын есте сақтаған жөн: бенчмарк кімнің тәуекелін басқарып жатқаныңды кодтайды. VWAP орындаушы бөлімнің ұятқа қалу тәуекелін басқарады. Келу бағасы портфельдің П&Z (P&L) көрсеткішін басқарады.
Практикалық шешім: стратегияларды implementation shortfall бойынша бағала; VWAP сырғанауын диагностика ретінде пайдалан (ол жоспарлау шеберлігін уақыттау сәттілігінен бөледі, себебі дрейф сені де, бенчмаркті де бірдей қозғайды); және аралық көлемнің 10%-нан асатын бұйрығы бар ешкімге қатысуын да айтпай VWAP сырғанауын келтіруге рұқсат берме.
Эксперимент: үш алгоритм, бір таспа
Анықтамалар бекітілді, енді салыстыру мақалалары ешқашан жасамайтын нәрсені жасай аламыз — үш жоспарлаушыны бірдей ата-ана бұйрықтарында бірдей қайта ойнатылған деректерде іске қосу және сын есімдерге емес, шығын үлестірімдеріне қарау. Харнесс Толтыру симуляциясы: жартылай толтырулар, кезек орны және неге бэктест толтыруларың өтірік мақаласында сипатталған оқиға-бағдарланған толтыру симуляторында жұмыс істейді — қайта ойнатылған L2 тереңдігі, бала лимиттік бұйрықтары кезек орнын иеленеді, агрессивті балалар кітапты аралайды, ал біздің толтырулар жоспарлаушылар бақылайтын таспаны бұзады (бұл POV үшін кері байланыс бөлімі бойынша орасан зор мәнге ие).
Баптау, сен өз деректеріңде қайталай алуың үшін:
- Құрал/деректер: BTCUSDT перпетуал, 90 күндік L2 қайта ойнату (жоғарғы 20 деңгей, 100 мс) + мәмілелер таспасы.
- Ата-ана бұйрықтары: алгоритм басына 500, алгоритмдер арасында бірдей: кездейсоқ бастау уақыттары, горизонт сағ, мөлшер соңғы 30 күндік ADV-тің 0.75%-ы (әсер нақты болатындай үлкен, үшеуі де ақылға қонымды түрде аяқтай алатындай кіші), сатып алу жағы, шешім бағасы = бастаудағы mid.
- TWAP: 48 бала бөлігі, ±30% уақыт/мөлшер життері (jitter).
- VWAP: 30 минуттық апта күні × тәулік уақыты медиана қисығы (жоғарыдағы бағалаушы), апта сайын қайта бейімделеді, күн ішінде жаңартылмайды — әдейі қарапайым нұсқасы.
- POV: біз-жоқ таспа көлемінің , минималды жылдамдық еденшесі, соңғы 30 минутта TWAP қуып жету режимі.
- Метрикалар: шешім бағасының базистік пункттеріндегі IS (комиссиялармен қоса), базистік пункттердегі VWAP сырғанауы, аяқталу деңгейі, және — ешкім бермейтін көрсеткіш — әрбір ата-ана бұйрығының соңғы квартилінің IS-і.
Біздің іске қосуларымыздан алынған өкілдік нәтижелер (сенің сандарың басқаша болады, ал пішіні басқаша болмауы керек):
| Метрика (келуге қатысты базистік пункт) | TWAP | VWAP | POV 12% |
|---|---|---|---|
| Орташа IS | 11.8 | 9.6 | 8.9 |
| Медиана IS | 9.1 | 7.7 | 6.4 |
| IS стандартты ауытқуы | 21.5 | 19.8 | 26.3 |
| 95-ші процентиль IS | 46 | 41 | 58 |
| Орташа VWAP сырғанауы | +1.9 | +0.4 | –0.8 |
| T кезіндегі аяқталу | 100% | 100% | 96.4% |
| Орташа IS, ата-ана бұйрығының соңғы квартилі | 12.5 | 10.2 | 19.7 |
Маңыздылығы артуы бойынша үш оқылым:
Орташа мәндер POV-ты жарқыратады, ал құйрықтар оны кінәлайды. POV орташа және медиана IS бойынша жеңеді — іске асқан өтімділікке бейімделу статикалық қисыққа қарағанда шынымен бірнеше базистік пунктке тұрарлық. Бірақ оның IS стандартты ауытқуы мен 95-ші процентилі үшеуінің ішіндегі ең нашары, аяқталу деңгейі 100% емес, ал соңғы квартиль шығыны оның негізгі көрсеткішінен екі еседен астам: ешқашан аяқталмайтын құйрық плюс қуып жету режимі шығынды орташа мән жасырған жерде дәл шоғырландырады. Ата-ана бұйрықтарың альфаға негізделген, қатаң мерзімі бар болса, маңызды сан — сол құйрық, ал POV-тың орташа артықшылығы соны жаппайды.
VWAP-тың TWAP-тан артықшылығы дәл оның болжам сапасы. VWAP–TWAP IS алшақтығын іске асқан көлем-қисық қатесіне ( болжамы мен іске асқан үлестер арасындағы қашықтығы) шарттасаң, қатынас монотонды: болжамы ең жақсы терцильде VWAP TWAP-ты ~4 базистік пунктке жеңеді; болжамы ең нашар терцильде алшақтық шудың шегінде және кейде керіге бұрылады. Криптода ең нашар терциль кездейсоқ емес — бұл каскад күндері мен жаңалық күндері, олар сонымен қатар жалпы алғанда ең қымбат күндер. VWAP орташа мәніңді әйтеуір оңай болатын күндерде асып түсу арқылы жақсартады.
VWAP сырғанауы мен IS алгоритмдерді әртүрлі саралайды. POV теріс орташа VWAP сырғанауын береді — әрине, ол дәл бенчмаркті анықтайтын көлемге пропорционалды сауда жасайды, ал оның орындалымдары сол көлемнің ішінде жатады. VWAP ұпай кестесі бойынша POV осы жердегі ең жақсы алгоритм; келу ұпай кестесі мен аяқталу тәуекелі бойынша ол ең қауіпті. Бір таспа, бір орындалымдар, қарама-қарсы қорытынды — бұл алдыңғы бөлімнің бүкіл дәлелі кесте түрінде көрсетілгені.

Харнесстің өзі толтыру симуляторының айналасында шамамен 50 жол, және әр минутына тұрарлық, себебі ол жоспарлаушыны таңдауды талғам туралы дау-дамайдан өлшеуге айналдырады:
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)
Практикада таңдау
Осының бәрінен шығатын адал таңдау ережелері:
- Қатаң мерзім, альфаға негізделген ата-ана бұйрығы: TWAP немесе алдын-ала жүктелген Almgren–Chriss жоспары. Тегіс-өтімділік салығын төле; аяқталу кепілдігі мен шектелген құйрықты сатып ал. Балаларды кездейсоқтандыр.
- Бенчмаркке негізделген ағын (сен нақты VWAP бойынша ақы аласың), немесе қалыпты күндегі үлкен көлем: VWAP — және инженерлік бюджетіңді көлем болжаушысына жұмса: апта күні торы, фандинг-шың шешімі, Białkowski–Darolles–Le Fol стиліндегі күн ішіндегі динамикалық жаңарту. Жалқау қисығы бар VWAP қозғалтқышы — қосымша қадамдары бар TWAP қана.
- Мүмкіндікке негізделген, қатаң мерзімсіз, өтімділікке сезімтал: орташа (≤15%) POV, біз-жоқ көлемде есептелген, каскад сүзгісімен (таспа көлемінің z-балдары жарылғанда қатысуды шектеу) және шығынын бөлек өлшейтін мерзім резервімен.
- Не істесең де: оны Perold бойынша келуге қатысты implementation shortfall бойынша баға. VWAP сырғанауын жоспарлау шеберлігінің диагностикасы ретінде сақта, ешқашан ұпай кестесі ретінде емес — ұпай кестесі ақшамен өлшенуі керек, ал тек келу бағасы ғана солай.
Және эксперимент үнемі растап тұрған мета-ереже: өз қайта ойнатылған деректеріңде орташа мәндерді емес, үлестірімдерді салыстыр. Жоспарлаушы — көлем болжамына жасалған бәс, ал бәстерді олардың орташа төлемі бойынша, құйрықтарды елемей бағаламайсың — нарық саған POV-ты дәл осылай сатады.
Authors
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.