Funkcija saucās enter_pack. Tam vajadzēja būt brīdinājumam. Pētniecības aģents bija uzrakstījis BTC cash-and-carry: kad perpetual tirgojās vairāk nekā astoņus bāzes punktus virs spot, pirkt spot, shortot perp, sēdēt. Funding un bāze paveiktu pārējo. Bekstests aizpildīja abas kājas vienā milisekundē, pie mid, plus vienu pieklājības tiku. Kapitāla līkne bija kāpnes. Neviens to nesauktu par aizraujošu. Tā arī bija pārdošanas arguments.
Mēs to pirmdienā pārcēlām uz papīru.
Pirmdiena: paka, kas vienmēr aizpildījās
Pirmais signāls ienāca 11:17 UTC. Bāze uz ekrāna bija 9.4 bps, perp dārgāks. Bekstestā enter_pack atgrieza divus aizpildījumus un atlikumu nulle. Papīrā tas atgrieza spot aizpildījumu 0.40 BTC pie ask un gaidošu short uz perp, kas netirgojās.
Spot bija samaksājis 4 bp taker komisiju un aptuveni 1 bp spredu. Perp cena, ko gribējām, vēl bija grāmatā, tad tās vairs nebija. Divdesmit sekundes vēlāk kotētā bāze bija 5 bps, jo mēs tikko bijām pacēluši spot. Četrdesmit sekundes vēlāk perp aizpildījās, pēc kustības. Mēs bijām pakā. Bijām pakā pie bāzes, kas vairs nesedza ieiešanu un iziešanu.
Bekstests būtu iegrāmatojis "+9.4 bps carry, atlikums 0." Blotterī bija 4 bps spot taker izmaksas, 40 sekundes ilgs nehedžēts long un ieejas sprauga aptuveni 5. Man bija izlase no viena un tomēr pārāk daudz pārliecības par kāpnēm.
Otrdiena: mēs atvērām funkciju
enter_pack ņēma kāju sarakstu un mērķa mid. Tā ciklēja, aizpildīja katru kāju pie mid * (1 ± slip) un ierakstīja vienu portfeļa rindu. Nebija otra laikspiedoga. Nebija zara, kurā otrā kāja neeksistētu. Vienībtests apgalvoja residual == 0.
Tas ir tests, kas liek justies kā pieaugušajam. Tas nekad neizgāzīsies.
Mēs sadalījām paku divos orderos ar savu stāvokli: submitted, partial, filled, canceled. Incomplete kļuva par pirmās klases objektu. Vēsturiskajā atkārtojumā joprojām nebija īstas grāmatas, tāpēc mēs krāpāmies. Aizkavēt otro aizpildījumu ar izlozi no pirmdienas gaidīšanas laika (vidējais 26 sekundes, aste, kas man nepatika) un nobīdīt tā cenu par to, ko spot izdarīja tajā logā. Rupji, bet kāpnes pirms pusdienām ieguva iegriezumus: pakas, kas iegāja pie 3 bps, pakas, kas nekad netapa par pakām.
Trešdiena: trīs sekundes, tad mest ārā
Ja otrā kāja nav iekšā trīs sekunžu laikā, izlīdzini pirmo. Tur mums vajadzēja sākt. Izklausās konservatīvi, līdz noceņo pārtraukšanu. Izlīdzināšana nozīmē, ka tu šķērsoji spot, lai iekļūtu, un šķērso to, lai izkļūtu. Divas taker komisijas, divi spredi, nekādas carry, nekāda funding. Pārrakstītajā atkārtojumā šīs pārtraukšanas nebija retas. Tās pulcējās uz bāriem, kur bāze izskatījās visvairāk "īstā," kas parasti ir bāri, kur kaut kas jau plūst caur spot.
Līdz trešdienas vakaram mums bija septiņpadsmit papīra signāli, par kuriem strīdēties.
| Bekstests, pirmdienas rīts | Papīrs, līdz trešdienai | |
|---|---|---|
| Ieeja | Abas kājas pie mid, viens laikspiedogs | Spot pie ask; perp 5–40s vēlāk vai nekad |
| Atlikums | Vienmēr 0 | Nehedžēts 10 no 17 signāliem |
| Komisijas uz strādājošu darījumu | Divi taker | Divi taker vai četri, ja pārtraucam |
| PnL dzinējs | Bāze + funding | Tas, ko spot darīja, kamēr gaidījām |
Kolēģim joprojām ir notebook, kas paku uzskata par listētu produktu, BTC_CARRY, ar plakanu 2 bp "izpildes nodokli." Man tas notebook patika. Tas ražoja tās pašas kāpnes, ko aģents. Nodoklis ir vidējais. Bāreņi ir sadalījums. Vidējos neuzbrauc plānā stundā; 0.40 BTC atlikušā spot var.
Ceturtdiena: atlikums, tad kafija
Trīs sekundes pārtrauca gandrīz visu, tiklīdz gaidījām arī rindā. Mēs papīru atslābinājām līdz piecpadsmit. Ceturtdien 02:11 UTC spot aizpildījās, bet perp ne. Es vēl biju "tas stāvēs, tas pacelsies" sērošanas fāzē, kad gāju vārīt kafiju.
02:11:08 aizpildīts BTCUSDT 0.40 buy
02:11:08 iesniegts BTCUSDT-PERP 0.40 sell, post-only
02:11:41 joprojām strādā
02:26:00 atlikuma markējums −18.1 bps
BTC noslīdēja par 18 bps klusā logā. Atlikums bija viss darījums. Funding, kad tas izdrukājās, kreditēja perp, kura mums nebija. Spot vienkārši sēdēja un bija long. Sākotnējā bekstesta nakts ceļš nekad nesaturēja vienas kājas pozīciju, tāpēc tas nekad nebija uzdevis jautājumu, ko mēs uzdodam katrai citai grāmatai: kāds ir sliktākais bārs, ko šis atlikums var izdrukāt, un kur ir stops pozīcijai, kuru mēs negribējām turēt?
Septiņas pilnās pakas arī nebija varoņi. Līdz brīdim, kad izdrukājās otrā kāja, mūsu pašu spot pacēlums jau bija uzspiedis uz indeksu, un ieejas bāze bija 3–5 bps sliktāka nekā momentuzņēmums, kas bija iedarbinājis signālu. Astoņu bps slieksnis bija skaitlis par ekrānu.
Ko nākamreiz izlaistu
Mēs nelaistu daudzkāju darījumu kā vienu aizpildīšanas funkciju. Tas pats noteikums perp-spot carry, kalendārajam spredam vai call vertikālei, ko aģents iesniedz kā divus limitus un tad svin, kad abi "aizpildās" pie mid.
- Kājas līmeņa ordera stāvoklis, ieskaitot daļējos. Uzskati paku par divu biļešu vecāku.
- Max-orphan taimeris, kas patiešām nostrādā, un izlīdzināšanas ceļš, kas izejot samaksā divus sredus.
- Mark-to-book uz atlikumu ar stopu, kas izmērīts atlikumam. Sapakotā neto ir nepareizais nosacītais apjoms.
- Nekāda carry nav kreditēta, nekāds funding nav uzkrāts, kamēr abas kājas nav iekšā. Nepabeigts ir nepabeigts.
- Atteikties no mid pret mid kā noklusējuma visam, kam ir divas biļetes. Ja jāmin, mini sliktāk uz plānās kājas un vēlāk uz otrā aizpildījuma.
Un mēs nelaistu test_pack_is_atomic iekšā repo. Atomiskums ir matching engine īpašība, ne palīgfunkcija. BTC spot un BTC perpetual ir divas grāmatas, kas dažreiz atskaņojas. Papīrs ir vieta, kur tās beidz atskaņoties, un tas ir vienīgais iemesls, kāpēc kāpnes vispār bija interesantas.



