Prognožu tirgus šķiet visvieglāk atpakaļtestējamais instruments pasaulē. Cena ir robežās no [0, 1]. Izmaksa ir dolārs vai nekas. Nav kredītpleca, finansēšanas maksas, bāzes starpības un pastāvīgo mijmaiņas līgumu dīvainību plkst. 00:00 UTC. Mums jau bija atpakaļtestētājs, kas apstrādāja kripto perpetual līgumus, komisijas maksas, finansēšanu un ietekmi uz cenu, un plāns bija divās dienās to pielāgot un pēc tam sākt ģenerēt stratēģijas.
Pagāja astoņas dienas. Lūk, darba žurnāls aptuvenā secībā, tostarp diena, kad kapitāla līkne izskatījās neticami — un arī bija neticama.
1. diena: adapteris, kam vajadzēja būt pavisam vienkāršam
Sākotnējā atbilstība bija viens pret vienu un šķita vienkārša. Tirgus ir instruments. YES cena ir cena. YES pirkšana ir garā pozīcija, NO pirkšana — īsā. Rezultāta noteikšana ir piespiedu pozīcijas slēgšana par 1.00 vai 0.00. Ievadām stundas cenu laikrindu tajā pašā notikumu ciklā, un gatavs.
Šī atbilstība izturēja apmēram deviņdesmit minūtes saskarsmē ar reāliem datiem. Pirmais, kas sabruka, bija ienesīguma laikrinda. Viss mūsu riska slānis — pozīciju lieluma noteikšana, svārstīguma mērķēšana, Sharpe pārskati — balstījās uz nepārtraukta instrumenta logaritmiskajiem ienesīgumiem. Tirgum, kura cena krītas no 0.04 līdz 0.00, logaritmiskā ienesīguma vērtība nav definēta, toties kopējais zaudējums ir. Turklāt tirgus, kura cena ir 0.04 trīs dienas pirms rezultāta noteikšanas, ir pavisam cits objekts nekā tirgus ar cenu 0.04 četras minūtes pirms tā, lai gan abās rindās rakstīts 0.04.
Beigās pārveidojām visu laikrindu atbilstoši laikam līdz rezultāta noteikšanai, nevis sienas pulksteņa laikam, un PnL uzskatījām par gala rezultātu, nevis pārvērtējām pēc tirgus vērtības. Tas bija pareizais lēmums, taču padarīja nederīgu katru pakārtoto pārskatu koda daļu.
2. diena: komisijas maksas formula ir pati stratēģija
Kalshi tirdzniecības komisija nav atskaitījums bāzes punktos. Tā ir kvadrātiska cenas funkcija: aptuveni 0.07 × contracts × P × (1−P), un ordera līmenī to noapaļo uz augšu līdz centam. Tātad komisija ir vislielākā tieši tur, kur monētas mešanas tirgus ir visinteresantākais, bet cenas galējās zonās — gandrīz nekāda.
| Cena | Komisija par līgumu | Nepieciešamā priekšrocība (varbūtības punkti) | Komisija % no likmes |
|---|---|---|---|
| 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% |
Trešā kolonna parāda būtisko: lai nopirktu par 50¢ un turētu līdz norēķinam, jūsu varbūtības novērtējumam jābūt par 1.75 punktiem augstākam nekā tirgus novērtējumam, lai sasniegtu bezzaudējuma punktu. Nevis par 1.75 procentiem relatīvā izteiksmē. Tie ir absolūti punkti. Ja pozīciju slēdzat pirms norēķina, nevis turat līdz tam, komisija jāmaksā divreiz, turklāt jārēķinās ar starpību.
Polymarket CLOB komisiju profils vēsturiski bijis pavisam citāds — darījumam pašam komisija ir gandrīz nulle, tāpēc visas izmaksas veido starpība un dziļums. Tādējādi vienas un tās pašas stratēģijas ekonomika būtiski atšķiras atkarībā no platformas, un jebkurš platformu salīdzinājums ar vienu komisijas modeli ir izdomājums. Tagad izmantojam katrai platformai atsevišķu komisijas funkciju, nevis vienu skalāru vērtību.
Ja prognožu tirgus atpakaļtesta pārskatā izlasāt tikai vienu rindu, izvēlieties komisiju varbūtības punktos. Stratēģija, kurai apgalvotā prognozēšanas priekšrocība 50¢ tirgos ir 1.2 punkti, Kalshi platformā jau ir zaudējoša, vēl pirms pieskaitītas jebkādas citas izmaksas. Šim faktam jābūt redzamam pirmajā lapā, nevis lasītājam pašam tas jāatvasina.
3. diena: orderu grāmata ir pakāpienveida un sekla
Mūsu ietekmes uz cenu modelis bija kvadrātsaknes funkcija, kas kalibrēta BTC perpetual līgumu orderu grāmatām. Tā ir nepareiza forma. Instrumentam, kura vērtība ir $1 un cenas solis — 1¢, visā orderu grāmatā ir tikai 99 iespējamie cenu līmeņi. Vidēji likvīdā tirgū augšējā līmenī var būt daži simti līgumu, bet pēc tam — tukšums.
Lūk, momentuzņēmums no ekonomikas datu tirgus, ko analizējām: YES puse, aptuveni 30 stundas pirms norēķina.
| Līmenis | Apjoms (līgumi) | Kopējās pirkšanas izmaksas |
|---|---|---|
| 42¢ | 310 | 310 @ vid. 42.0¢ |
| 43¢ | 85 | 395 @ vid. 42.2¢ |
| 45¢ | 140 | 535 @ vid. 42.9¢ |
| 49¢ | 600 | 1,135 @ vid. 46.1¢ |
Orderis par 1,000 līgumiem — pieci simti dolāru riska, kripto tirgū noapaļošanas kļūda — maina efektīvo cenu par četriem centiem. Četri centi ir vairāk nekā divreiz lielāka summa par komisiju. Te neder gluda funkcija; orderu grāmata jāizstaigā pa līmeņiem, citādi mēs vienkārši izdomājam rezultātu. Šai aktīvu klasei svītrojām kvadrātsaknes modeli un uzrakstījām tiešu orderu grāmatas izstaigāšanas algoritmu. Tas ir lēnāks, bet pareizs.
Kādā brīdī pieķēru sevi pie domas, ka mani kaitina tas, ka šie tirgi ir "pārāk mazi, lai būtu svarīgi". Tie ir mazi tāpēc, ka tiek vērtēts viens konkrēts reālās pasaules jautājums ar termiņu, un trešdienā par ASV sākotnējo bezdarba pabalstu pieprasījumu skaitu viedoklis ir tikai ierobežotam cilvēku lokam. Izmērs ir šis tirgus. Sūdzēties par to ir tāpat kā sūdzēties, ka pie pokera galda ir tikai deviņas vietas.
4. diena: diena, kad kapitāla līkne bija skaista
Sharpe rādītājs 4.1 1,400 tirgos. Gluda līkne. Ikvienam pētniekam, to redzot, vajadzētu savilkties vēderam. Manējais savilkās, tikai apmēram četrdesmit minūtes pēc tam, kad jau biju uzņēmis ekrānuzņēmumu.
Kļūda bija atkārtotas izlases algoritmā. Nelikvīdiem tirgiem cenu vēsture tiek atgriezta ar neregulāriem laika zīmogiem, tāpēc pārveidojām to vienmērīgā stundas režģī. Katras arhivētās laikrindas pēdējais punkts ir norēķina vērtība — 1.00 vai 0.00. Atkārtotajā indeksēšanā izmantojām tuvākā kaimiņa aizpildi bez virziena ierobežojuma, tāpēc tirgiem, kuros pēdējais darījums notika vairākas stundas pirms norēķina, norēķina vērtība izplatījās atpakaļ pāri visam laika intervālam. Modelis šodienas rindā nolasīja rītdienas atbildi tieši tajos nelikvīdajos tirgos, kuros varēja palielināt pozīciju, nepārsniedzot dziļuma ierobežojumus.
Tuvākā kaimiņa aizpilde ir piemērota nepārtrauktam instrumentam. Instrumentam, kura pēdējais novērojums ir patiesā atbilde, tā kļūst par skatīšanos nākotnē. Tagad pārbaudām ar assert, ka visas aizpildes notiek tikai uz priekšu un ka norēķina rinda ir marķēta un izslēgta no jebkādas pazīmju aprēķināšanas. Šī pārbaude ir deviņas koda rindas gara, un tas ir vērtīgākais kods, ko uzrakstījām visas nedēļas laikā.
5.–6. diena: 1,412 tirgi, apmēram 180 likmju
Izlases apjoms prognožu tirgos ir slazds ar draudzīgu seju. Jūs atrisināt 1,412 tirgus, domājat, ka jums ir 1,412 novērojumi, un attiecīgi aprēķināt t-statistiku. Taču četrpadsmit NFL spēlēm vienā svētdienā ir kopīga laikapstākļu sistēma, traumu ziņojumu publiskošana un likmju plūsma. Piecdesmit vienā štatu vēlēšanu tirgū ietekmi rada vienas un tās pašas valsts mēroga svārstības. "Vai X notiks līdz 31. martam" un "Vai X notiks līdz 30. jūnijam" ir viena likme ar atšķirīgu termiņu, un abi tirgi tiek atrisināti kopā.
Grupējām tirgus pēc pamatā esošā notikuma avota un norēķina datuma. Efektīvais neatkarīgo novērojumu skaits izrādījās ap 180. Tas nav pietiekami, lai aplūkotajos efektu lielumos atšķirtu īstu priekšrocību no trokšņa. To neizlabos arī bootstrap katram tirgum atsevišķi, jo atkārtoti jāizlasa kopas, nevis atsevišķas rindas. Šāda kļūda nemanāmi palielina statistisko nozīmīgumu divas vai trīs reizes.
7. diena: arī rezultāta noteikšanas laiks ir varbūtības sadalījums
Lūk, kas nebija modelēts un ko atklājām smagā ceļā:
- Priekšlaicīgs norēķins. Tirgu ar termiņu "līdz 31. decembrim" var atrisināt jau 4. augustā, ja notikums ir iestājies. Kapitāls atbrīvojas agrāk, un jūsu turēšanas periods nekad neatbilda tam, ko lika domāt līguma nosaukums.
- Strīdi. Ar orākulu atrisinātiem tirgiem ir apstrīdēšanas periods. Pozīcija var palikt nenoteiktībā vairākas dienas pēc notikuma, un atsevišķos gadījumos rezultāts mainās pretēji acīmredzamajai interpretācijai.
- Atcelšana. Ja pirmdatu avoti ir neviennozīmīgi, tirgus tiek atcelts un visiem atmaksā likmes. Mūsu izlasē tādi bija mazāk nekā 1% tirgu, taču tieši šādos neskaidros jautājumos modelis mēdz saskatīt nepareizi novērtētu cenu.
- Kapitāla iesaldēšana. 3 punktu priekšrocība, kas realizēta 90 dienās, un 3 punktu priekšrocība, kas realizēta 6 stundās, nav salīdzināmas. Atpakaļtests, kurā kopējā priekšrocība tiek uzrādīta bez kapitāla laika saucēja, vienmēr dos priekšroku lēnajam variantam.
Simulatoram pievienojām turēšanas izmaksu komponenti un rezultāta noteikšanas datuma nejaušu nobīdi. Neviens no tiem nav precīzs, taču abi ir labāki par netiešu pieņēmumu, ka norēķins noteikti notiek tieši norādītajā datumā.
8. diena: ko izlaistu un ar ko sāktu
- Pilnībā izlaidiet ienesīgumā balstīto pamatu. Nemēģiniet pielāgot svārstīguma mērķēšanas riska slāni instrumentam ar gala izmaksu. Rakstiet likmes lieluma noteikšanas slāni, kas izmanto varbūtības un likmes apjomu. Mēs zaudējām divas dienas, mēģinot pielāgot veco risinājumu.
- Vispirms izveidojiet komisijas maksas funkciju, pēc tam — stratēģiju. Izdrukājiet bezzaudējuma priekšrocības līkni katrai platformai, kurā plānojat tirgoties, un piespraudiet to redzamā vietā. Tā atmet apmēram pusi ideju, pirms tām iztērējat atpakaļtesta palaišanas resursus.
- Jau no pirmās dienas izstaigājiet orderu grāmatu. Jebkurš no nepārtraukta tirgus pārņemts parametriskais ietekmes modelis būs aplams un glaimos jūsu rezultātiem.
- Pirms skaitīšanas sagrupējiet. Izlemiet, pēc kādas atslēgas grupēsiet datus efektīvā izlases apjoma aprēķinam, vienlaikus izvēloties tirgu kopu, nevis tikai pēc tam, kad būsiet ieguvuši sev tīkamu Sharpe rādītāju.
- Pārbaudiet aizpildes virzienu ar assert. Katrā savienojumā pietiek ar vienu pārbaudes rindu. Ja laikrinda beidzas ar patieso atbildi, pēc konstrukcijas uzskatiet aizpildi atpakaļ laikā par kļūdu, nevis gaidiet, ka to pamanīsiet pārskatā.
Šīs astoņas dienas bija tā vērtas, galvenokārt tāpēc, ka prognožu tirgi noņem neskaidrību, kas kripto atpakaļtestos ļauj tik viegli sevi piemānīt. Nav finansēšanas likmes, ko varētu atrunāt, nav marķēšanas cenas principu, par ko strīdēties. Ir tikai jautājums, termiņš un atbilde. Ja atpakaļtests te kļūdās, var skaidri parādīt, kur tieši.
← Visi raksti


