15. november 2026 · uuring

Kuidas backtestida krüptomahtu, kui pesutehingud paisutavad teipi?

Kuidas backtestida krüptomahtu, kui pesutehingud paisutavad teipi?

Esmaspäeval tegime vastutustundliku asja. Agendil oli momentumistrateegia mid-cap USDT-M perpetualil, klipiga 25,000 USDT tehingu kohta, ja esimene backtest ilma mahufiltrita täitis iga signaali nii, nagu orderiraamat oleks BTC. Nii et lisasime õpikuvärava: kahekümne 1-minutilise baari dollarimaht pidi ületama klipi kahekümnekordselt, enne kui order välja tohtis minna. Kakskümmend minutit, pool miljonit dollarit teipi. Münt trükkis kiirel päeval umbes $40 miljonit. Filter jättis enamiku signaalidest alles. Equity-kõver muutus vähem sakiliseks. Saatsime selle paberile.

Üheteistkümme tundi hiljem sõi 25,000 USDT ost 8,400 bidist ja peatus. Kahekümne baari maht sellel minutil oli $1.14 miljonit. Filter oli öelnud jah.

34%raporteeritud teibist ei liigutanud ühtegi raamatu taset
11 tpaberit enne esimest kinni jäänud klippi
20×klipi-mahu reegel, mis ütles ikka jah

Esmaspäev: filter, mis pani meid end ausana tundma

Agendi märkus pull requestis oli „mahutavuskontroll lisatud, 20× notional.“ Kinnitasin selle. Olen seda lauset varemgi kinnitanud. See on sedasorti reegel, mille kirjutad pärast seda, kui keegi näitab sulle backtesti, mis kauples $4,000-OI mündiga $50,000 klippides, ja kõik toas teevad näo, ja sa lisad mahukordaja, et see ei saaks uuesti juhtuda.

Esmaspäeval tegi reegel backtestis seda, mida ta alati teeb. Ta viskas surnud tunnid välja. Ta jättis alles tunnid, kus börsi enda mahunumber nägi valjuna välja. Käive langes umbes kolmandiku võrra. Keskmine tehingusuurus jäi 25,000 peale, sest täitemudel on argpüks: ta võtab kogu klipi viimase hinna pluss paari bps pealt, kui värav on lahti. Keegi ei küsinud orderiraamatult, kas 25,000 seal tegelikult istus.

Ma ikka võpatan, kui mündi 24h maht on ümmargune number kõhnakese avatud intressi kõrval. See on jäänuk 2021. aastast, kui Discordi „market making“ botid olid kaks alamkontot, mis kauplesid omavahel ja kleepisid mahu ekraanipildi #brag kanalisse. Teip näeb välja nagu pidu. Orderiraamat on papp. Ütlesin endale, et 20× filter 1-minutilistel baaridel on see, kuidas sellest välja kasvada. Ei ole. See on viis, kuidas papist keskmistad sujuvama numbri.

Teisipäev: paber, siis ülejääk

Paber algas lahkel moel. Esimesed viis klippi täitusid kahe kuni nelja hüppega mööda ask'i alla. Kole, aga tehtud. Siis 14:07 UTC, long-signaal, 25,000 USDT, orderiraamatu tipus 1,100, järgmine tase 2,400, siis õhk. Saime 8,400 täidetud takerina ja 16,600 ootele. Nelikümmend sekundit hiljem tühistus ülejääk meie enda time-in-force'i peal. Strateegia arvas, et on long terve klipi jagu. Konto oli long kolmandiku jagu ühest.

Aga filter oli öelnud jah. Tõmbasin baari välja. Dollarimaht kahekümne minuti jooksul kuni 14:07 oli $1.14 miljonit, tublisti üle $500k. Umbes $380k sellest $1.14 miljonist oli prindipaarid: sama hind, sama suurus, vastupidised agressorlipud, kaks kuni kaheksa millisekundit vahet, ja bid/ask suurus sellel hinnal ei nihkunud. Need tehingud maksid tasusid üksteisele. Nad ei pakkunud meile 25,000 USDT auku.

Kolmapäev: teibi kokkuviimine orderiraamatuga

Kolmapäev oli aeglane päev, see, millele ma järgmine kord planeeriksin kaks korda rohkem aega. Võtsime viie argipäeva tehingud ja L2 snapshotid samal perp'il, 100ms orderiraamatu fotod, ja klassifitseerisime iga prindi orderiraamatu suhtes snapshot enne ja snapshot pärast.

  1. Kui suurus tehinguhinnal langes umbes tehingu suuruse võrra, puudutas see orderiraamatut. Arvesta.
  2. Kui võrdse suurusega ost ja müük printisid ühel hinnal ilma orderiraamatu muutuseta, nimeta see pesuks ja viska igast mahutavuse numbrist välja.
  3. Kui tehing kõndis läbi mitme taseme ja need tasemed kadusid, on see päris taker. Arvesta, ja ära teeskle, et saad seda likviidsust ka ise võtta; keegi juba võttis.
  4. Kui tehing on märgitud likvideerimiseks, on see päris suurus, ja see on viimane suurus, mida tahad kasutada tõendina, et sina saad klippida 25,000. Sundorder jookseb sinuga võidu.

Snapshotid valetavad natuke. Kõik, mis täitub ja täieneb 100ms sees, näeb välja nagu tont, ja mõned päris market-makerid teevad cancel-replace nii kiiresti. Proovisime hiljem mõne minuti 10ms orderiraamatuid ja pesu osakaal liikus paari punkti võrra, mitte kaks korda. Paari punktiga saan elada. Ei saa elada sellega, et kohtlen börsi mahutickerit likviidsuse loendusena.

AggTrades juba koondavad ühe takeri, kes tabab mitut makerit ühel hinnal. Nad ei kooonda kahte pesuvat alamkontot. Kui su „puhas“ voog on agregeeritud tehingud, on sul see probleem endiselt. Sul on see lihtsalt vähemate ridadega.

Ja 24h maht ticker API-s on sama räpane summa, viivitusega, mistõttu uurimisagendid seda armastavad. Üks väli. Alati olemas. Näeb välja nagu feature. See on turundusstatistika, mis juhtub olema market-data protobuf'is.

Kui mahunumbrit ei saa viia kokku orderiraamatu muutusega, ei kuulu see mahutavuskontrolli, mõjumudelisse ega universumifiltrisse. 24h ticker on selle numbri halvima koopia, sest see on juba kokku liidetud, ümardatud ja ajast paljaks riisutud.

Neljapäev: nädal ühes tabelis

Viis sessiooni, sama klipp, sama 20× reegel, sama täitemudel backtestis. Paberi täitesuhe on täidetud notional jagatud kavandatud notionaliga nende orderite kohta, mille me selles sessioonis tegelikult saatsime. Esmaspäeva paber on tühi, sest olime veel backtestis.

SessioonBörsi teipRaamatut liigutavPesulaadneLikv. prindidFilter ütles minePaberi täitmine
E$38.4m$22.6m$13.5m$2.3m41 / 48 signaalin/a
T$41.1m$24.2m$15.2m$1.7m36 / 400.61
K$29.6m$20.1m$8.1m$1.4m22 / 310.77
N$44.8m$25.6m$17.4m$1.8m39 / 440.54
R$33.2m$22.3m$9.4m$1.5m28 / 350.71

Pesulaadsed prindid olid 34% nädala teibist. Need ei olnud ühtlaselt jaotunud. Neljapäev, sessioon, mis algsele filtrile kõige rohkem meeldis, oli kõige räpasem. See on tõrkerežiim, millest ma hoolin. Värav ei liialda likviidsust ainult keskmiselt. Ta avaneb laiemalt päevadel, mil pesubotid töötavad, sest just neil päevadel näeb toornumber kõige tervem välja.

Jooksime backtesti uuesti ainult raamatut liigutava mahuga, sama 20× kordaja. Signaalid langesid nädalas 198 pealt 121 peale. Palju kõrvale visatuid istusid neis neljapäevastiilis tundides, kus teip oli vali ja orderiraamatu tipp oli 1,100 USDT. Algne Sharpe kasutas 198 täistäitmist. Ma ei hakka uut tsiteerima nii, nagu see oleks leid strateegia kohta. See on leid täitemudeli kohta: kui sa lõpetad 25,000 USDT kinkimise hinnal, mida orderiraamatul ei olnud, on tükk „edgest“ lihtsalt lõpuni täidetud orderid, mis oleksid olnud ülejäägid.

Reede: mida me tegelikult välja laseme, ja millest ma loobuksin

Värav, mille alles jätsime, on igav. Veerev raamatut liigutav notional, loetud ainult printidest, mis võtsid tasemelt suurust maha, peab ületama 20× klippi, ja me mõõdame seda baaridel enne otsustusbaari, et jooksva minuti pesu ei saaks hääletada. Likvideerimisprindid saavad eraldi lae: kui rohkem kui veerand hiljutisest raamatut liigutavast mahust on likvideerimised, strateegia astub kõrvale. Sundvoog on päris suurus, mis jookseb sinuga võidu.

Mõju sai sama dieedi. Vana mudel tuletas Kyle'i lambda börsimahust ja meie klipist. Sööda talle pesu ja lambda langeb, sest turg näib sügav. Sööda talle raamatut liigutav maht ja sama klipp on palju suurem osa sellest, mis orderiraamatut tegelikult muutis. Paberi slippage istus järgmistes sessioonides selle inetuma numbri lähedal. Lähemal, mitte identne. Me ikka ei näe järjekorda, ja 100ms foto jätab osa päris suurusest endiselt nägemata.

Järgmine kord jätaksin kogu esimese esmaspäeva vahele. Ära alusta tickerist, ära alusta 24h mahust, ära lase agendil panna toorest dollarimahtu feature store'i ja väravasse nii, nagu need oleksid kaks ideed. Need on üks räpane seeria, kasutatud kaks korda. Ehita kõigepealt orderiraamatuga kooskõlas teip, isegi kui see tähendab, et uurida kaks päeva ühe mid-capi kallal, enne kui sul on universum. Pesu järgi filtreeritud universum on nimekiri münte, mis oskavad hästi hõivatud välja näha.

Teine vahelejätt: igasugune täitemudel, mis kohtleb läbitud mahukontrolli täitmisena. Teisipäeva ülejääk oligi strateegia. Filter oskab vastata ainult „kas keegi on kaubelnud.“ Ta ei oska vastata „kas su 25,000 jääb ootele või kaob.“ See teine küsimus vajab orderiraamatut, ülejääki ja time-in-force'i, mis on teine päevik, ja see, mille oleksime pidanud kirjutama enne seda siin.

pesukaupleminemahtkrüptobacktestingturu mikrostruktuur
← Kõik postitused