2026 m. lapkričio 3 d. · vykdymas

Bazės sandorį prekiavome popieriuje. Užsipildė viena koja.

Bazės sandorį prekiavome popieriuje. Užsipildė viena koja.

Funkcija vadinosi enter_pack. Tai ir turėjo būti perspėjimas. Tyrimų agentas parašė BTC cash-and-carry: kai perpetual prekiauja daugiau nei aštuoniais baziniais punktais virš spoto, pirkti spotą, shortinti perp, sėdėti ramiai. Funding ir bazė padarytų visą kitą. Baktestas abi kojas užpildydavo tą pačią milisekundę, ties mid, plius vieną mandagumo tiką. Equity kreivė buvo laiptai. Niekas to nepavadintų jaudinančiu. Tuo ir buvo pardavimo argumentas.

Pirmadienį perkėlėme jį į popierių.

Pirmadienis: paketas, kuris visada užsipildydavo

Pirmasis signalas atėjo 11:17 UTC. Ekrane bazė buvo 9.4 bps, perp brangesnis. Bakteste enter_pack grąžino du užpildymus ir nulinį likutį. Popieriuje grąžino 0.40 BTC spoto užpildymą pagal aską ir stovintį short pavedimą perp knygoje, kuris neįvyko.

Spotas sumokėjo 4 bp taker mokestį ir apie 1 bp spredo. Perp kaina, kurios norėjome, dar buvo knygoje, tada jau nebe. Po dvidešimties sekundžių kotiruojama bazė buvo 5 bps, nes ką tik pakėlėme spotą. Po keturiasdešimties sekundžių perp užsipildė, jau po judesio. Buvome supakuoti. Buvome supakuoti bazėje, kuri jau nebeatpirko įėjimo ir išėjimo.

Baktestas būtų įrašęs „+9.4 bps carry, likutis 0.“ Blotteryje buvo 4 bps spoto taker sąnaudų, 40 sekundžių neapdrausta ilgoji ir apie 5 įėjimo spraga. Turėjau imtį iš vieno ir vis tiek per daug pasitikėjimo laiptais.

Antradienis: atidarėme funkciją

enter_pack priimdavo kojų sąrašą ir tikslinį mid. Ciklu užpildydavo kiekvieną koją ties mid * (1 ± slip) ir įrašydavo vieną portfelio eilutę. Antros laiko žymos nebuvo. Šakos, kurioje antros kojos nėra, nebuvo. Vienetinis testas tvirtino residual == 0.

Toks testas verčia jaustis suaugusiu. Jis niekada nesuges.

Paketą išskaidėme į du pavedimus su savomis būsenomis: submitted, partial, filled, canceled. Incomplete tapo pirmos klasės objektu. Istoriniame atkūrime vis dar nebuvo tikros knygos, todėl sukčiavome. Antrąjį užpildymą delsėme traukimu iš pirmadienio laukimo (vidurkis 26 sekundės, uodega, kuri man nepatiko) ir kainą pastumdavome tiek, kiek per tą langą pajudėjo spotas. Grubiai, bet iki pietų laiptuose atsirado įpjovos: paketai, kurie įėjo per 3 bps, paketai, kurie taip ir netapo paketais.

Trečiadienis: trys sekundės, tada mesti

Jei antroji koja neužsipildo per tris sekundes, išlyginkite pirmąją. Reikėjo nuo to pradėti. Skamba konservatyviai, kol įkainojate nutraukimą. Išlyginimas reiškia, kad spotą kirtote įeidami ir kertate išeidami. Du taker mokesčiai, du spredai, jokio carry, jokio funding. Perrašytame atkūrime tie nutraukimai nebuvo reti. Jie telkėsi baruose, kur bazė atrodė labiausiai „tikra“, o tai paprastai barai, kur per spotą jau kažkas teka.

Trečiadienio vakarą turėjome septyniolika popierinių signalų, su kuriais ginčytis.

17popieriniai signalai per keturias dienas
7paketai su abiem užpildytomis kojomis
18 bpsvėlesnis judesys prieš paliktą ilgąją
Baktestas, pirmadienio rytasPopierius, iki trečiadienio
ĮėjimasAbi kojos ties mid, viena laiko žymaSpotas pagal aską; perp po 5–40s, arba niekada
LikutisVisada 0Neapdrausta 10 iš 17 signalų
Mokesčiai veikiančiam sandoriuiDu takerDu taker, arba keturi, jei nutraukiame
PnL šaltinisBazė + fundingTai, ką darė spotas, kol laukėme
Paketas baigtas tada, kai abu pavedimai užpildyti, kitaip tai kryptinė pozicija, kuriai neskyrėte dydžio. Likutį žymėkite pagal gyvą knygą visą laiką, kol jis egzistuoja. Jei jo pažymėti negalite, strategijos vykdyti negalite.

Kolega vis dar turi notebooką, kuriame paketas traktuojamas kaip listinguotas produktas, BTC_CARRY, su fiksuotu 2 bp „vykdymo mokesčiu“. Man tas notebookas patiko. Jis davė tuos pačius laiptus kaip agentas. Mokestis yra vidurkis. Našlaičiai yra skirstinys. Vidurkių plonoje valandoje nepervažiuoja; 0.40 BTC palikto spoto — gali.

Ketvirtadienis: palikta, tada kava

Trys sekundės nutraukdavo beveik viską, kai dar laukėme eilėje. Popieriuje atlaisvinome iki penkiolikos. Ketvirtadienį 02:11 UTC spotas užsipildė, o perp — ne. Dar buvau gedulo fazėje „pailsės, pakils“, kai nuėjau virti kavos.

02:11:08 įvykdyta BTCUSDT 0.40 buy
02:11:08 pateiktas BTCUSDT-PERP 0.40 sell, post-only
02:11:41 vis dar vykdomas
02:26:00 likučio žyma −18.1 bps

BTC ramioje lange krito 18 bps. Likutis ir buvo visas sandoris. Funding, kai išspausdino, įskaitė perp, kurio neturėjome. Spotas tiesiog sėdėjo būdamas ilgas. Originalaus baktesto naktinis kelias niekada neturėjo vienakojės pozicijos, todėl niekada neuždavė klausimo, kurį keliame kiekvienai kitai knygai: koks blogiausias baras, kurį šis paliktasis gali išspausdinti, ir kur stopas pozicijai, kurios nesiruošėme laikyti?

Septyni pilni paketai irgi nebuvo didvyriai. Kol antroji koja išspausdino, mūsų pačių spoto pakėlimas jau spaudė indeksą, o įėjimo bazė buvo 3–5 bps blogesnė nei momentinė nuotrauka, kuri paleido signalą. Aštuonių bps slenkstis buvo skaičius apie ekraną.

Ką kitą kartą praleistume

Nediegtume kelių kojų kaip vienos užpildymo funkcijos. Ta pati taisyklė perp-spot carry, kalendoriniam spredui ar call vertical, kurį agentas pateikia kaip du limitus ir tada švenčia, kai abu „užsipildo“ ties mid.

  1. Kiekvienos kojos pavedimo būsena, įskaitant dalinius. Paketą traktuokite kaip dviejų bilietų tėvą.
  2. Maksimalaus našlaičio laikmatis, kuris iš tikrųjų suveikia, ir išlyginimo kelias, kuris išeidamas sumoka du spredus.
  3. Likučio mark-to-book su stopu, pritaikytu paliktajam. Supakuotas neto yra neteisinga nominalioji vertė.
  4. Jokio carry įskaitymo, jokio funding kaupimo, kol abi kojos neatsiduria. Incomplete yra incomplete.
  5. Jokio mid-on-mid kaip numatytojo viskam, kas turi du bilietus. Jei spėti būtina, plonajai kojai spėkite blogiau, o antrajam užpildymui — vėliau.

Ir neįleistume test_pack_is_atomic į repo. Atomic yra matching engine savybė, ne pagalbinė funkcija. BTC spotas ir BTC perpetual yra dvi knygos, kurios kartais rimuojasi. Popierius yra vieta, kur jos nustoja rimuotis, ir tik todėl laiptai apskritai buvo įdomūs.

baktestavimascash-and-carryvykdymaspopierinė prekybakriptovaliutų ateities sandoriai
← Visi įrašai