söndag 30 oktober 2011

Handla med neurala nätverk: Xact Bear och Ericsson B

För att följa upp på förra inlägget, så kommer här en simulering av mitt neurala nätverk på Xact Bear. Xact Bear är en börshandlad fond som avser att ge -150% av utvecklingen för OMXS30.
Nätverket är tränat på 2500 iterationer precis som förut efter signifikans. Jag testade fem gånger och tog det exempel med bäst signifikans i träningsperioden.
Här är resultatet:







Större delen av vinsterna kommer från 2008/2009 då volatiliteten var exceptionellt hög. Förmodligen skulle vi behöva ta bort den perioden för att få något som fungerar när volatiliteten inte är lika hög. En idé är att bara träna nätverket på perioder då marknaden är under MA200 för att handla marknaden under MA200 och vice versa. Då behövs inget krav på att nätverket ska anpassa sig till två vilt skilda tillstånd.

För att ytterligare undersöka hur robust nätverket är så har jag kört det på Ericsson B-aktien också.






Hyfsad utveckling i utvärderingsperioden. Den här strategin verkar också gilla hög volatilitet. Dock behöver mer utvärderingar göras innan vi kan bevisa att det verkligen fungerar som en investeringsstrategi.

KvA

torsdag 27 oktober 2011

Handla Xact Bull med ett neuralt nätverk

Svarta lådan
Neurala nätverk
är spännande så de ger oss möjligheten att fånga samband bortom det mänskliga förståndet. Vanliga indikatorer ger oss möjligheten att fånga en faktor i isolering, t.ex. en enkelt RSI där vi ser vad som händer efter höga och låga värden och kan därefter dra slutsatser. Ska vi därefter försöka kombinera det med en annan faktor t.ex. vilken dag i månaden det är börjar våra potentiella kombinationer gå över gränsen för vad som är möjligt att hantera. Vad händer om RSI-värdet är under 30 och det sker i mitten på månaden? Händer samma sak som när RSI är under 20 eller finns det något speciellt med lägen där marknaden bara är lite översåld? Att fånga alla icke-linjära samband är något neurala nätverk gör mycket bra.

För att testa om vi kan designa ett black box-system ska vi börja med att bestämma vilka saker som ska analyseras. Jag vill fånga så mycket som möjligt av informationen som finns i de senaste prisstaplarna och har bestämt mig för att ha fem inputs till nätverket. De är:

  • RSI(2), för att fånga prisförändringen.
  • Dag i månaden, för att fånga möjliga datumeffekter.
  • Stängningen i relation till högsta-och lägstakursen.
  • Omsättningen delat i summan av de senaste tio dagarnas omsättning, för att få in volymen också.
  • Dagens rang delat i summan av de senaste tio dagarna rang, för att kunna analysera volatiliteten.
När det är klart kan vi gå över till att välja en topologi för nätverket. Mitt nätverk kommer att se ut så här om man skulle illustrerat det (i paint).

Det är ett enkelt feedforward-nätverk där fem ingångs-neuroner är kopplade till fem neuroner i det gömda lagret som i sin tur är kopplade till utgångs-neuronen som säger om vi ska köpa eller inte. Varje koppling har en vikt, och varje neuron har ett tröskelvärde som säger om signalen den får från sina kopplingar är stark nog att agera på, är den det så avger neuronen en etta.
Jag kommer att testa nätverket genom att först träna vikterna på Xact Bull från den 24 februari 2005 till den 30 juni 2010. All efterkommande historik är vår valideringsdata där vi kan se om nätverket verkligen hittade något robust eller om den bara överoptimerade träningsperioden.
Träningen görs av en simulerad evolution, 100 individer skapas och testas för att sedan få kämpa om att få reproducera sig i 2500 iterationer. Fitness-värdet är i det här fallet signifikansen beräknade med students t-test.


Resultat och utvärdering







Signifikansen i vår träningsperiod visar att ett sådant resultat har en chans på runt 1 på 16 935 att vara orsakad av slumpen. Det blir lite sämre efteråt då chansen ökar till 1 på 11. Dock visar båda perioderna att nätverket kan slå en enskild investering i Xact Bull så kanske finns det värde i att hålla ett öga på den fortsatta utvecklingen.

Andra värdepapper som kunde vara kul att testa är de mest likvida aktierna och inverterade börshandlade fonder. Jag har många idéer på hur man ska förbättra nätverket, man skulle kunna lägga till fler inputs och lägga till fler neuroner för att förbättra flexibiliteten hos nätverket. Dock för varje tillägg med sig högre chans att nätverket lär sig träningsperioden utantill och då misslyckas så fort den utsätts för ny data.

Nästa gång testar jag Xact Bear.


KvA