31. avgust 2026 · napovedni trgi

Kaj gre narobe pri testiranju napovednih trgov za nazaj: dnevnik osmih dni

Kaj gre narobe pri testiranju napovednih trgov za nazaj: dnevnik osmih dni

Napovedne trge je videti najlažje testirati za nazaj. Cena je v razponu [0, 1]. Izplačilo je dolar ali nič. Brez finančnega vzvoda, financiranja, osnove in nenavadnosti trajnih zamenjav ob 00:00 UTC. Imeli smo orodje za testiranje za nazaj, ki je že obvladovalo kripto trajne pogodbe s provizijami, financiranjem in tržnim vplivom, načrt pa je bil, da mu namenimo 2 dni za prilagoditev in nato začnemo ustvarjati strategije.

Trajalo je 8 dni. Tukaj je dnevnik, približno po vrsti, vključno z dnevom, ko je bila krivulja kapitala videti neverjetno — in tudi je bila.

1. dan: adapter, ki bi moral biti trivialen

Začetna preslikava je bila ena na ena in se je zdela čista. Trg je instrument. Cena YES je cena. Nakup YES pomeni dolgo pozicijo, nakup NO pa kratko. Razrešitev je prisilno zaprtje pri 1.00 ali 0.00. Podamo urno cenovno časovno vrsto v isto zanko dogodkov in končano.

Ta preslikava je prestala približno 90 minut stika z resničnimi podatki. Najprej je odpovedala časovna vrsta donosov. Celotna naša plast za tveganje — določanje velikosti pozicije, ciljanje volatilnosti in poročanje Sharpe — je predpostavljala logaritemske donose instrumenta, ki traja. Trg, ki pade z 0.04 na 0.00, ima nedoločen logaritemski donos, izguba pa je jasno določena in popolna. Poleg tega je trg pri 0.04 3 dni pred razrešitvijo povsem drugačen objekt kot trg pri 0.04 4 minute pred njo, čeprav v obeh vrsticah piše 0.04.

Na koncu smo celotno časovno vrsto preparametrizirali glede na čas do razrešitve namesto glede na uro in PnL obravnavali kot končen, ne pa sproti vrednoten. To je bila prava odločitev, a zaradi nje je postala neuporabna vsa nadaljnja koda za poročanje.

2. dan: formula za provizijo je strategija

Na Kalshi provizija za trgovanje ni odbitek v bazičnih točkah. Odvisna je od kvadrata cene: približno 0.07 × contracts × P × (1−P), pri čemer se na ravni naročila zaokroži navzgor na cent. To pomeni, da je provizija največja prav tam, kjer je trg z možnostjo 50/50 najbolj zanimiv, v skrajnih vrednostih pa je skoraj zastonj.

CenaProvizija na pogodboPotrebna prednost (točke verjetnosti)Provizija kot % vložka
5¢0.33¢0.336.7%
10¢0.63¢0.636.3%
25¢1.31¢1.315.3%
50¢1.75¢1.753.5%
75¢1.31¢1.311.8%
90¢0.63¢0.630.7%
95¢0.33¢0.330.35%

Tretji stolpec pove bistvo: da bi pri nakupu za 50¢ in držanju do razrešitve dosegli točko preloma, mora vaša ocena verjetnosti za 1.75 točke preseči oceno trga. Ne za relativnih 1.75 odstotka, temveč za 1.75 odstotne točke. Če pozicijo zaprete pred razrešitvijo, namesto da jo držite, provizijo plačate dvakrat, poleg tega pa še razpon.

3.5%enosmerna provizija pri 50¢ kot delež vložka
1.75ppprednost v verjetnosti za dosego točke preloma
1razrešitev na instrument v celotnem obdobju

CLOB platforme Polymarket je v preteklosti imel povsem drugačno strukturo provizij, bližje ničelnim stroškom samega posla, zato se celoten strošek prenese na razpon in globino. Ista logika strategije ima torej na različnih platformah povsem drugačno ekonomiko, vsaka primerjava med platformami, ki uporablja en sam model provizij, pa je izmišljena. Zdaj za vsako platformo uporabljamo ločeno funkcijo za izračun provizij, ne ene same vrednosti.

Če v poročilu o testiranju napovednega trga za nazaj preberete samo eno vrstico, naj bo to vrstica o provizijah, izražena v točkah verjetnosti. Strategija, ki naj bi imela napovedno prednost 1.2 točke na trgih pri 50¢, je na Kalshi izgubljajoča še preden upoštevamo kateri koli drug strošek. To mora biti vidno že na prvi strani, bralcu pa tega ne bi smelo biti treba izračunavati.

3. dan: knjiga naročil je stopničasta in plitva

Naš model tržnega vpliva je bil funkcija kvadratnega korena, umerjena na knjigah naročil BTC trajnih pogodb. Oblika je napačna. Pri koraku 1¢ na instrumentu za $1 je v celotni knjigi le 99 možnih cenovnih ravni, srednje likviden trg pa ima lahko na vrhu nekaj sto pogodb, za njimi pa vrzel.

Tukaj je posnetek trga gospodarskih podatkov, ki smo ga vzorčili: stran YES, približno 30 ur pred razrešitvijo:

RavenVelikost (pogodbe)Skupni strošek nakupa
42¢310310 po povp. 42.0¢
43¢85395 po povp. 42.2¢
45¢140535 po povp. 42.9¢
49¢6001,135 po povp. 46.1¢

Naročilo za 1,000 pogodb — petsto dolarjev tveganja, v kriptu zaokrožitvena napaka — premakne efektivno ceno za 4 cente. To je več kot dvakrat toliko kot provizija. Tu ni gladke funkcije, ki bi jo lahko prilagodili; po knjigi se morate premikati raven za ravnjo, sicer si rezultate izmišljate. Model s kvadratnim korenom smo za ta razred sredstev izbrisali in napisali dobesedni sprehajalnik po knjigi, ki je počasnejši in pravilen.

V nekem trenutku sem se zalotil, da me jezi, ker so ti trgi »premajhni, da bi bili pomembni«. Majhni so zato, ker se vrednoti eno samo vprašanje iz resničnega sveta z rokom in ker je ob sredah le toliko ljudi, ki imajo mnenje o začetnih zahtevkih za nadomestilo za brezposelnost v ZDA. Velikost je trg. Pritoževati se nad tem je, kot bi se pritoževali, da je za poker mizo prostora le za 9 igralcev.

4. dan: dan, ko je bila krivulja kapitala čudovita

Sharpe 4.1 na 1,400 trgih. Gladko. Ob tem bi se moral vsak raziskovalec zaskrbljeno zdrzniti — in jaz sem se, nazadnje, približno 40 minut po tem, ko sem že naredil posnetek zaslona.

Napaka je bila v orodju za ponovno vzorčenje. Zgodovina cen nelikvidnih trgov se vrača z nepravilnimi časovnimi žigi, zato smo jo ponovno indeksirali na enotno urno mrežo. Zadnja točka vsake arhivirane časovne vrste je poravnalna vrednost, 1.00 ali 0.00. Pri ponovnem indeksiranju smo uporabili polnjenje z najbližjim sosedom brez omejitve smeri, zato se je pri vsakem trgu, katerega zadnji posel je bil več ur pred razrešitvijo, poravnalna vrednost razširila nazaj čez vrzel. Model je v današnji vrstici bral jutrišnji odgovor — in to ravno pri nelikvidnih trgih, kjer je lahko povečal velikost pozicije, ne da bi naletel na omejitve globine.

Polnjenje z najbližjim sosedom je v redu pri neprekinjenem instrumentu. Pri instrumentu, katerega zadnja opazovana vrednost je resnični izid, pa spremeni sistem v stroj za uhajanje prihodnjih podatkov. Zdaj preverjamo, da vsako polnjenje poteka samo naprej ter da je vrstica z razrešitvijo označena in izključena iz vseh izračunov značilk. Ta preverba je dolga 9 vrstic in je najvrednejša koda, ki smo jo napisali ta teden.

5.–6. dan: 1,412 trgov, približno 180 stav

Velikost vzorca na napovednih trgih je past s prijaznim obrazom. Razrešite 1,412 trgov, mislite, da imate 1,412 opazovanj, in temu primerno izračunate t-statistiko. Toda 14 tekem NFL iste nedelje ima skupen vremenski sistem, objavo poročila o poškodbah in skupen tok stav. Enainpetdeset volilnih trgov na ravni zveznih držav ima en skupen nacionalni premik. »Se bo X zgodil do 31. marca« in »Se bo X zgodil do 30. junija« sta ista stava z različnima datumoma izteka in razrešita se skupaj.

Trge smo razvrstili v skupine glede na osnovni vir dogodka in datum razrešitve ter dobili efektivno število neodvisnih opazovanj blizu 180. To ni dovolj za razlikovanje prave prednosti od šuma pri velikostih učinkov, ki smo jih preučevali. Tega ne odpravi niti zagonsko vzorčenje posameznih trgov, saj mora ponovno vzorčiti skupine in ne vrstic. Če se tega lotite narobe, precenite statistično značilnost za faktor 2 ali 3, ne da bi to opazili.

7. dan: tudi razrešitev je porazdelitev verjetnosti

Stvari, ki jih sploh nismo modelirali in smo jih odkrili na težji način:

V simulator smo dodali člen za strošek držanja pozicije in naključno odstopanje datuma razrešitve. Nobeno ni natančno. Oboje pa je bolje od tihe predpostavke, da se razrešitev z gotovostjo zgodi natanko na navedeni datum.

8. dan: kaj bi izpustili in kaj bi naredili najprej

  1. V celoti preskočite osnovo, ki temelji na donosih. Plasti za obvladovanje tveganja s ciljanjem volatilnosti ne prilagajajte instrumentu s končnim izplačilom. Napišite plast za določanje velikosti stave, ki uporablja verjetnost in vložek. Za prilagajanje stare smo izgubili 2 dni.
  2. Funkcijo za izračun provizije zgradite pred strategijo. Za vsako platformo, na kateri nameravate trgovati, izrišite krivuljo prednosti za dosego točke preloma in jo obesite nad delovno mizo. Tako odpade približno polovica zamisli, še preden porabite čas za testiranje za nazaj.
  3. Po knjigi se premikajte že od prvega dne. Vsak parametrični model tržnega vpliva, prenesen z neprekinjenega trga, bo napačen na način, ki vam bo laskal.
  4. Pred štetjem oblikujte skupine. Ključ za združevanje, s katerim boste določali efektivno velikost vzorca, izberite hkrati z univerzumom, ne šele potem, ko dobite Sharpe, ki vam je všeč.
  5. Dodajte preverbo smeri polnjenja. Po eno vrstico za vsak spoj. Če se časovna vrsta konča z resničnim izidom, obravnavajte polnjenje nazaj kot napako že po zasnovi, namesto da upate, da jo boste opazili pri pregledu.

Osem dni se je splačalo, predvsem zato, ker napovedni trgi odpravijo dvoumnost, zaradi katere je pri kripto testih za nazaj tako lahko preslepiti samega sebe. Ni obrestne mere za financiranje, ki bi jo lahko odpravili z zamahom roke, niti dogovora o ceni označevanja, o katerem bi se lahko prepirali. Ostanejo samo vprašanje, rok in odgovor. Ko je test za nazaj tu napačen, lahko pokažete, kje.

napovedni trgitestiranje za nazajprovizijemikrostruktura trgapodatkovno inženirstvo
← Vse objave