Ennustusturge näib olevat maailma kõige lihtsam tagasitestida. Hind jääb vahemikku [0, 1]. Väljamakse on dollar või mitte midagi. Pole võimendust, rahastamist, baasi ega püsiva swap'i veidrusi kell 00:00 UTC. Meil oli juba tagasitestija, mis käsitles krüptopüsivaid futuure koos tasude, rahastamise ja hinnamõjuga. Plaan oli seda kaks päeva kohandada ja seejärel strateegiaid genereerima hakata.
Selleks kulus kaheksa päeva. Siin on päevik enam-vähem kronoloogilises järjekorras, kaasa arvatud päev, mil omakapitalikõver näis uskumatu ja seda oligi.
1. päev: adapter, mis pidanuks olema lihtne
Esialgne vastendus oli üks ühele ja tundus puhas. Turg on instrument. YES-i hind on hind. YES-i ostmine tähendab pikka positsiooni, NO ostmine lühikest positsiooni. Lahendus tähendab sundsulgemist hinnaga 1.00 või 0.00. Anna tunnipõhine hinnaseeria samale sündmuspõhisele tsüklile ja valmis.
See vastendus pidas pärisandmetega kokkupuutele vastu umbes üheksakümmend minutit. Esimesena tuli ümber teha tootlusseeria. Kogu meie riskikiht — positsiooni suurus, volatiilsuse sihtimine ja Sharpe'i aruandlus — eeldas jätkuva instrumendi logaritmilisi tootlusi. Turu liikumisel 0.04-lt 0.00-le on logaritmiline tootlus määramatu, aga kahjum on kindel ja täielik. Ning turg hinnaga 0.04 kolm päeva enne lahendamist on olemuselt täiesti erinev turust, mis on hinnaga 0.04 neli minutit enne lahendamist, kuigi mõlemal real seisab 0.04.
Lõpuks seadistasime kogu seeria uuesti lahendamiseni jäänud aja, mitte seinakella järgi ning käsitlesime PnL-i lõplikuna, mitte jooksvalt hinnatuna. See oli õige otsus ja muutis kehtetuks kogu sellest allavoolu jääva aruandluskoodi.
2. päev: tasuvalem ongi strateegia
Kalshi kauplemistasu ei ole baaspunktides väljendatud mahaarvamine. See sõltub hinnast ruutfunktsiooni järgi: ligikaudu 0.07 × contracts × P × (1−P), kusjuures orderi tasemel ümardatakse see ülespoole sendini. Seega on tasu suurim just seal, kus mündiviske tõenäosusega turg on kõige huvitavam, ja äärmustes peaaegu olematu.
| Hind | Tasu lepingu kohta | Vajalik eelis (tõenäosuspunktides) | Tasu osakaal panusest |
|---|---|---|---|
| 5¢ | 0.33¢ | 0.33 | 6.7% |
| 10¢ | 0.63¢ | 0.63 | 6.3% |
| 25¢ | 1.31¢ | 1.31 | 5.3% |
| 50¢ | 1.75¢ | 1.75 | 3.5% |
| 75¢ | 1.31¢ | 1.31 | 1.8% |
| 90¢ | 0.63¢ | 0.63 | 0.7% |
| 95¢ | 0.33¢ | 0.33 | 0.35% |
Lugege kolmandat veergu: see on kõige olulisem. Et osta hinnaga 50¢ ja hoida leping lahendamiseni, peab teie tõenäosushinnang olema turu omast 1.75 punkti võrra parem, et nulli jõuda. Mitte suhteliselt 1.75 protsenti, vaid absoluutarvuna. Kui väljute enne lahendamist, mitte ei hoia lepingut, maksate tasu kaks korda, lisaks hinnavahe.
Polymarketi CLOB-i tasuprofiil on ajalooliselt olnud hoopis teistsugune: tehingutasu on olnud nullilähedane ning peamine kulu tekib hinnavahest ja sügavusest. Seega on sama strateegialoogika majanduslikult kahes kauplemiskohas täiesti erinev ning kõigi kauplemiskohtade võrdlemine ühe tasumudeliga on väljamõeldis. Nüüd kasutame igas kauplemiskohas eraldi tasufunktsiooni, mitte ühtainsat arvu.
Kui loete ennustusturu tagasitestimise aruandest ainult üht rida, lugege tasu tõenäosuspunktides. Strateegia, mille väidetav prognoosieelis 50¢ turgudel on 1.2 punkti, toob Kalshis kahjumit juba enne mis tahes muid kulusid. See peaks olema aruande esimesel lehel näha, mitte nii, et lugeja peab selle ise välja arvutama.
3. päev: orderiraamat on astmeline ja lühike
Meie hinnamõju mudel oli BTC püsifutuuride orderiraamatute põhjal kalibreeritud ruutjuurfunktsioon. See on vale kujuga. Kui 1-dollarilise instrumendi hinnasamm on 1¢, on kogu orderiraamatus vaid 99 võimalikku hinnataset. Keskmise likviidsusega turul võib parimal hinnatasemel olla paarsada lepingut ja siis tuleb hinnalünk.
Siin on hetktõmmis majandusandmete turust, mida jälgisime, YES-i poolelt, umbes 30 tundi enne lahendamist:
| Tase | Maht (lepingud) | Ostmise kumulatiivne maksumus |
|---|---|---|
| 42¢ | 310 | 310 @ keskmiselt 42.0¢ |
| 43¢ | 85 | 395 @ keskmiselt 42.2¢ |
| 45¢ | 140 | 535 @ keskmiselt 42.9¢ |
| 49¢ | 600 | 1,135 @ keskmiselt 46.1¢ |
1,000 lepinguga order — viiesaja dollari suurune risk, krüptomaailmas ümardamisviga — nihutab tegelikku hinda neli senti. Neli senti on tasust rohkem kui kaks korda suurem. Siia ei sobi ükski sujuv funktsioon: orderiraamatut tuleb läbida taseme kaupa, muidu mõtled tulemuse välja. Eemaldasime selle varaklassi jaoks ruutjuure mudeli ja kirjutasime sõnasõnalise orderiraamatu läbija, mis on aeglasem ja õige.
Mingil hetkel tabasin end pahandamas, et need turud on „liiga väikesed, et tähtsust omada”. Need on väikesed, sest hinnatakse ühtainsat päriselu küsimust, millel on tähtaeg, ja vaid teatud arv inimesi avaldab arvamust USA esmaste töötu abiraha taotluste kohta kolmapäeval. Suurus ongi turg. Selle üle kurtmine on nagu kurtmine, et pokkerilauas on ainult üheksa kohta.
4. päev: päev, mil omakapitalikõver oli imeilus
Sharpe 4.1 1,400 turul. Sujuv. Iga teadlase kõhus peaks selle peale õõnes tunne tekkima. Minul tekkis, lõpuks, umbes nelikümmend minutit pärast seda, kui olin kõvera juba ekraanipildina salvestanud.
Viga oli resämplijas. Mittelikviidsete turgude hinnaajalugu tagastatakse ebaregulaarsete ajatemplitega, seega indekseerisime selle ümber ühtlasele tunnipõhisele ruudustikule. Iga arhiveeritud seeria viimane punkt on arveldusväärtus 1.00 või 0.00. Kasutasime lähima naabri täitmist ilma suunapiiranguta, nii et iga turu puhul, mille viimane tehing toimus tunde enne lahendamist, levis arveldusväärtus lünga kaudu tagasi. Mudel luges tänases reas homset vastust just nende mittelikviidsete turgude kohta, kus sai sügavuspiiranguid ületamata positsiooni suurendada.
Lähima naabri täitmine sobib pideva instrumendi puhul. Instrumendi puhul, mille viimane vaatlus on tegelik vastus, muutub see tulevikku vaatamise masinaks. Nüüd kontrollime, et iga täitmine toimuks ainult edasi ning et arveldusrida oleks märgistatud ja tunnuste arvutamisest välja jäetud. See kontroll on üheksa rida pikk ja kõige väärtuslikum kood, mille sel nädalal kirjutasime.
5.–6. päev: 1,412 turgu, umbes 180 panust
Valimi suurus on ennustusturgudel lõks, millel on sõbralik nägu. Lahendad 1,412 turgu, tunned, et sul on 1,412 vaatlust, ja arvutad vastava t-statistiku. Aga neliteist NFL-i mängu samal pühapäeval jagavad ilmasüsteemi, vigastuste raportite avaldamist ja ühist panustajate voogu. Viiskümmend üks osariigipõhist valimisturgu jagavad üht riiklikku meeleolumuutust. „Kas X juhtub 31. märtsiks” ja „kas X juhtub 30. juuniks” tähistavad sama panust eri aegumistähtaegadega ning need lahendatakse koos.
Rühmitasime turud aluseks oleva sündmuse allika ja lahendamiskuupäeva järgi ning saime efektiivseks sõltumatute vaatluste arvuks umbes 180. See ei ole piisav, et eristada tegelikku eelist mürast nende mõjude suuruste juures, mida uurisime. Ükski turupõhine bootstrap seda ei paranda, sest bootstrap peab valimisse võtma klastreid, mitte ridu. Kui selle valesti teed, paisub statistiline olulisus vaikselt kahe- või kolmekordseks.
7. päev: ka lahendamine on tõenäosusjaotus
Asjad, mida me üldse ei modelleerinud ja mille avastasime raskel teel:
- Enneaegne lahendamine. Turg „31. detsembriks” võib laheneda 4. augustil, kui sündmus tegelikult aset leiab. Kapital vabaneb varem ning hoidmisaeg polnud kunagi see, mida lepingu nimi lubas oletada.
- Vaidlused. Orakli abil lahendatavatel turgudel on vaidlustamisaken. Positsioon võib pärast sündmust päevadeks teadmatusse jääda ning vähestel juhtudel pöördub tulemus ilmselgena näivast tõlgendusest vastupidiseks.
- Tühistamised. Mitmetimõistetavate algandmete tõttu turg tühistatakse ja kõigile makstakse raha tagasi. Meie valimis puudutas see alla 1% turgudest, kuid need koonduvad just neile mitmetimõistetavatele küsimustele, mille puhul mudel leiab valesti hinnatud turu.
- Kapitali kinnijäämine. 3-punktiline eelis, mis realiseerub 90 päeva jooksul, ja 3-punktiline eelis, mis realiseerub 6 tunniga, ei ole võrreldavad. Tagasitestija, mis näitab kogueelist kapitali ajakulu arvestamata, eelistab alati aeglast varianti.
Lisaisime simulaatorisse hoidmisaja kulu ja lahendamiskuupäeva kõikumise. Kumbki pole täpne. Mõlemad on paremad kui vaikimisi eeldus, et lahendamine toimub kindlalt ja täpselt märgitud kuupäeval.
8. päev: mida jätaksime vahele ja mida teeksime kõigepealt
- Jätke tootluspõhine karkass üldse vahele. Ärge kohandage volatiilsuse sihtimise riskikihti instrumendile, mille väljamakse on lõplik. Kirjutage panuse suuruse kiht, mis lähtub tõenäosusest ja panuse summast. Kaotasime kaks päeva vana kihi sobitamisega.
- Ehitage tasufunktsioon enne strateegiat. Joonistage iga kauplemiskoha kohta, kus plaanite kaubelda, nulli jõudmise eelise kõver ja kinnitage see kauplemislaua kohale. Nii sureb umbes pool ideedest enne, kui need jõuavad tagasitestini.
- Läbige orderiraamat esimesest päevast alates. Pidevalt turult üle võetud parameetriline hinnamõju mudel on vale viisil, mis meelitab teid ekslikult heasse usku.
- Rühmitage enne loendamist. Otsustage efektiivse valimi suuruse rühmitamise võti samal ajal universumi valimisega, mitte pärast seda, kui olete leidnud Sharpe'i, mis teile meeldib.
- Kontrollige täitmise suunda. Üks rida iga ühendamise kohta. Kui seeria lõpeb tegeliku vastusega, käsitlege tagasisuunas täitmist juba definitsiooni järgi veana, mitte millegina, mida loodate koodi ülevaatusel märgata.
Need kaheksa päeva tasusid end ära peamiselt sellepärast, et ennustusturud võtavad ära mitmetimõistetavuse, mis muudab krüptoturgude tagasitestides enese eksitamise nii lihtsaks. Pole rahastamismäära, mida käeviipega kõrvale heita, ega vaieldavat mark-hinna konventsiooni. On vaid küsimus, tähtaeg ja vastus. Kui tagasitest siin eksib, saab täpselt näidata, milles viga seisneb.
← Kõik postitused


