Funktsioon kandis nime enter_pack. See oleks pidanud olema hoiatuseks. Uurimisagent oli kirjutanud BTC cash-and-carry: kui perpetual kauples spotist rohkem kui kaheksa baaspunkti kõrgemal, osta spot, shorti perp, istu paigal. Funding ja baas teeksid ülejäänu. Backtest täitis mõlemad jalad samas millisekundis, midil, pluss üks tick viisakust. Equity-kõver oli trepp. Keegi ei nimetaks seda põnevaks. See oligi müügiargument.
Viisime selle esmaspäeval paberile.
Esmaspäev: pakk, mis alati täitus
Esimene signaal saabus kell 11:17 UTC. Baas ekraanil oli 9.4 bps, perp kallis. Backtestis tagastas enter_pack kaks täitmist ja jäägi null. Paberil tagastas see spoti täitmise 0.40 BTC askil ja puhkava shorti perpil, mis ei kaubelnud.
Spot oli maksnud 4 bp taker-tasu ja umbes 1 bp spreadi. Perpi hind, mida tahtsime, oli veel raamatus, siis enam mitte. Kakskümmend sekundit hiljem oli noteeritud baas 5 bps, sest olime just spoti tõstnud. Nelikümmend sekundit hiljem täitus perp, pärast liikumist. Olime pakitud. Olime pakitud baasil, mis ei tasunud enam sisse- ega väljapääsu.
Backtest oleks kirja pannud „+9.4 bps carry, jääk 0.“ Tehingupäevikus oli 4 bps spoti taker-kulu, 40-sekundiline maandamata long ja sisenemisvahe umbes 5. Mul oli valim suurusega üks ja ometi liiga palju usaldust trepi vastu.
Teisipäev: avasime funktsiooni
enter_pack võttis jalgade loendi ja sihtmidi. See käis tsüklis, täitis iga jala mid * (1 ± slip) peal ja kirjutas ühe portfellirea. Teist ajatempli ei olnud. Ei olnud haru, milles teist jalga ei eksisteerinud. Ühiktest kinnitas residual == 0.
See on test, mis paneb sind end täiskasvanuna tundma. See ei ebaõnnestu kunagi.
Tükeldasime paki kaheks orderiks oma olekutega: esitatud, osaline, täidetud, tühistatud. Mittetäielik sai esimese klassi objektiks. Ajaloolisel taasesitusel ei olnud ikka päris raamatut, nii et pettsime. Viivitasime teist täitmist esmaspäeva ooteajast võetud tõmbega (keskmine 26 sekundit, saba, mis mulle ei meeldinud) ja triivisime selle hinda selle järgi, mida spot selles aknas tegi. Toores, aga trepile tekkisid enne lõunat sälgud: pakid, mis sisenesid 3 bps peal, pakid, millest ei saanudki pakke.
Kolmapäev: kolm sekundit, siis viska minema
Kui teine jalg ei ole kolme sekundi jooksul peal, tee esimene lamedaks. Oleksime pidanud sealt alustama. See kõlab konservatiivselt, kuni sa katkestuse ära hindad. Lamedaks tegemine tähendab, et ristasid spoti sisse saamiseks ja ristad selle välja saamiseks. Kaks taker-tasu, kaks spreadi, ei carryt, ei fundingut. Ümberkirjutatud taasesituses need katkestused ei olnud haruldased. Need kuhjusid baridele, kus baas näis kõige „pärisem“, mis on tavaliselt need barid, kus midagi juba voolab läbi spoti.
Kolmapäeva õhtuks oli meil seitseteist paberisignaali, millega vaielda.
| Backtest, esmaspäeva hommik | Paber, kolmapäevaks | |
|---|---|---|
| Sisenemine | Mõlemad jalad midil, üks ajatempel | Spot askil; perp 5–40s hiljem või mitte kunagi |
| Jääk | Alati 0 | Maandamata 10 signaalil 17-st |
| Tasud töötaval tehingul | Kaks takerit | Kaks takerit või neli, kui katkestame |
| PnL allikas | Baas + funding | Mida iganes spot ootamise ajal tegi |
Kolleegil on endiselt märkmik, mis kohtleb pakki noteeritud tootena, BTC_CARRY, ühtlase 2 bp „täitmismaksuga“. Mulle meeldis see märkmik. See tootis sama trepi, mille agentki. Maks on keskmine. Orvud on jaotus. Keskmisi ei sõideta õhukesel tunnil üle; 0.40 BTC järelejäänud spoti küll.
Neljapäev: jääk, siis kohv
Kolm sekundit katkestas peaaegu kõik, kui ootasime ka järjekorras. Lõdvendasime paberi viieteistkümnele. Neljapäeval kell 02:11 UTC täitus spot ja perp mitte. Olin veel „see puhkab, see tõstetakse“ leinafaasis, kui läksin kohvi tegema.
02:11:08 täidetud BTCUSDT 0.40 ost
02:11:08 esitatud BTCUSDT-PERP 0.40 müük, post-only
02:11:41 veel töös
02:26:00 jäägi mark −18.1 bps
BTC langes 18 bps vaikses aknas. Jääk oligi kogu tehing. Funding, kui see printis, kandis perpetualile, mida meil ei olnud. Spot lihtsalt istus seal longina. Algse backtesti üleöine rada ei sisaldanud kunagi ühejalalist positsiooni, nii et see ei olnud kunagi küsinud küsimust, mida küsime iga teise raamatu kohta: mis on kõige halvem bar, mida see jääk võib printida, ja kus on stop positsioonile, mida me ei kavatsenud hoida?
Seitse täispakki polnud ka kangelased. Selleks ajaks, kui teine jalg printis, oli meie enda spoti tõstmine juba indeksile peale vajutanud ja sisenemisbaas oli 3–5 bps halvem kui hetktõmmis, mis signaali tulistas. Kaheksa-bps lävi oli number ekraani kohta.
Mida me järgmine kord vahele jätaksime
Me ei annaks mitmejalalist välja ühe täitmisfunktsioonina. Sama reegel perp-spot carryle, kalendrile või call verticalile, mille agent esitab kahe limiidina ja siis tähistab, kui mõlemad „täituvad“ midil.
- Jala-põhine orderi olek, sealhulgas osalised. Kohtle pakki kahe pileti vanemana.
- Max-orvu taimer, mis tegelikult käivitub, ja lamedaks-tee, mis maksab kaks spreadi väljapääsul.
- Mark-to-book jäägil, stopiga, mis on mõõdetud jäägi jaoks. Pakitud net on vale nominaal.
- Ei kanda carryt, ei kogu fundingut, kuni mõlemad jalad on peal. Mittetäielik on mittetäielik.
- Keeldu mid-on-mid vaikeseadena millegi jaoks, millel on kaks piletit. Kui pead arvama, arva õhukesel jalal halvemini ja teisel täitmisel hiljem.
Ja me ei laseks test_pack_is_atomic reposse. Atomic on sobitusmootori omadus, mitte abifunktsiooni oma. BTC spot ja BTC perpetual on kaks raamatut, mis vahel riimuvad. Paber on koht, kus nad lõpetavad riimumise, mis on ainus põhjus, miks trepp üldse huvitav oli.



