2026. szeptember 12. · kockázat

Öt pozícióméretezési szabály, egy jelzés: a backtesztedet valójában ez mozgatja

Öt pozícióméretezési szabály, egy jelzés: a backtesztedet valójában ez mozgatja

A belépési jelzésed valószínűleg a legkevésbé meghatározó tényező a backtesztedben. Foghatok egy középszerű momentum-szabályt, változatlanul hagyhatok minden belépési és kilépési időpontot, és kizárólag azt a függvényt módosíthatom, amely eldönti, hány kontraktust tartsak; a nettó Sharpe így 0.41-ről 0.71-re, a maximális visszaesés pedig 31%-ról 13%-ra változhat. Ugyanazok a kötések. Ugyanazok a teljesülések. Más stratégia.

Ez az állítás bosszantja az embereket, és joggal, mert azt sugallja, hogy az idő nagy részét a visszatekintési időszakok és a szűrési küszöbök hangolására fordítjuk, pedig ez csak a kisebb tagot érinti. Megmutatom a tényleges futtatásokat, aztán elismerem a kritikusok igazát is, mert ennek az érvelésnek van egy téves változata, és érdemes tudni, én melyik változatot képviselem.

Egy jelzés, hatféle pozíciótartás

A jelzés: ETHUSDT perpetual a Binance USDⓈ-M-en, 1 órás gyertyák, long, ha a 12 órás EMA a 96 órás EMA fölött van, egyébként nincs pozíció, short nincs. 2022 júliusától 2026 júniusáig. 431 oda-vissza ügylet. Taker díjak mindkét oldalon 5.0 bps értékkel, nyolcóránként a tényleges pozíció után fizetett vagy kapott finanszírozási díj, a csúszás modellezése a legjobb vételi és eladási ár mélysége alapján. Szándékosan unalmas jelzést választottam — azért, mert senki sem védené meg, így tisztán vizsgálható.

Az alábbi sorok mindegyikében azonosak a belépési és kilépési gyertyák időpontjai. Csak a méretezési függvény tér el.

Méretezési szabályNettó SharpeMax. visszaesésÉves forgalmazott névérték (× átlagos pozíció)Költség a bruttó PnL %-ábanMax. tőkeáttétel
Fix, 10 ezer dolláros névérték0.4118.2%246×14%1.0×
Fix arány, a saját tőke 100%-a0.4430.8%251×15%1.0×
20 napos realizált volatilitás reciproka0.6814.1%690×29%4.4×
20%-os évesített volatilitáscél, óránkénti újrasúlyozás, korlát nélkül0.7112.9%1,180×41%6.3×
20%-os volatilitáscél, 20%-os kereskedésmentes sáv, 3×-os tőkeáttételi korlát0.6615.3%402×19%3.0×
Fél-Kelly 60 napos gördülő átlag és variancia alapján0.5224.6%830×33%8.1×
0.41 → 0.71nettó Sharpe, azonos belépések
41%a bruttó PnL-ből, amit az óránkénti újrasúlyozás elvitt
6.3×a legjobb Sharpe-ot hozó futtatás csendben használt maximális tőkeáttétele

Nézd meg a különbségeket. A legrosszabb és a legjobb sor között 73%-os relatív eltérés van a Sharpe-ban, a visszaesés pedig 2.4-szeresére változik. Mutass egy belépésijelzés-paramétert ezen az adathalmazon, amely 0.30-del módosítja a Sharpe-ot anélkül, hogy egyben nyilvánvaló túlillesztés lenne. Kerestem. Az EMA-pár hossza a teljes életszerű rácson nagyjából 0.12-del módosítja, és ennek nagy része olyan zaj, amely mintán kívül nem marad fenn.

Miért mutat olyan jól az inverz volatilitás, és mennyi belőle a valódi javulás

A mechanizmus nem rejtélyes. Fix névértéknél a pozícióméreted nincs összefüggésben a realizált volatilitással, vagyis az ügyletenkénti dollárkockázatod az adott heti volatilitással arányosan változik. Az ETH esetében ebben az időszakban a 20 napos realizált volatilitás évesítve 31% és 118% között mozgott. A fix névértékű futtatás 3.8× akkora dollárkockázatot vállalt 2024 márciusában, mint 2023 júliusában — nem azért, mert a jelzés magabiztosabb volt, hanem mert a piac zajosabbá vált. A visszaesés szinte teljes egészében a legmagasabb volatilitású ötödbe koncentrálódik. Az inverz volatilitás szerinti méretezés megszünteti ezt az összefüggést, és ettől valóban javul a hozamsorozat jellege.

A Sharpe-javulás egy része azonban mérési műtermék, és ha nem választod szét a kettőt, később rossz döntéseket hozol. A Sharpe a hozamok szórásával oszt. A volatilitáscélzás definíció szerint a hozamok szórását stabilizálja. Közvetlenül a nevezőt optimalizálod. Egy olyan szabály, amely állandó, előzetesen becsült volatilitás eléréséhez méretezi a pozíciókat, szinte bármilyen, volatilitás-klaszterezést mutató hozamsorozaton javítja a Sharpe-ot, még olyanokon is, amelyekben nincs pozitív várható érték. Ezt ellenőriztem összekevert jelzéseken is: véletlenszerűsítsd a belépési időpontokat, tartsd meg a volatilitáscélzó ráépülő szabályt, és a Sharpe nulla átlagú alapesetben is nagyjából 0.06-del javul a fix névértékhez képest. Kevés, de nem nulla, és tisztán mechanikus hatás.

Ezért amikor házon belül összehasonlítom a méretezési szabályokat, a Sharpe sosem az egyetlen szám a táblázatban. Kérem a Calmart, az átlagos lekötött névérték egységére jutó nettó PnL-t és a bruttótól nettóig vezető költséglevezetést is, mert ezt a hármat együtt sokkal nehezebb kijátszani egy nevezőtrükkel.

A volatilitásbecslés modell, és ugyanúgy szivárog az információja

Messze a leggyakoribb oka annak, hogy egy jónak tűnő méretezési eredmény hamis: a volatilitásbecslés olyan információt használ, amely abból a gyertyából származik, amelyre a méretezést alkalmazza. Ha a volatilitássorozatod középre igazított ablakkal készül, vagy a pandas alapértelmezett `rolling().std()` függvényével, egy olyan újramintavételezés után, amely tartalmazza az aktuális, még le nem zárult gyertyát, vagy teljes mintán végzett standardizálásból, akkor adatszivárgásod van. Ez azért alattomos, mert a volatilitás perzisztens, így a szivárgás bármely adott sorban kicsi, a tőkegörbe pedig továbbra is hihetőnek látszik. Csak éppen egy kicsit túl sima pont azokban a hetekben, amelyek számítanak.

Ügynökeink minden méretezési szabályon négy dolgot ellenőriznek, mielőtt az eredmény bekerül a papírkereskedési sorba:

  1. Az adat a döntés pillanatában elérhető. A 14:00-kor nyíló gyertyán alkalmazott méretnek olyan adatokból kiszámíthatónak kell lennie, amelyek záró időbélyege legfeljebb 13:59:59.999. Ezt úgy ellenőrizzük, hogy 200 véletlenszerű döntési pont mintáján csonkolt adatkeretből újraszámítjuk a méretsorozatot, majd összevetjük az eredetivel.
  2. A becslő visszatekintési ideje valódi paraméter. A 20 napos és a 60 napos volatilitási ablak két különböző stratégia. A visszatekintési idő bekerül a walk-forward rácsba minden más paraméterrel együtt, és ha az eredmény csak egyetlen ablakméretnél működik, az a törékenységéről árulkodik.
  3. A tőkeáttétel teljes lefutása számít, nem csak a csúcsa. Jelenítsük meg a bruttó tőkeáttétel teljes eloszlását. A fenti, korlát nélküli volatilitáscélzó futtatás az óráinak 4%-ában 5× fölötti tőkeáttétellel ment; ilyesmi sosem kerül az összefoglaló táblázatba, pedig teljesen meghatározza, hogy megvalósítható-e a stratégia.
  4. A méretezés érzékenysége robusztussági tesztként. Ha a Sharpe összeomlik, amikor a volatilitáscélt 20%-ról 25%-ra módosítod, akkor a stratégia nem volatilitáscélzó, hanem tőkeáttételre hangolt — az élt pedig egy szám kiválasztásával találtad meg.

A tőkeáttételi korlát nem díszítő kockázatkezelési elem, hanem a stratégia meghatározásának része. A Binance ETHUSDT-lépcsői csökkentik a maximális tőkeáttételt, ahogy nő a pozíció névértéke, és ezzel együtt emelkedik a fenntartási letéti követelmény is. Ha egy backtesztben a volatilitáscélzó szabály 6.3×-os tőkeáttételig mehet 400 ezer dolláros névértéknél, olyan pozíciót ír le, amelyet a tőzsde nem enged fenntartani ekkora letét mellett. A táblázatban szereplő korlátozott változat 0.05 Sharpe-ba kerül, és a kettő közül csak ez ír le valósághű esetet.

Az újrasúlyozásnál folyik el a pénz

Nézd meg a költségeket mutató oszlopot. A volatilitáscél miatti óránkénti újrasúlyozás hozta a legjobb főcím szerinti Sharpe-ot, de a bruttó PnL 41%-át is átadta a tőzsdének. Ez évente az átlagos pozíciónévérték 1,180×-osának megforgatását jelenti, oldalanként 5 bps díjjal, valamint a spreaddel és az árhatással együtt. A kézenfekvő megoldás a ritkább, ütemezett újrasúlyozás. A jobb megoldás egy kereskedésmentes sáv: csak akkor méretezd újra a pozíciót, ha az aktuális mérete egy küszöbnél jobban eltér a célértéktől.

A 20%-os sáv az éves forgalmazott névértéket 1,180×-ról 402×-re csökkentette — ez 66%-os visszaesés —, miközben 0.05 Sharpe-ba került. Ezt már nyolc jelzésen lefuttattam, és újra meg újra ugyanez a minta: a 15% és 25% közötti sávok a kockázatcsökkentő előny nagy részét a forgalom harmada mellett őrzik meg; 10% alatt pedig csak díjat fizetsz a kozmetikai pontosságért egy olyan mennyiségnél, amelyet amúgy is 20 napos ablak alapján becsülsz. Nem lehet három tizedesjegy pontossággal újrasúlyozni egy 15%-os standard hibájú szám alapján.

Februárban volt egy futtatásunk, ahol egy ügynök jelentése 0.22-es Sharpe-javulást tulajdonított „a továbbfejlesztett belépési szűrőnek”. A különbség a méretezési modul egyetlen sora volt. A szűrő nem változott. Most már a jelentés tetejére írattatom a méretezési konfiguráció hash-ét, mert az attribúció fegyelmet kíván, és a modellek éppolyan készségesen mesélnek takaros történetet, mint bárki más.

Mit tesz a méretezési szabállyal a papírkereskedés

Itt nyílik a legnagyobbra a backteszt és a papírkereskedés közötti rés, és ennek főként számtani okai vannak. A volatilitásra reagáló méretezés azt jelenti, hogy a pozícióméreted a mintán belül 4–8-szoros tartományban ingadozik. A tartomány mindkét széle olyan tőzsdei korlátokba ütközik, amelyeket a backteszt nem modellezett.

A kisebb méretnél a lépésköz és a minimális névérték jelent gondot. Az ETHUSDT perp kontraktusmérete 0.001-es lépésekben állítható, a minimális névérték pedig $5. Ha az alacsony volatilitású időszakban a pozíciód mérete 0.0004 ETH, a backteszt megtartja, a papírkereskedésben viszont nincs pozíciód. Ez addig hangzik szélsőséges esetnek, amíg rá nem jössz, hogy a volatilitáscélzó szabály a legkisebb méreteit a legnyugodtabb piacokra teszi, ahol egy trendkövető jelzés gyakran a legjobb belépőket találja. A nagyobb méretnél a pozíciókorlátok, a letéti lépcsők és az jelentenek gondot, hogy egy 6×-os pozícióhoz izolált letéti fegyelem kellene, ám erre nem készítettél likvidációs modellt a backtesztben.

Találtunk egy esetet, amikor a papírkereskedés tőkegörbéje hat héten át 3%-on belül követte a backtesztét, aztán élesen eltért. Az ok a kerekítés volt: `int()` csonkolás a lépésközre kerekítés helyett a megbízásméretezőben, olyan pozícióknál alkalmazva, amelyek átlagosan 1.4 lépésesek voltak. A backteszt folytonos térben méretezett, az éles méretező pedig minden kis ügyletnél elvesztette a tervezett pozíció 20-30%-át. Semmi különös a teljesülési modellben, semmi késleltetési magyarázat. Csonkolás.

Amiben igazuk van a kritikusoknak

Három ellenvetés jogos, és nem akarom elhallgatni őket.

Először, és ez a legfontosabb: a méretezés elosztja a meglévő előnyt, de nem képes előállítani. Ha a jelzésed bruttó várható értéke a valósághű díjak és finanszírozás után nulla vagy annál kisebb, a táblázat minden szabálya veszteséges lesz — a kifinomultabbak csak szebb varianciaprofillal veszítenek. Olyan jelzést választottam, amelynek ebben az időszakban kicsi, de pozitív nettó előnye volt. Futtasd le ugyanezt a hat szabályt egy nettó −1.2 bps-os ügyletenkénti várható értékű jelzésen, és a sorrend megmarad, de minden záró saját tőke a kiindulási érték alatt lesz. A méretezés csak megszoroz valamit. A szorzandó alapra is szükséged van.

Másodszor, a volatilitáscélzásnak van egy valódi és jól dokumentált hibamódja: egy gyors eladás végén csökkenti a tőkeáttételt, a visszapattanás után pedig újra növeli. Egy éles V alakú fordulatban a fix névérték nyer, néha sokkal. A részvénypiacokon 2020 márciusa, a kriptopiacon pedig a 2024. augusztusi lefordulás büntette a volatilitásra reagáló méretezést a talpra állás szakaszában. A négyéves ETH-időszakomban történetesen több volt a volatilitás-klaszterekben zajló lassú mozgás, mint a V alakú, oda-vissza kilengés, ami kedvez az inverz volatilitásos soroknak. Más időszakban néhány helyezés megfordul, és ha a 2020-as adatokból vett táblázattal kezdtem volna, gyengébb érvet képviselnék.

Harmadszor, a méretezési szabály is ugyanúgy túlilleszthető, mint bármi más. A táblázatomban a gördülő becsléseken alapuló fél-Kelly árulkodik erről: kifinomultnak látszik, elméleti alapja van, mégis ez hozta a második legnagyobb visszaesést, mert egy zajos hozamsorozat gördülő átlagának becslése értéktelen, a Kelly-szabály pedig brutálisan érzékeny rá. Minden olyan méretezési szabály átveszi a várhatóhozam-becslés hibáját, amely ezt bemenetként használja, ráadásul fel is erősíti. A csak varianciabecslést használó szabályok sokkal jobban viselkednek, mert négy évnyi órás adatból éppen a varianciát lehet ténylegesen megbecsülni.

Amit mindebből megjegyeznék: ha egy backteszt eredménye meglep, mielőtt a jelzésben keresnél valami rafinált megoldást, nézd meg a méretezési modult. A Sharpe közlésekor pedig tedd mellé a tőkeáttétel teljes lefutását és a költségek bruttótól nettóig vezető levezetését is, mert egy olyan szám, amely ennyire függ a méretezési döntéstől, egyáltalán nem a jelzés tulajdonsága.

pozícióméretezésvolatilitáscélzásSharpe-mutatókockázatkezelésbacktesztelés
← Összes bejegyzés