tisdag 23 april 2013

Alpha från varierande hävstång och riskhantering

I den vinnande uppsatsen från 2010 års Wagner Awards presenterar Tony Cooper strategier baserade på den förutspådda framtida volatiliteten för S&P500. Principen bygger på att den geometriska avkastningen för en hävstångsprodukt kan approximeras med formeln

R = kµ - 0,5k2σ2/(1+ kµ)

där k är hävstången, µ är den dagliga avkastningen och σ är dess standardavvikelse. För små kµ kan vi med derivering lösa ut det k som maximerar R. Det ger 

k = µ/σ2

d.v.s kvoten mellan avkastningen och standardavvikelsen i kvadrat. Det faller sig självklart att denna inte nödvändigtvis alltid motsvarar 1, vilket är hävstången i en vanlig indexfond, och trots de konstanta varningarna om urholkningseffekten hos hävstångsprodukter så har kvoten historiskt sett varit närmare 2 hos OMXS30. 

Cooper's uppsats testade tre strategier som använde sig av formeln ovanför för att optimera hävstången med hjälp av en modell för att förutspå volatiliteten som kallas EGARCH(1, 1). Jag tänkte testa en förenklad variant (utan GARCH) av två av hans strategier, Konstant Volatilitet (KVS) och Optimal Volatilitet (OVS).
Strategierna beräknar k på olika sätt
KVS: k = c/σ
OVS: k = c/σ2

Där σ är volatiliteten hos index de senaste 21 dagarna (ungefär en månad) och c är en konstant.  För att testa strategiernas förmåga att producera risk-justerad avkastning sätter jag c så att volatiliteten över hela testperioden är samma som för OMXS30. Jag sätter också en övre gräns på k till 5 så att chansen att hela portföljen åker på en och samma dag minimeras. Courtage och slippage ignoreras.











Intressant nog så genererar både strategierna en avkastning över OMXS30 utan att ta högre risk. Det maximala värdefallet är ungefär lika för alla portföljer även om exponeringen i genomsnitt varit högre för KVS och OVS. Trots den ökade exponeringen så ökade inte inte Beta-komponenten hos den dagliga avkastningen för strategierna utan den hölls sig under 1 och istället så fanns det en stark Alpha-komponent som bidrog till att generera avkastning. Genom att subtrahera en konstant term till formeln för k hos båda strategierna så kan man minska Beta/Alpha-kvoten ytterligare och på så sätt så ut mer "ren" Alpha ur avkastningen hos strategierna baserade enbart på att mäta volatiliteten.


KvA    

fredag 27 juli 2012

Läsning inför tystare tider: uppsats om neuronnät-ensembeler

Det senaste året har det varit oförsvarligt tyst på den här bloggen. Om det berott på brist på inspiration eller tidsbrist låter jag vara osagt, men prio ett under våren har för mig varit slutspurten i skolan. Mina kvantitativa analyser och kodande har antingen legat inom det proprietära eller det ointressanta, men mycket till en skoluppsats som förmodligen kan ses som ses som en utvidgning av den här bloggen då den baserar sig mer på den än något annat. Under sommaren har fritiden mest gått åt till att knappa kod till min nya plattform (en stor uppgradering från mina gamla och sega Excel-ark) och till hösten ska jag påbörja studier för att bli civilingenjör och den stora omställning det ger gör att jag troligen kommer att fortsätta vara ganska tyst framåt. Som lite botgöring inför avsaknaden av inlägg lägger jag upp min uppsats och hoppas att någon kan få ut minst lika mycket som jag fick av att skriva den. Men ta den för vad den är; ursäkta engelska och matematiska förklaringar gjorda utan större kunskap eller erfarenhet samt beskrivningar gjorda onödigt svårtydliga i brist på bättre opponering. Håll till godo!



Equity Trading With an Ensemble Neural Network System



KvA    

lördag 30 juni 2012

Tickdata: Några observationer

I enighet med talesättet bättre sent än aldrig har jag börjat samla in affärshistorik för de fyra stora nordiska aktiemarknaderna. För till skillnad från dagligt samplad prishistorik så är tickhistorik, eller för den delen all intradagshistorik mycket sällsynt och dyr att köpa. Så för den lilla kvantoperationen som inte är villig att spendera stora delar av årets vinst på historik så blir det till att bygga en egen databas. Själva insamlingen är ganska simpel och kräver inget arbete; en liten app skriven i C# startas automatiskt när datorns slås på och ligger för de mesta och sover i bakgrunden. När börserna stängt för dagen så börjar den att läsa in Nordnets hemsida och gå igenom tabellen som visar dagens affärer nod för nod och sparar det i en txt-fil. Jag har nu lite mer än två veckors historik som tar upp en plats på runt ~250Mb så ett år borde blir runt 6-7Gb - knappast något som kommer att kräva en extra hårddisk i framtiden. Problemet med att endast ha level 1-data är att det finns inget sätt att veta om man kunde fått priset som senaste affären gjordes på. Ännu bättre skulle det vara att spara level 2-data (hela orderboken vid varje tidpunkt) men jag saknar en leverantör där jag skulle kunna hämta det gratis.

Med historik från den 15/6 (exkluderat den 18 då min app buggade ur) till den 29/6 har jag ritat följande diagram med omsättningen för varje minut för alla aktier i Sverige, Norge, Danmark och Finland. Den svarta linjen är medelvärde för de senaste 60 minuterna. Som förväntat så är öppningen och stängningen stora minuter, runt lunchen vänder den nedåtgående trenden och omsättningen ökar hela eftermiddagen.   




Något intressant med omsättningen är att den för varje minut är ganska förutsägbar baserat på de två föregående minuterna. Om omsättningen ökar en minut så finns det en sannolikhet på 64% att nästföljande minut har en lägre omsättning, och vice versa.

På samma sätt finns de en relation mellan förändringen i sekvensen av affärer. Om en affär sker till ett högre pris än föregående finns de en sannolikhet på 28% att nästa är lägre, 60% att nästa är på samma pris och 12% att det är högre. Omvänd så gäller för tick nedåt att 28% av nästföljande affärer sker högre, 60% oförändrat och 12% på samma. Anledningen till varför det ter sig så ligger förmodligen i alla de effekter som påverkar marknadens mikrostruktur som jag ännu inte har lärt mig. Då en tick uppåt förmodligen tar säljarnas bud  så borde köpsidan bli större än säljsidan och obalansen borde trycka kursen uppåt, men tydligen är sambandet omvänt. Kanske ligger svaret i likviditetsgaranternas vinstmarginal.

Hursomhelst är min samling ännu alldeles för liten för att börja backtesta seriöst på, För det krävs minst över 18 månader, för även om antalet observationer kan bli ganska stor med högre frekvens så garanterar det inte att marknadsklimatet inte påverkar resultatet allt för mycket. Jag planerar även att spara ner pressmeddelande och telegram som kommit under perioden, men det verkar iallafall Avanza spara på i minst ett år så jag behöver nog inte hämta det så ofta. Det ska bli intressant att se om det finns någon alfa intradag som ännu inte sugits upp av "robothandlarna".



KvA

lördag 2 juni 2012

11 sommarprojekt för den sysslolösa

Med de sista kurserna avklarade och de sista proven skrivna har jag nu plötsligt massor av tid att spendera på allehanda projekt under sommarlovet. Jag har börjat skissa på ett större programmeringsprojekt där jag ska skriva ett program för backtesting och aktieanalys som kommer att få Hitta Kursvinnare att blekna i jämförelse (förhoppningsvis). Jag ska skriva det i C# med bl.a. Meta Numerics för diverse statistiska funktioner. En intressant möjlighet jag undersöker är att få programmet att automatisk skicka ordrar till min mäklare vid givna signaler. Det skulle gör att jag slapp missa signalerna vissa dagar då jag inte haft tillgång till en dator. En annan funktionalitet jag planerar att undersöka är insamling av tickdata för att i framtiden börja daytrada eller kanske förbättra exekveringen av mina existerande strategier. Jag känner en pressande känsla av att jag behöver lära mig allt om databaser.   

För att dock försäkra mig om att ha saker att göra i sommar mellan programdesignandet och sommarmatten så komponerade jag en lista av projekt vem som helst kan ta sig an.
  1. Skriv ett kod som automatiserar en tråkig och enformig syssla du ofta gör, t.ex ladda ner nyckeltal eller hålla reda på affärer så att de lätt kan skrivas in i en K4-blanket. Kan du inte programmera så hitta någon som kan hjälpa dig att lära, mycket går att lära sig genom att bara läsa runt på internet. 
  2. Analysera alla affärer du gjort det senaste två åren och undersök vilken del av din beslutsprocess som bidragit minst till resultatet. Undersök om det skulle vara fördelaktigt att eliminera det steget. 
  3. Gå utanför din vanliga trivselzon och testa något nytt du aldrig förut funderat att handlat med, läs på om t.ex optionsstrategier och undersök möjligheten att minska din risk eller öka din avkastning genom att komplimentera dina investeringar.
  4. Hitta ett forum på internet och lär känna personerna där. 
  5. Samla allt informationsflöde du vill ta del av på en och samma plats. Ladda ner Operas webbläsare och lägga till alla bloggar, nyhetssidor och forum som du kan tänka dig vara intresserad av som kanaler till läsarens e-post.
  6. Skriv ut ett gäng uppsatser från ekonomutbildningar och läs igenom. Försök hitta fel i resultaten.
  7. Gå på en bolagsstämma, föreslå omedelbar likvidation av bolagets tillgångar. 
  8. Leta upp någon någorlunda känd självutnämnd "börsexpert" och öppna sedan ett papperskonto där du agerar i direkt motsatts till dennes rekommendationer. Utvärdera resultatet och skicka till experten med tillhörande vitsord.
  9. Ta en dag för att analysera orderboken hos någon mindre omsatt aktie på stockholmsbörsen. Leta efter korkade robotar eller ovana nybörjare som du kan utnyttja för egen vinning.
  10. Starta en blogg. 
  11. Stäng av dator och gå ut och njut av solen.            

söndag 4 mars 2012

Upp två dagar i rad andra dagen i månaden

Hitintills har detta år bara bestått av en tråkig, långsamt-krypande-uppåt marknad. När mars nu tar vid bestämde jag mig för att damma av en gammal VBA-kod och testa vad historien säger om nästkommande dagar.







Med en ganska låg sannolikhet, fast med mycket större skillnad i utfall mellan vinst och förlust, så lutar det åt att marknaden tar en sväng nedåt efter föregående månaders uppgång.


KvA