3. marraskuu 2026 · toteutus

Kävimme basis-kauppaa paperilla. Yksi jalka täyttyi.

Kävimme basis-kauppaa paperilla. Yksi jalka täyttyi.

Funktio oli nimeltään enter_pack. Sen olisi pitänyt olla varoitus. Tutkimusagentti oli kirjoittanut BTC-cash-and-carryn: kun perpetual kävi yli kahdeksan korkopistettä spottia kalliimmalla, osta spot, shorttaa perp, pysy paikallasi. Funding ja basis hoitaisivat loput. Backtest täytti molemmat jalat samassa millisekunnissa, midistä, plus tickin verran kohteliaisuutta. Pääomakäyrä oli porras. Kukaan ei kutsuisi sitä jännittäväksi. Juuri se oli myyntivaltti.

Nostimme sen paperille maanantaina.

Maanantai: paketti, joka täyttyi aina

Ensimmäinen signaali kilahti 11:17 UTC. Basis näytöllä oli 9.4 bps, perp kallis. Backtestissä enter_pack palautti kaksi täyttöä ja nollajäännöksen. Paperilla se palautti 0.40 BTC:n spot-täytön askista ja lepoon jääneen shortin perpissä, joka ei toteutunut.

Spot oli maksanut 4 bp:n taker-palkkion ja noin 1 bp:n spreadin. Haluamamme perp-hinta oli vielä kirjassa, sitten se ei ollut. Kaksikymmentä sekuntia myöhemmin noteerattu basis oli 5 bps, koska olimme juuri nostaneet spottia. Neljäkymmentä sekuntia myöhemmin perp täyttyi, liikkeen jälkeen. Paketti oli kasassa. Paketti oli kasassa basiksella, joka ei enää maksanut sisään- ja ulospääsyä.

Backtest olisi kirjannut ”+9.4 bps carry, jäännös 0.” Blotterissa oli 4 bps spot-taker-kustannusta, 40 sekunnin suojaamaton long ja sisääntuloero noin 5. Minulla oli otos koossa yksi ja silti liikaa luottamusta portaaseen.

Tiistai: avasimme funktion

enter_pack otti vastaan jalkojen listan ja tavoite-midin. Se kiersi silmukassa, täytti kunkin jalan mid * (1 ± slip):ssä ja kirjoitti yhden salkkurivin. Ei ollut toista aikaleimaa. Ei ollut haaraa, jossa jalkaa kaksi ei olisi olemassa. Yksikkötesti totesi residual == 0.

Sellainen testi saa tuntemaan itsensä aikuiseksi. Se ei koskaan kaadu.

Hajotimme paketin kahdeksi toimeksiannoksi, joilla oli oma tilansa: submitted, partial, filled, canceled. Keskeneräinen nousi ensiluokkaiseksi objektiksi. Historiallisessa uusinnassa ei edelleenkään ollut oikeaa kirjaa, joten huijasimme. Viivästä toista täyttöä maanantain odotuksen arvonnalla (keskiarvo 26 sekuntia, häntä, josta en pitänyt) ja aja sen hintaa sen mukaan, mitä spot teki tuossa ikkunassa. Karkeaa, mutta porras sai pykäliä ennen lounasta: paketteja, jotka avautuivat 3 bps:llä, paketteja, joista ei koskaan tullut paketteja.

Keskiviikko: kolme sekuntia, sitten ulos

Jos toinen jalka ei ole sisällä kolmen sekunnin kuluessa, tasoita ensimmäinen. Siitä meidän olisi pitänyt aloittaa. Se kuulostaa varovaiselta, kunnes hinnoittelet keskeytyksen. Tasoittaminen tarkoittaa, että ylitit spot-spreadin päästäksesi sisään ja ylität sen päästäksesi ulos. Kaksi taker-palkkiota, kaksi spreadia, ei carrya, ei fundingia. Uudelleenkirjoitetussa uusinnassa nuo keskeytykset eivät olleet harvinaisia. Ne kasaantuivat bareille, joilla basis näytti kaikkein ”todellisimmalta”, jotka ovat yleensä bareja, joilla jokin jo virtaa spotin läpi.

Keskiviikkoiltaan mennessä meillä oli seitsemäntoista paperisignaalia, joista riidellä.

17paperisignaalia neljässä päivässä
7pakettia, joissa molemmat jalat täyttyivät
18 bpsmyöhempi liike jäljelle jäänyttä longia vastaan
Backtest, maanantaiaamuPaper, keskiviikkoon mennessä
SisääntuloMolemmat jalat midistä, yksi aikaleimaSpot askista; perp 5–40s myöhemmin tai ei koskaan
JäännösAina 0Suojaamaton 10:ssä 17:stä signaalista
Palkkiot toimivassa kaupassaKaksi takeriaKaksi takeria tai neljä, jos keskeytämme
PnL-ajuriBasis + fundingMitä tahansa spot teki odottaessamme
Paketti on valmis, kun molemmat toimeksiannot ovat täyttyneet, tai se on suuntapositio, jota et mitoittanut. Merkitse jäännös live-kirjaa vasten koko sen olemassaolon ajan. Jos et voi merkitä sitä, et voi ajaa strategiaa.

Kollegalla on yhä notebook, jossa pakettia kohdellaan listattuna tuotteena, BTC_CARRY, tasaisella 2 bp:n ”toteutusverolla”. Pidin tuosta notebookista. Se tuotti saman portaan kuin agentti. Vero on keskiarvo. Orvot ovat jakauma. Keskiarvoja ei ajeta yli ohuessa tunnissa; 0.40 BTC jäljelle jäänyttä spottia voi.

Torstai: jäännös, sitten kahvi

Kolme sekuntia keskeytti lähes kaiken, kun odotimme myös jonossa. Löysäsimme paperin viiteentoista. Torstaina 02:11 UTC spot täyttyi ja perp ei. Olin vielä ”se lepää, se nousee” -surun vaiheessa, kun menin keittämään kahvia.

02:11:08 täytetty BTCUSDT 0.40 osto
02:11:08 lähetetty BTCUSDT-PERP 0.40 myynti, post-only
02:11:41 yhä avoinna
02:26:00 jäännösmark −18.1 bps

BTC laski 18 bps hiljaisessa ikkunassa. Jäännös oli koko kauppa. Funding, kun se tulostui, hyvitti perpiä, jota meillä ei ollut. Spot vain istui siinä longina. Alkuperäisen backtestin overnight-polussa ei koskaan ollut yksijalkaista positiota, joten se ei ollut koskaan kysynyt kysymystä, jonka kysymme jokaiselta muulta kirjaltamme: mikä on pahin bari, jonka tämä jäännös voi tulostaa, ja missä on stop positiolle, jota emme aikoineet pitää?

Seitsemän täyttä pakettia eivät olleet sankareita nekään. Siihen mennessä kun toinen jalka tulostui, oma spot-nostomme oli jo painanut indeksiä, ja sisääntulobasis oli 3–5 bps huonompi kuin snapshot, joka oli laukaissut signaalin. Kahdeksan bps:n kynnys oli luku ruudulla.

Mitä jättäisimme väliin ensi kerralla

Emme veisi monijalkaista yhtenä täyttöfunktiona. Sama sääntö perp-spot-carrylle, kalenterille tai call-vertikaalille, jonka agentti lähettää kahtena limitinä ja sitten juhlii, kun molemmat ”täyttyvät” midistä.

  1. Jalkakohtainen toimeksiantotila, osatäytöt mukaan lukien. Kohtele pakettia kahden tiketin vanhempana.
  2. Max-orphan-ajastin, joka oikeasti laukeaa, ja tasoituspolku, joka maksaa kaksi spreadia ulosmatkalla.
  3. Mark-to-book jäännökselle, stop mitoitettuna jäännökselle. Paketoitu netto on väärä notionaali.
  4. Ei carry-hyvitystä, ei kertyvää fundingia, ennen kuin molemmat jalat ovat sisällä. Keskeneräinen on keskeneräinen.
  5. Kieltäydy mid-on-midistä oletuksena miltä tahansa, jolla on kaksi tikettiä. Jos on arvattava, arvaa huonommin ohuella jalalla ja myöhemmin toisella täytöllä.

Emmekä päästäisi test_pack_is_atomic repoon. Atomic on matching enginen ominaisuus, ei apufunktio. BTC-spot ja BTC-perpetual ovat kaksi kirjaa, jotka joskus riimivät. Paperi on se paikka, jossa ne lakkaavat riimimästä, mikä on ainoa syy, miksi porras oli koskaan kiinnostava.

backtestauscash-and-carrytoteutuspaperikauppakryptofutuurit
← Kaikki kirjoitukset