Excel och placeringsstrategi

När jag administrerar mina portföljer är ett av de viktigaste hjälpmedlen Excel. Där bokför jag varje position och håller dagligen koll på risknivåer och exits. Kanske kan det vara till inspiration med en liten genomgång av vilken data jag arbetar med.’

För varje position, lång som kort, är det förstås viktigt att spara ingångskurs, antalet kontrakt, risken jag ursprungligen tog, och den initiala stoplossen. Jag beräknar risken R genom att ta det högsta av gårdagens Average True Range (ATR) för 22 respektive 5 dagar, och multiplicera det med en konstant på 3.25. Konkret innebär det att jag lägger min initiala stoploss på ett avstånd som med marginal ska vara utanför marknadens brus, och alltså undvika att stoppas ut på grund av normala dagsrörelser.

Den initiala stoplossen är fast och ändras inte beroende på kursutveckling. Jag kompletterar den med en så kallad Chandelier-exit, där jag lägger exiten på ett avstånd från den högsta noteringen sedan jag tog positionen (omvänt för en kort position). För denna exit behöver jag lagra högsta eller lägsta pris sedan positionen togs. Dessutom måste jag dagligen uppdatera ATR(22) och ATR(5) för att kunna addera eller subtrahera det högsta av de värdena från högsta respektive lägsta notering. På samma sätt som vid den intitiala stoplossen multiplicerar jag ATR-siffran med en konstant, denna gång 4.25, innnan jag använder den för exiten.

Chandelier-exiten följer med kursutvecklingen, men bara åt rätt håll. Ökar priset i en lång position så stiger exiten, men sjunker det så står exiten still. Exiten kan också förändras om ATR-värdet sjunker, och alltså volatiliteten avtar. Man behöver alltså spara den senaste exiten och bara uppdatera den om priset och/eller ATR ändras på ett sätt som för exiten närmare kursen.

I stort sett varje dag uppdaterar jag exitnivåer och lägger dem som stoploss-ordrar i mitt handelssystem. Så fort kursen träffar exit stängs positionerna automatiskt. Ett enkelt sätt att bygga in disciplin och konsekvens i placeringsstrategin.

Jag håller också koll på upparbetad vinst i varje position och beräknar den uttryckt i multiplar av R. Om jag riskerat 10 kr per kontrakt i en position och kursen stigit så att jag nu har en vinst på 20 kr per kontrakt så innebär det att jag har en vinst på 2*R. Med andra ord har jag tjänat dubbelt så mycket som jag riskerat. Vid denna nivå kommer jag att snäva till Chandelier-exiten genom att minska konstanten jag multiplicerar med. Uppnår jag en vinst på 3R så avyttrar jag positionen direkt.

Risknivåberäkningar 

För att beräkna break-even risken för varje position behöver jag dagligen beräkna skillnaden mellan ingångskurs och aktuell exit och multiplicera med antalet kontrakt. Om positionen utvecklats bra så kommer break-even risken till sist att bli 0, då exiten ligger ovanför ingångskursen (omvänt för en kort position).  Break-even risken dividerar jag med portföljvärdet för att få risken relaterat till kapitalet.

För att beräkna marknadsrisken för varje position behöver jag varje dag beräkna skillnaden mellan aktuell kurs och aktuell exit och multiplicera med antalet kontrakt. Marknadsrisken dividerar jag också med portföljvärdet för att få risken relaterat till kapitalet.

För att beräkna volatiliteten för varje position tar jag dagligen det största ATR-värdet och multiplicerar med antalet kontrakt, för att sedan dela med portföljvärdet. Det visar hur mycket en normal dagsrörelse skulle påverka kapitalet.

För varje marknad jag placerar i summerar jag sedan riskerna för alla positioner. Tack vare min signalgenerator kan jag ju ha multipla positioner i varje marknad, och utan riskkontroll skulle risken snabbt bli ohanterligt stor. Jag tillåter max 1.5% i break-evenrisk, 3.0% marknadsrisk och 1.0% i volatilitet per marknad. Överskrids någon av dessa gränser kommer jag att avyttra positioner.

Jag summerar sedan alla marknadsrisker för att beräkna portföljens totala risk, vilket är så mycket som kapitalet skulle minska om alla positioner utvecklades maximalt dåligt och träffade exits.

Bokföring

Alla avslutade positioner ska förstås bokföras så man kan se hur strategin fungerat. Det handlar inte enbart om att titta på plus och minus, utan också om att mäta varje affär uttryckt i R. En framgångsrik affär ger en vinst på 3R, en misslyckad affär ger en förlust på -1R. Genom att arbeta systematiskt är mitt mål att dra in 4R per marknad och år. Det bygger på vissa antaganden om träffsäkerhet, handelsfrekvens och exitparametrar. Genom att analysera bokföringen ser jag om jag ligger rätt i mina antaganden, eller om jag behöver förändra något.

Annonser

7 thoughts on “Excel och placeringsstrategi

  1. Ännu ett informativt inlägg, som jag lär återkomma till i takt med att jag lär mig att hantera de bakomliggande verktygen.

    Ungefär hur mycket tid ägnar du åt dina placeringar per dag resp. vecka, normalt sett?

    • Tack Markus! Att uppdatera alla siffror, lägga ordrar och updatera stoploss-ordrar tar mig ca 45-60 minuter varje dag.

    • Hej Freelunch! Jo, det är klart att jag har backtestat systemen så gott som det går. Med det menar jag att jag studerat utfallet av en placeringsstrategi för individuella marknader under en längre period. För att kunna testa Onsdagsfonden Sundry, som handlar på många marknader, krävs det verktyg som ännu så länge är för dyra att köpa in eller för komplexa att utveckla själv, för att göra en fullständig backtesting.
      Det finns också en fara med överdriven test med historiska kurser, nämligen att man optimerar parametrar eller lita för mycket på utfall som baseras på just historik. Att testa med verklig data är det ultimata testet och just bland annat därför driver jag bloggen. Onsdagsfonden Sundry har nu varit igång ett tag, och den nuvarande strategin har varit i stort sett oförändrad sedan mitten av 2010. Om något år börjar jag få värdefull statistik i tillräcklig grad för att evaluera systemprestanda på ett mer kvalificerat sätt.

  2. För dyra för att köpa in? Det är ju inte nödvändigt att använda matlab till allt, finns massor av alternativ som är gratis. R är ganska stort, octave är mer eller mindre matlab och python är enkelt att använda. Eller varför inte dra på med lite fart så att du kan köra monte carlo-simuleringar med C# eller java, visual studios finns gratis i vissa versioner. Dina strategier verkar dock inte vara så komplexa att de kräver så värst mycket kod, man skulle troligen kunna göra allt i Excel med lite VBA-makros.

    Med tanke på att du har ganska lång tid i positionerna så skulle det nog ta tjugo år innan du fick fram gällande statistisk signifikans, är det inte bättre att lita på utfall historiskt än utfall utan historik? När är du villig att avfärda modellen som icke-fungerande?

    Cheers!

    • Freelunch, tack för din kommentar! Mina algoritmer är inte komplexa, helt rätt. Men om man handlar på 15 marknader så blir det ändå en del pyssel, inte minst att få in all kursdata på rätt sätt. Det blir också en hel del positioner att hålla koll på. Det finns program för att bygga och backtesta strategier, men de är rätt dyra. Just nu sitter jag och funderar på alternativet Amibroker som verkar vara ett prisvärt alternativ, där man med egen kod kan implementera sina regler över en större portfölj. Jag skulle nog också kunna bygga i Excel, men då får jag det lite mer mödosamt att få in data.

      Lång tid vet jag inte, en normalposition håller jag i allt från några veckor till några månader. Sedan använder jag mig förstås inte av placeringsstrategier utan historik, jag har handlat i många år med liknande grundfilosofi, och undan för undan förädlat mina regler. Det som jag inte har kunnat testa tillfredsställande är hur position sizing påverkar resultatet statistiskt, och det är här jag vill göra mer systematisk backtesting över en marknadsportfölj.

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s