Începem cu cifrele, pentru că ele sunt întregul argument. Un trade dus-întors ca taker pe o bursă majoră de perpetue costă circa 0,10% din noțional în comisioane. Funding-ul pe un long aglomerat poate ajunge la 10-30% anualizat împotriva ta. Un ordin market mare în raport cu adâncimea din vârful cărții plătește impact după legea rădăcinii pătrate, peste spread. Iar un backtest care citește revizia de azi a datelor de ieri capătă un edge de câteva procente pe an care n-a existat niciodată.
Cifra surprinzătoare este prima. Nu pentru că e mare — ci din cauza a ceea ce face frecvenței de tranzacționare. Toată lumea aprobă din cap la „include comisioanele", apoi testează o strategie care tranzacționează de patruzeci de ori pe zi. La 0,10% dus-întors, patruzeci de trade-uri înseamnă 4% din noțional pe zi în costuri. Nu există semnal pe o perpetuă mid-cap care să treacă ștacheta asta. Strategia nu era nici pe departe viabilă, iar backtest-ul fără comisioane spunea că e genială.
Comisioanele sunt un filtru, nu o tunsoare
Modelul mental pe care îl poartă majoritatea este că taxele rad puțin din curbă: aceeași formă, doar mai jos. E greșit. Comisioanele sunt un filtru de frecvență. Ele șterg complet variantele de înaltă frecvență ale unui edge și lasă variantele lente aproape neatinse. Când pipeline-ul nostru a început să aplice grile maker/taker reale per bursă, strategiile care au murit nu erau ideile proaste — erau idei bune care tranzacționau prea des. Remediul era de obicei un timeframe mai lung, nu un semnal mai bun. Acum abandonăm orice strategie al cărei randament mediu per trade e sub 0,15% din noțional, pentru că după costurile pe ambele sensuri nu mai rămâne nimic de compus.
Funding-ul e un impozit pe poziție, cu memorie
Contractele futures perpetue plătesc funding la fiecare oră sau la opt ore, și nu e zgomot: e corelat structural exact cu trade-urile pe care le vor sistemele de momentum. Când toată lumea e long, funding-ul e pozitiv, iar poziția ta long de momentum îl plătește. Un backtest fără acumulare de funding flatează sistematic strategiile trend-following pe perpetue. Am învățat-o pe calea jenantă — o întreagă familie de strategii de funding-carry a fost abandonată automat pentru că motorul nu credita funding-ul pe care fuseseră proiectate să-l recolteze. Semnalul era în regulă. Contabilitatea lipsea.
Impactul crește cu rădăcina pătrată a mărimii
Ficțiunea politicoasă a backtest-ului pe bare este că execuți la close. Pentru ordine mici e aproximativ adevărat. Pentru orice mărime semnificativă, modelul acceptat spune că impactul crește cu rădăcina pătrată a mărimii ordinului raportate la volum și că nu se mai întoarce niciodată. Noi încorporăm o estimare de impact după legea rădăcinii pătrate în fiecare execuție și în curba de capital însăși. Contează cel mai mult exact acolo unde e cel mai incomod: la capacitate. O strategie poate fi cu adevărat profitabilă la 50.000 $ și structural neprofitabilă la 5 milioane $, iar granița o arată doar o curbă care ține cont de impact.
Look-ahead-ul se ascunde în date, nu în cod
Nimeni nu scrie if tomorrow_close > today_close: buy(). Look-ahead-ul se strecoară prin instalația de date: sentiment din știri datat după momentul publicării în loc de momentul ingestiei, rate de funding alipite de perioada pe care o acoperă în loc de momentul în care au devenit cunoscute, universuri „curente" de simboluri aplicate istoricului (survivorship), indicatori economici revizuiți care înlocuiesc cifra care a lovit efectiv piața. Regula noastră este point-in-time peste tot: fiecare serie suplimentară e datată după momentul în care noi am fi putut să o știm, iar un backtest poate citi doar ceea ce exista la acea nanosecundă.
Testul unui backtest nu e dacă urcă curba. E dacă același cod, alimentat cu aceleași semnale în piața reală, produce aceleași trade-uri — și afli asta doar verificând, zilnic, la nesfârșit.
Ultima propoziție e un proces real, nu un slogan. În fiecare zi reluăm fereastra fiecărei strategii din paper trading prin motorul de backtest și comparăm trade-urile unul câte unul. Când paper-ul și replay-ul nu sunt de acord, unul dintre ele minte, și de obicei e vorba de un cost sau de un timestamp. Cele patru costuri de mai sus sunt pur și simplu cele care ne-au mințit primele.
← Toate articolele