2026 m. rugpjūčio 31 d. · prognozavimo rinkos

Kas sugenda atliekant prognozavimo rinkų istorinius testus: aštuonių dienų dienoraštis

Kas sugenda atliekant prognozavimo rinkų istorinius testus: aštuonių dienų dienoraštis

Prognozavimo rinkos atrodo kaip lengviausias dalykas pasaulyje istoriniam testavimui. Kaina svyruoja nuo 0 iki 1. Išmoka – doleris arba nieko. Nėra sverto, finansavimo, bazės ar neterminuotų apsikeitimo sandorių keistenybių ties 00:00 UTC. Jau turėjome istorinį testavimo įrankį, pritaikytą kriptovaliutų neterminuotiems sandoriams su mokesčiais, finansavimu ir rinkos poveikiu, tad planavome per dvi dienas jį pritaikyti ir imtis strategijų kūrimo.

Užtrukome aštuonias. Štai užrašai, apytikriai chronologine tvarka, įskaitant dieną, kai nuosavo kapitalo kreivė atrodė neįtikėtinai gerai. Ir buvo neįtikėtinai gera.

1 diena: adapteris, kuris turėjo būti paprastas

Pradinis susiejimas buvo vienas su vienu ir atrodė tvarkingas. Rinka yra instrumentas. YES kaina yra kaina. YES pirkimas reiškia ilgą poziciją, NO pirkimas – trumpą. Rezultato nustatymas yra priverstinis uždarymas ties 1.00 arba 0.00. Įkeliame valandines kainų sekas į tą patį įvykių ciklą – baigta.

Toks susiejimas atlaikė maždaug devyniasdešimt minučių sąlyčio su tikrais duomenimis. Pirmiausia žlugo grąžų seka. Visas mūsų rizikos sluoksnis – pozicijų dydžio nustatymas, kintamumo taikymas, Sharpe ataskaitos – rėmėsi tęstinio instrumento logaritminėmis grąžomis. Rinkos, kurios kaina nukrenta nuo 0.04 iki 0.00, logaritminė grąža neapibrėžta, o nuostolis aiškus ir visiškas. Be to, rinka, kurios kaina 0.04 likus trims dienoms iki rezultato nustatymo, yra visiškai kitoks objektas nei rinka, kurios kaina 0.04 likus keturioms minutėms, nors abiejose eilutėse nurodyta 0.04.

Galiausiai visą seką parametrizavome pagal laiką iki rezultato nustatymo, o ne pagal sieninį laikrodį, ir PnL laikėme galutiniu, o ne apskaitomu. Tai buvo teisingas sprendimas, bet dėl jo teko perrašyti visą nuo šių duomenų priklausančią ataskaitų teikimo programinę įrangą.

2 diena: mokesčio formulė yra pati strategija

Kalshi prekybos mokestis nėra baziniais punktais išreikštas atskaitymas nuo kainos. Jis priklauso nuo kainos kvadratu: apytikriai 0.07 × contracts × P × (1−P), o pavedimo lygiu apvalinamas centų tikslumu į didesnę pusę. Vadinasi, mokestis didžiausias būtent ten, kur monetos metimo tikimybės rinka įdomiausia, o kraštinėse reikšmėse beveik nieko nekainuoja.

KainaMokestis už kontraktąReikalingas pranašumas (tikimybės punktais)Mokestis nuo statymo
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%

Trečiame stulpelyje nurodyta svarbiausia reikšmė: kad nenuostolingai pirktumėte už 50¢ ir laikytumėte iki rezultato nustatymo, jūsų tikimybės įvertis turi 1.75 punkto viršyti rinkos įvertį. Ne 1.75 procento santykinai, o absoliučiai. Jei poziciją uždarote anksčiau, užuot laikę iki rezultato, mokestį sumokate du kartus, be to, dar prisideda kainų skirtumas.

3.5%vienos krypties mokestis ties 50¢, nuo statymo sumos
1.75pptikimybės pranašumas, reikalingas nenuostolingumui pasiekti
1rezultato nustatymas vienam instrumentui per visą jo gyvavimo laiką

Polymarket CLOB istoriškai taikė visai kitokius mokesčius – pats sandoris beveik nieko nekainavo, o visos sąnaudos persikėlė į kainų skirtumą ir gylį. Taigi ta pati strategijos logika skirtingose platformose turi visiškai skirtingą ekonomiką, o bet koks palyginimas tarp platformų, kuriame taikomas vienas mokesčių modelis, yra išgalvotas. Dabar kiekvienai platformai naudojame atskirą mokesčio skaičiavimo funkciją, o ne vieną skaliarinę reikšmę.

Jei perskaitysite tik vieną prognozavimo rinkų istorinio testo ataskaitos eilutę, tebūnie tai mokesčio eilutė, išreikšta tikimybės punktais. Strategija, kurios prognozavimo pranašumas 50¢ rinkose esą siekia 1.2 punkto, Kalshi platformoje nuostolinga dar neįskaičiavus nė vienos kitos sąnaudos. Šis faktas turi būti matomas pirmame puslapyje, o ne paliktas skaitytojui pačiam apskaičiuoti.

3 diena: pavedimų knyga laiptuota ir negili

Mūsų rinkos poveikio modelis buvo kvadratinės šaknies funkcija, kalibruota pagal BTC neterminuotų sandorių pavedimų knygas. Forma netinkama. Kai 1 USD instrumento kainos žingsnis yra 1¢, visoje pavedimų knygoje tėra 99 galimi kainų lygiai, o vidutinio likvidumo rinkoje aukščiausiame lygyje gali būti keli šimtai laukiančių kontraktų, po to – tarpas.

Štai mūsų stebėtos ekonominių duomenų rinkos momentinė nuotrauka, YES pusė, likus maždaug 30 valandų iki rezultato nustatymo:

LygisDydis (kontraktai)Kaupiamoji pirkimo kaina
42¢310310 @ vid. 42.0¢
43¢85395 @ vid. 42.2¢
45¢140535 @ vid. 42.9¢
49¢6001,135 @ vid. 46.1¢

1,000 kontraktų pavedimas – penkių šimtų dolerių rizika, kriptovaliutų rinkoje vos pastebimas dydis – pakeičia faktinę kainą keturiais centais. Keturi centai yra daugiau nei dvigubas mokestis. Čia nėra jokios glotnios funkcijos, kurią būtų galima pritaikyti: turite pereiti knygą lygis po lygio, antraip tiesiog išsigalvojate. Pašalinome sqrt modelį iš šios turto klasės ir parašėme tiesioginį knygos perėjimo algoritmą – jis lėtesnis, bet teisingas.

Kažkuriuo metu pagavau save susierzinusį, kad šios rinkos „per mažos, kad būtų svarbios“. Jos mažos todėl, kad jose įkainojamas vienas realaus pasaulio klausimas su nustatytu terminu, o žmonių, turinčių nuomonę apie JAV pirminių bedarbio pašalpų prašymų skaičių trečiadienį, tėra ribotas kiekis. Dydis ir yra rinka. Skųstis dėl to – tas pats, kas skųstis, jog prie pokerio stalo telpa tik devyni žmonės.

4 diena: diena, kai nuosavo kapitalo kreivė buvo nuostabi

Sharpe 4.1 iš 1,400 rinkų. Tolydi kreivė. Kiekvienam tyrėjui nuo tokio rezultato turėtų suspausti skrandį. Man suspaudė, tik po gerų keturiasdešimties minučių, kai jau buvau padaręs ekrano nuotrauką.

Klaida buvo perpavyzdžių ėmimo funkcijoje. Nelikvidžių rinkų kainų istorija pateikiama su netolygiais laiko žymomis, tad indeksus pertvarkėme į vienodą valandinį tinklelį. Kiekvienos archyvuotos sekos paskutinis taškas yra atsiskaitymo vertė – 1.00 arba 0.00. Perindeksuodami naudojome artimiausio kaimyno užpildymą be krypties apribojimo, todėl bet kurioje rinkoje, kurioje paskutinis sandoris įvyko likus valandoms iki rezultato nustatymo, atsiskaitymo vertė pasklido atgal per visą tarpą. Modelis skaitė rytojaus atsakymą šiandienos eilutėje būtent tose nelikvidžiose rinkose, kuriose galėjo padidinti poziciją neatsitrenkdamas į gylio ribas.

Artimiausio kaimyno užpildymas tinka tęstiniam instrumentui. Tačiau instrumentui, kurio paskutinis stebėjimas yra tikroji baigtis, tai tampa ateities informacijos nutekėjimo mechanizmu. Dabar užtikriname, kad visi trūkstami duomenys būtų pildomi tik į priekį, o atsiskaitymo eilutė būtų pažymėta ir pašalinta iš bet kokių požymių skaičiavimų. Šis patikrinimas užima devynias kodo eilutes ir yra vertingiausias darbas, kurį atlikome visą savaitę.

5–6 dienos: 1,412 rinkų, maždaug 180 statymų

Prognozavimo rinkų imties dydis – spąstai draugišku veidu. Išsprendžiate 1,412 rinkų, atrodo, kad turite 1,412 stebėjimų, ir atitinkamai apskaičiuojate t statistiką. Tačiau keturiolika NFL rungtynių tą patį sekmadienį priklauso nuo bendros orų sistemos, traumuotų žaidėjų ataskaitų paskelbimo ir bendrų statytojų srautų. Penkiasdešimt viena valstijų rinkimų rinka priklauso nuo to paties nacionalinio rinkėjų nuotaikų pokyčio. „Ar X įvyks iki kovo 31 d.“ ir „Ar X įvyks iki birželio 30 d.“ yra tas pats statymas su skirtingais galiojimo terminais, ir abi rinkos išsisprendžia kartu.

Suskirstėme rinkas pagal įvykio šaltinį ir rezultato nustatymo datą, ir gavome maždaug 180 nepriklausomų stebėjimų. To nepakanka, kad esant mūsų nagrinėjamam poveikio dydžiui būtų galima atskirti tikrą pranašumą nuo triukšmo. To neištaisys ir kiekvienos rinkos atskiras pakartotinis ėminių sudarymas, nes pakartotinai reikia imti grupes, o ne eilutes. Suklydus statistinis reikšmingumas tyliai išpučiamas du ar tris kartus.

7 diena: rezultato nustatymas irgi yra tikimybių skirstinys

Dalykai, kurių apskritai nemodeliavome ir apie kuriuos sužinojome sunkiuoju būdu:

Į simuliatorių įtraukėme laikymo sąnaudų dėmenį ir atsiskaitymo datos svyravimą. Nei vienas, nei kitas nėra tikslus. Abu geriau už numanomą prielaidą, kad rezultatas neabejotinai nustatomas būtent nurodytą dieną.

8 diena: ko nedarytume ir nuo ko pradėtume

  1. Visiškai atsisakykite grąža pagrįstos sistemos. Nebandykite kintamumą taikančio rizikos sluoksnio pritaikyti instrumentui, kurio išmoka galutinė. Sukurkite statymo dydžio nustatymo sluoksnį, kalbantį tikimybėmis ir statymo suma. Praradome dvi dienas bandydami pritaikyti senąjį.
  2. Mokesčio funkciją kurkite prieš strategiją. Apskaičiuokite nenuostolingumo pranašumo kreivę kiekvienai platformai, kurioje ketinate prekiauti, ir pakabinkite ją virš darbo stalo. Taip atmetama maždaug pusė idėjų dar prieš joms kainuojant istorinio testo paleidimą.
  3. Nuo pat pirmos dienos eikite per pavedimų knygą. Bet kuris iš tęstinės rinkos perkeltas parametrinis rinkos poveikio modelis bus klaidingas taip, kad jums būtų palankus.
  4. Pirma grupuokite, tada skaičiuokite. Efektyvios imties dydžio grupavimo raktą pasirinkite kartu su investavimo visumos nustatymu, o ne tik po to, kai gausite jums patinkantį Sharpe rodiklį.
  5. Patikrinkite užpildymo kryptį. Po vieną eilutę kiekvienai jungčiai. Jei seka baigiasi tikrąja baigtimi, laikykite užpildymą atgal klaida pagal apibrėžimą, o ne kažkuo, ką pastebėsite peržiūros metu.

Aštuonios dienos buvo to vertos, daugiausia todėl, kad prognozavimo rinkos pašalina dviprasmybes, dėl kurių kriptovaliutų istoriniuose testuose taip lengva save apgauti. Nėra finansavimo normos, kurią būtų galima užglaistyti, nėra žymėjimo pagal rinkos kainą konvencijos, dėl kurios tektų ginčytis. Tik klausimas, terminas ir atsakymas. Kai istorinis testas čia klaidingas, galima tiksliai parodyti, kur.

prognozavimo rinkosistoriniai testaimokesčiairinkos mikrostruktūraduomenų inžinerija
← Visi įrašai