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

onsdag 22 februari 2012

Edge - en bokrecension

Som ett ganska trevligt avvikelse från den vanliga ormoljan som säljs av "tekniska analytiker" så är Edge av Torssell och Nilsson bland det mest akademiska som kommit ur soppan av tradinglitteratur i Sverige. Till skillnad från deras övriga upplagor så tar de faktiskt tiden att testa de påstående de kommer med och bygger boken utifrån tabeller över utfallen från dessa tester samt (som alltid med tradingböcker) med exempeldiagram där det fungerade bra.

Det inledande delarna är mest ett uppräknande av anomalier och diverse effekter de har hittat i akademiska uppsatser och lite psykologiska tillkortakommanden som människor besitter. Intressant här är att det skriver " Vad vi däremot efterlyser är en sund dos skepsis och att börsaktörer inte blint förlitar sig på en så obekräftad fallang [sic] inom den tekniska analysen som den traditionella tekniska analysen" (s.46). Sund skepsis, precis den formen man skulle behöva för att undvika att följa de råd de gav i sin andra bok. En smygande insikt som borde komma av denna sunda skepsis är att författarna aldrig har varit intresserade av att själva närma sig ämnet objektiv, utan bara insett att det är lättare att sälja påstående om man har statistik som backar upp en.

Följande kapitel testar vidare och gör det utan att riktig ha så stor koll på hur statistiken ska tolkas. Huruvida det är för att författarna saknar kunskap om korrekta tillvägagångssätt eller om de helt enkelt undviker det mest basala statistiska metoderna för att inte skrämma läsaren vet jag inte, men det lutar åt det sistnämnda. De nämner den genomsnittliga avkastningen för slumpade affärer men går inte speciellt mycket längre för att undersöka skillnaden mellan strategierna det testar och vad som kan förväntas om den bara var brus än att säga saker som: "det är ungefär dubbelt så bra som den genomsnittliga avkastningen för aktierna i urvalet"(s.138). Det är en speciellt viktigt del att lägga tid på då alla strategier som har någorlunda hög avkastning råkar ha mycket låga "opportunity". Att de beskriver 100 "nya" strategier och visar varför de har en edge är mer falsk marknadsförig än sanning. Det riktiga antalet strategier de testar är närmare hälften och majoriteten är mer eller mindre samma strategi.

Vare sig det är RSI eller stochastic så går alla välfungerande strategier i boken ut på samma sak; köp på svaghet och sälj på styrka. Varför alla råkar fungera bra vet ingen riktigt, men det gör det av samma princip. Vad författarna gör i Edge är att testa några dussin variationer av samma koncept, och det i ganska ooptimala former. Jämviktspendling fungerar bra, det är dock ingen perfekt guldgås för vanliga aktiespekulanter då nackdelarna är ganska rejäla och resultatet efter courtage är sällan tillräckligt bra för att bevisa att slumpen inte alltid är bättre eller lika bra.

Efter kapitlen om swingtrading och position trading (vilket för mig verkar vara synonymer, förstår inte behovet av ett till begrepp men då rubriken var särskriven antar jag att de tagit det från engelskan) kommer en sammanfattning av daytrading (vilket för det mesta är kapitlet samma koncept som förut fast intradag) för att sedan gå vidare till det kapitel jag fann roligast att läsa; Systematisk handel. Hela kapitlet är skrivet av Christer Andersson som, även om han inte lyckas så bra i verkliga livet, presenterar det hela i ett ganska matnyttigt 14,25 sidor. Detta även om han verkar ha varit för stressad för att beräkna sharpekvoten korrekt och gett de övriga måtten en korrekt enhet.

Så, för att sammanfatta så ligger min kritik i att Edge, även om den ger synen av att försöka, bara är en annat form av ett försök att sälj icke-fungerande tekniker till naiva småsparare. Trots att den presenterar statistiken, så håller det inte en närmare granskning värdig för dessa ändamål. Jag skulle ge den en sharpekvot på 2/5, även om det mesta bara var en upprepning och kopiering från existerande verk samt att priset är löjligt hög för 500 sidor av diagram över aktier, så ligger det lite nöje i att läsa den trots allt. Dock som alltid, med "en sund dos skepsis".


KvA