En portföljbacktest kan visa en jämn aktiekurva samtidigt som den använder samma dollar två gånger. Det händer när simulatorn behandlar eget kapital, kontanter, säkerheter och köpkraft som utbytbara storheter. De hänger ihop, men besvarar olika frågor: vad kontot äger, vad det är skyldigt och vad det kan binda upp i en ny order just nu.
Säg att en strategi börjar med $10,000 och köper en tillgång för $6,000. Den har $4,000 i disponibla kontanter. Om backtestet sedan dimensionerar en andra position till 100% av dess eget kapital på $10,000, har det bundit upp $16,000 i exponering samtidigt som det bara redovisar $10,000 i kapital. Det kan vara tillåten hävstång enligt vissa kontoregler. Det blir inte tillåtet bara för att storlekskoden använde ”eget kapital”.
Fel sätt 1: att behandla eget kapital som kontanter
Den här genvägen förekommer i strategier med flera tillgångar. Varje signal dimensionerar sin order som en andel av portföljens aktuella värde, och varje order utgår från hela värdet. Portföljloopen beräknar orderna oberoende av varandra och lägger sedan ihop dem utan att reservera kapital.
Det är lätt att missa problemen i en backtest med likvida instrument och utan marginalsäkerhetskrav. Avkastningen ser rimlig ut, men positionernas vikter summerar ibland till 140% eller 180% när de räknas ihop i efterhand. Ett livekonto kan avvisa de senare orderna eller få en hävstång som strategin aldrig var avsedd att använda.
Reservera kontanter medan orderna skapas. På ett kontantkonto kräver ett köp på $2,000 $2,000 plus avgifter. På ett marginkonto beräknar du den nödvändiga marginalen enligt handelsplatsens regler och minskar sedan den tillgängliga köpkraften med det beloppet. Om flera order kommer in samtidigt behöver du ange deras prioritet. Annars kan resultatet bero på vilken loop som råkade köras först.
Fel sätt 2: att räkna bunden säkerhet som fri köpkraft
På en derivathandelsplats innebär en säkerhet på $1,000 inte nödvändigtvis att kontot har $1,000 mindre i eget kapital. Däremot är den säkerheten bunden till den öppna positionen. En vanlig bokföringsgenväg drar av den från kontanterna och drar sedan också av positionens hela nominella värde från köpkraften. En annan gör tvärtom och behandlar säkerheten som både fria kontanter och marginal.
Båda misstagen snedvrider bilden av vad nästa order kan göra. Det första kan få en strategi att verka onödigt begränsad; det andra kan godkänna order som kontot inte klarar. Vid 5× hävstång kan en position på $5,000 kräva ungefär $1,000 i initial marginal, men underhållsmarginal, avgifter, orealiserade förluster och handelsplatsspecifika nivåer påverkar det användbara beloppet. Nominellt värde är inte samma sak som säkerhet.
| Kontostorhet | Vad den representerar | Kan den finansiera en ny order? |
|---|---|---|
| Eget kapital | Kontovärde efter skulder och marknadsvärderade positioner | Endast med hänsyn till marginal- och köpkraftsregler |
| Disponibla kontanter | Kontanter som inte redan har spenderats, reserverats eller ställts som säkerhet | Ja, inom instrumentets regler |
| Bunden säkerhet | Medel som stöder en öppen position eller order | Vanligtvis inte tillgänglig förrän den frigörs |
| Köpkraft | Handelsplatsens beräknade kapacitet för ytterligare order | Ja, upp till den aktuella gränsen |
Modellera dessa som separata storheter, även om vissa av dem är lika i ett enkelt fall på en viss handelsplats. Testa sedan vad som händer när en position går med förlust: det egna kapitalet minskar, underhållsmarginalen kan öka som andel av det nominella värdet och den tillgängliga köpkraften kan krympa snabbare än någon av storheterna var för sig antyder.
Fel sätt 3: att frigöra kontanter när exitsignalen kommer
En backtest frigör ofta kapital så snart en exitsignal dyker upp. Men en exitsignal är inte en exekvering. Ordern kan vara väntande, delvis fylld eller annullerad; så länge positionen inte faktiskt stängs ligger dess marginal och exponering kvar. Även efter en avslutning påverkar avgifter och realiserat P&L vad som blir tillgängligt.
Problemen tenderar att hopa sig när omsättningen är snabb. Simulatorn stänger en affär, använder omedelbart intäkterna till en annan och antar sedan att båda avsluten skedde utan problem till de önskade priserna. I pappershandel kan den andra ordern avvisas medan den första positionen fortfarande är öppen. Eller så fylls exitordern bara delvis, vilket lämnar kontot med mindre disponibelt kapital än backtestet räknade med.
Håll reda på väntande order och positioner som åtaganden. Frigör kapital vid avslut, inte när du bara avser att handla. En delvis fylld exit bör frigöra kapital i proportion till den mängd som faktiskt stängts, efter kostnader. Det kan låta petigt, tills två strategier konkurrerar om samma kontanter en volatil dag.
Gör liggaren tydlig
För varje beslutstillfälle ska du ha en liggare som uppdateras i en fast ordning: marknadsvärdera befintliga positioner, beräkna eget kapital och marginal, behandla avslut och kostnader, räkna om köpkraften och dimensionera och reservera sedan nya order. Spara tillräckligt med detaljer för att kunna stämma av varje förändring i kontanter och positionsvärde.
En användbar invariant: varje godkänd order måste kunna finansieras enligt kontomodellen när den skickas. Om simulatorn inte kan förklara vilka kontanter eller vilken marginal som stöder ordern har backtestet inte visat att portföljen hade kunnat hålla den.
Kör en liten granskning parallellt med avkastningsberäkningen. Rapportera maximal bruttosponering, lägsta nivå av disponibla kontanter, minsta marginalutrymme och antalet order som skulle ha överskridit köpkraften. En strategi som bara presterar bra när kapital i tysthet återanvänds har gett ett resultat för portföljdimensionering, inte en backtest som går att använda i drift.
← Alla inlägg


