2026. gada 13. septembris · izpilde

Cik lielu latentumu vajadzētu pievienot atpakaļtestam? Mēs izmērījām katru savas sistēmas milisekundi

Cik lielu latentumu vajadzētu pievienot atpakaļtestam? Mēs izmērījām katru savas sistēmas milisekundi

Četri skaitļi, visi izmērīti mūsu pašu paper tirdzniecības sistēmā: viena stratēģija, 1-minute BTCUSDT perpetual signāli, 31 diena un 1,418 orderi. Mediānais laiks no sveces slēgšanas līdz ordera apstiprinājumam biržā: 195 ms. 99. procentile: 2,970 ms. Mediāna 1% minūšu ar visaugstāko realizēto svārstīgumu: 840 ms. Un latentuma konstante, kas gandrīz visu iepriekšējo gadu bija atpakaļtesta konfigurācijā: 0.

195 msmediāna no sveces slēgšanas līdz ordera apstiprinājumam
2,970 msp99, tas pats ceļš
840 msmediāna 1% minūšu ar augstāko svārstīgumu

Trīs no šiem skaitļiem ir garlaicīgi. Visi zina, ka nulle ir nepareiza, un agri vai vēlu to aizstāj ar kaut ko citu; šis kaut kas gandrīz vienmēr ir konstante, ko kāds izvēlējies pēc izjūtas. 100 ms, 250 ms, “būsim piesardzīgi — 500”. Patiesībā svarīgs ir 840, jo tas parāda, ka jūsu latentums ir atkarīgs no tirgus stāvokļa, un tie tirgus stāvokļi, kuros latentums strauji pieaug, ir tie paši, kuros signāls uzskata, ka ir atradis izdevību.

Kur aizrit 195 milisekundes

Lūk, viss budžets, katrs posms izmērīts atsevišķi ar monotonā pulksteņa laika zīmogiem katrā pārraides posmā. Serveris ir AWS instance reģionā ap-northeast-1, tajā pašā reģionā, kur atrodas biržas galapunkti; labākus rezultātus par šādu mazumtirdzniecības tipa konfigurāciju bez kopīgas izvietošanas ir grūti sasniegt.

Posms p50 p95 p99
Sveces slēgšana → saņemts WS kline-closed notikums 128 ms 402 ms 1,940 ms
Parsēšana + pazīmju stāvokļa atjaunināšana 3 ms 9 ms 28 ms
Lēmums: modeļa novērtējums + riska pārbaudes 11 ms 22 ms 60 ms
Ordera nosūtīšana → biržas apstiprinājums 47 ms 180 ms 1,100 ms
No sākuma līdz beigām (izmērīts, nevis saskaitīts) 195 ms 690 ms 2,970 ms

Pirms pievērsties interesantākajam, jāņem vērā 2 lietas. Pirmkārt, mediānas nesummējas: 128 + 3 + 11 + 47 = 189, bet izmērītā kopējā mediāna ir 195. Procentiles nav saskaitāmas, un, ja latentuma aplēsi veidosiet, summējot katra posma p99, iegūsiet 3,128 ms, lai gan patiesais p99 ir 2,970. Šoreiz pietiekami tuvu, bet, ja posmi ir korelēti pretējā virzienā, kļūda var būt milzīga. Mēriet visu ceļu.

Otrkārt, apskatiet pirmo rindu. Divas trešdaļas no mediānā budžeta tiek patērētas, gaidot, kamēr birža paziņos par sveces slēgšanu. Tā nav tīkla vai jūsu koda aizkave, un to nerada ordera maršrutēšana. Birža apkopo darījumus kline, nosaka, ka minūte ir beigusies, un nosūta notikumu. Pirms šī notikuma ir rinda, ko kopīgi izmanto visi pārējie šīs straumes abonenti.

840

Sadaliet visus šos 1,418 orderus grupās pēc tās minūtes realizētā svārstīguma, kurā radās signāls, un sadalījums atklās būtiskas atšķirības.

Signāla sveces svārstīguma grupa Orderi p50 kopējais laiks p99 kopējais laiks
Apakšējā kvartile 201 141 ms 488 ms
Vidējās 2 kvartiles 796 183 ms 1,210 ms
Augšējā kvartile 407 312 ms 2,880 ms
Augšējais 1% no visām minūtēm 14 840 ms 4,100 ms

Visi posmi pasliktinās vienlaikus, tāpēc sekas summējas. Biržas apkopošanas un pārraides rindu noslogo matching engine darbība: minūtes notikums ar 11,000 darījumiem tiek nosūtīts vēlāk nekā minūtes notikums ar 600 darījumiem. Tajā pašā laikā jūsu process apstrādā vairāk orderu grāmatas dziļuma atjauninājumu un darījumu ziņojumu, tāpēc pazīmju atjaunināšana, kas parasti aizņem 3 ms, aizņem 28 ms. REST orderu ceļš konkurē ar visu pārējo paniku, un reizēm parādās 503 kļūda un atkārtots mēģinājums, kas pats par sevi izmaksā pilnu sekundi. Mūsu izlasē korelācijas koeficients starp darījumu skaitu signāla svecē un kopējo latentumu bija 0.41. Nav milzīgs. Pietiekami liels, lai konstante nederētu.

Savukārt stratēģijas, kas iztur sākotnējo atlasi, pārsvarā tirgo izlaušanās, apvērsumus, novirzes no līdzsvara un likvidāciju kaskādes. Tās nostrādā tieši tajā grupā, kur latentums ir vislielākais. Momentum signāls, kas nostrādā tikai tad, kad minūtes laikā cena mainījusies par 40 bps, pēc savas uzbūves vienmēr tiks apkalpots ar jūsu sistēmas lēnāko versiju.

Reiz veselu dienu meklējām cēloni 3.6 sekunžu novirzei, kas parādījās aptuveni vienā un tajā pašā laikā katru nakti. Pie vainas bija logrotate: tas kopēšanas laikā saīsināja 2 GB failu tajā pašā EBS sējumā, kurā process rakstīja, un apturēja notikumu ciklu. Tirgus nebija vainīgs. Vispirms mēriet, tikai pēc tam vainojiet tirgus mikrostruktūru.

Kā tas ietekmē izpildi

Gaidīšanas laikā cena mainās. Nejaušā minūtē vidējā nelabvēlīgā kustība mūsu 195 ms mediānas laikā bija aptuveni 1.1 bps pretēji signāla virzienam. Augšējās kvartiles minūtēs pie 312 ms tā bija 5.8 bps. Augšējā 1% minūšu grupā pie 840 ms nelabvēlīgā cenas nobīde bija aptuveni 14 bps, pirms orderis vispār sasniedza orderu grāmatu.

BTC perpetual līgumos spreids tajā gandrīz neietekmē rezultātu: viens cenas solis pie 84,000 kotācijas ir 0.012 bps, tāpēc zaudējumus rada nelabvēlīga cenas nobīde, nevis spreida pārvarēšanas izmaksas. Pārvietojiet to pašu stratēģiju uz vidējas kapitalizācijas perpetual līgumu, un otrs faktors kļūst jūtams — mūsu izlasē labākā pirkšanas un pārdošanas piedāvājuma spreids pieauga no 1.4 bps mierīgās minūtēs līdz 6.2 bps augšējā kvartilē, bet dziļums šajā līmenī saruka vairāk nekā uz pusi. Jūs vienlaikus maksājat par cenas nobīdi, plašāku spreidu un mazāku dziļumu, jo to visu izraisa viens un tas pats faktors.

Kad atkārtoti izpildījām tos pašus 31 dienas datus ar katrai svecei nosacītu latentumu, nevis fiksētu 200 ms, atpakaļtesta vidējā ieejas cena pasliktinājās par 3.1 bps, un gandrīz viss šis efekts bija koncentrēts 9% darījumu. Atšķirība starp atpakaļtesta un paper tirdzniecības ieejas cenu samazinājās no 4.2 bps līdz 0.9 bps. Šīs stratēģijas Sharpe IS periodā samazinājās no 1.7 līdz 1.1 — tas ir patiesais rādītājs, kāds tas vienmēr ir bijis.

Ko tad īsti norādīt konfigurācijā

Nevis vienu skaitli. Tagad darām šādi:

  1. Ņemiet no izlases, nenosakiet fiksētu vērtību. Katra simulētā ordera latentumu atlasiet no empīriskā sadalījuma, kas nosacīts pēc attiecīgās sveces aktivitātes — pietiek ar darījumu skaitu un absolūto ienesīgumu, un abi rādītāji jau ir pieejami standarta kline. Sadali pielāgojiet katrai biržai un ordera veidam atsevišķi, pārrēķiniet reizi mēnesī.
  2. Saglabājiet sadalījuma asti. Nepielāgojiet lognormālo sadalījumu un neuzskatiet darbu par pabeigtu; p99 veido atkārtotu mēģinājumu vētras un GC pauzes, ko neviens gluds sadalījums neatspoguļo. Mēs izmantojam empīriskās kvantiles un virs p95 atkārtoti izlasītu sadalījuma asti.
  3. Latentums attiecas arī uz atcelšanu. Stop ordera aizstāšana vai hedža ordera atcelšana ir pakļauta tādai pašai aizkavei, un straujā tirgū atcelšanas pieprasījums sacenšas ar izpildi. Ja simulators atceļ orderus acumirklī, jūsu riska modelis neatbilst realitātei.
  4. Pievienojiet novecojušu signālu aizsardzību un simulējiet to. Mēs atmetam jebkuru signālu, kura svece pienākusi pirms vairāk nekā 1.5 sekundēm. Tā ir reāla darbība ar reālām izmaksām — tā nemanāmi izslēdz darījumus, un atpakaļtestam jāizslēdz tie paši darījumi.
  5. Pārkalibrējiet, salīdzinot ar paper tirdzniecību. Paper tirdzniecībā iegūst patiesos datus. Katram orderim reģistrējiet laika zīmogus visos 4 pārraides posmos un katru nedēļu salīdziniet sadalījumus ar simulatorā pieņemtajiem.

Tā pati problēma ir arī citās aktīvu klasēs. ASV akcijas: konsolidētā darījumu lente pievieno savu apkopošanas aizkavi brokera aizkavei, un ziņojumu plūsmai pieaugot, tā kļūst lielāka tā paša strukturālā iemesla dēļ. Prognožu tirgi: lielākajā daļā platformu orderus iesniedz tikai caur REST, un esam mērījuši mediānu zem 100 ms, kas izšķiršanās notikuma brīdī pieaug līdz vairākām sekundēm, kad visi pievienojas vienlaikus. Kripto opcijas: kotācija, pēc kuras nosakāt cenu, tieši tajā minūtē, kad mainījusies bāzes aktīva cena, var būt 2 sekundes veca.

Vispārējā kļūda ir uzskatīt izpildes parametru par neatkarīgu konstanti, lai gan tas ir atkarīgs no tā paša stāvokļa mainīgā, kas nosaka jūsu signālu. Komisijas maksas uzvedas prognozējami, finansēšanas maksājumi uzvedas prognozējami, bet latentums — ne. Ja no visa šī vēlaties paturēt prātā vienu skaitli, atcerieties attiecību: mūsu p99 ir piecpadsmit reizes lielāks par mediānu, un signāls nesamērīgi bieži pienāk pie p99 robežas.

Instrumentējiet visus 4 pārraides posmus. Tas prasīs vienu darba pēcpusdienu un pastāstīs par jūsu stratēģiju vairāk nekā vēl viena parametru meklēšanas nedēļa.

latentumsatpakaļtestēšanapaper tirdzniecībaizpildekripto nākotnes līgumi
← Visi raksti