Agosto 16, 2026 · Backtesting

Bakit nagsisinungaling ang karamihan sa mga backtest, at ang apat na line item na aayos sa kanila

Bakit nagsisinungaling ang karamihan sa mga backtest, at ang apat na line item na aayos sa kanila

Magsimula tayo sa mga numero, dahil sila mismo ang buong argumento. Ang isang round-trip taker trade sa isang malaking perp venue ay nagkakahalaga ng humigit-kumulang 0.10% of notional sa komisyon. Ang funding sa isang masikip na long ay maaaring umabot ng 10-30% annualized laban sa iyo. Ang isang market order na malaki kumpara sa lalim ng top-of-book ay nagbabayad ng square-root-law impact bukod pa sa spread. At ang backtest na nagbabasa ng rebisyon ngayon ng datos kahapon ay nakakakuha ng edge na ilang porsiyento kada taon na hindi naman talaga umiral.

0.10%round-trip taker cost, kada trade
0.15%minimum na edge kada trade na hinihingi namin
4gastusing nilalaktawan ng karamihan sa mga backtest

Ang nakakagulat na numero ay ang una. Hindi dahil malaki ito — kundi dahil sa epekto nito sa dalas ng pag-trade. Tumatango ang lahat sa "isama ang bayarin" at pagkatapos ay susubok ng estratehiyang nag-tra-trade nang apatnapung beses kada araw. Sa 0.10% kada round trip, ang apatnapung trade ay 4% of notional kada araw na gastos. Walang signal sa isang mid-cap perp ang makakalampas doon. Malayong-malayo sa viable ang estratehiya, pero sinabi ng backtest na walang bayarin na henyo ito.

Ang bayarin ay pansala, hindi gupit

Ang modelong nasa isip ng karamihan ay parang inaahit lang ng bayarin ang kurba: parehong hugis, bahagyang mas mababa. Mali iyon. Ang bayarin ay frequency filter. Buong-buo nitong binubura ang mga high-frequency na bersyon ng isang edge at halos hindi ginagalaw ang mga mabagal na bersyon. Nang magsimula ang aming pipeline na ipatupad ang tunay na maker/taker schedule kada venue, ang mga estratehiyang namatay ay hindi ang mga masasamang ideya — mga magagandang ideya sila na masyadong madalas mag-trade. Ang solusyon ay kadalasang mas mahabang timeframe, hindi mas magandang signal. Inaabandona na namin ngayon ang anumang may average na kita kada trade na wala pang 0.15% of notional, dahil pagkatapos ng two-way na gastos ay wala nang matitirang pag-ipunin.

Ang funding ay buwis sa posisyon na may memorya

Ang perpetual futures ay nagbabayad ng funding kada oras o kada walong oras, at hindi ito ingay: istruktural itong konektado mismo sa mga trade na gustong-gusto ng mga momentum system. Kapag long ang lahat, positibo ang funding, at ang iyong long momentum position ang nagbabayad nito. Ang backtest na walang funding accrual ay sistematikong nagpapaganda sa trend-following sa mga perp. Nakakahiya ang naging aral namin dito — isang buong pamilya ng funding-carry na estratehiya ang awtomatikong inabandona dahil hindi kinikredito ng engine ang mismong funding na dapat nilang anihin. Maayos ang signal. Ang accounting ang kulang.

Ang impact ay lumalaki ayon sa square root ng laki mo

Ang magalang na kasinungalingan ng bar-based backtesting ay na napupunan ka sa close. Para sa maliliit na order, halos totoo iyon. Para sa anumang may bigat, ang tinatanggap na modelo ay lumalaki ang impact ayon sa square root ng laki ng order kumpara sa volume, at hindi na ito bumabalik. Isinasama namin ang sqrt-law impact estimate sa bawat fill at maging sa mismong equity curve. Pinakamahalaga ito sa mismong lugar kung saan pinakaabala: ang kapasidad. Maaaring tunay na kumikita ang isang estratehiya sa $50k at istruktural na lugi sa $5M, at ang impact-aware na kurba lang ang makakapagpakita ng hangganan.

Nagtatago ang look-ahead sa datos, hindi sa code

Walang sumusulat ng if tomorrow_close > today_close: buy(). Pumapasok ang look-ahead sa mga tubo ng datos: news sentiment na tinatatakan ayon sa oras ng paglalathala sa halip na oras ng pag-ingest, funding rate na ikinakabit sa panahong sakop nito sa halip na kung kailan ito nalaman, "kasalukuyang" symbol universe na ipinapataw sa kasaysayan (survivorship), rebisadong economic print na pumapalit sa numerong talagang lumabas noon. Ang tuntunin namin ay point-in-time saanman: ang bawat supplementary series ay tinatatakan ng oras kung kailan namin ito posibleng nalaman, at ang backtest ay makakabasa lang ng umiral sa nanosegundong iyon.

Ang pagsubok sa isang backtest ay hindi kung pataas ang kurba. Ito ay kung ang parehong code, pinapakain ng parehong signal nang live, ay gagawa ng parehong mga trade — at malalaman mo lang iyon sa pagsusuri, araw-araw, habambuhay.

Ang huling pangungusap na iyon ay tunay na proseso, hindi islogan. Araw-araw ay ini-replay namin sa backtest engine ang window ng bawat paper-traded na estratehiya at dini-diff ang mga trade nang isa-isa. Kapag hindi magkasundo ang paper at ang replay, may isang nagsisinungaling sa kanila, at kadalasan ay isang gastos o isang timestamp. Ang apat na line item sa itaas ay iyon lang ang mga unang nagsinungaling sa amin.

backtestingbayarinfundingmarket impactkatapatan
← Lahat ng post