torsdag 24 november 2011

Hur man gör ett enkelt neuralt nätverk i Excel

Självklart kanske det finns en add-in för att göra neurala nätverk i MS Excel, men det är mycket roligare att göra det själv. Här är hur jag gör det;
  1. Hämta historik för valfri aktie/ETF/vadsomhelst. Min data för Xact Bull 2 hämtar jag här.
  2. Lägga Datum i kolumn A och Stängningskursen i Kolumn B.
  3. Skriv "=B3/B2-1" i cell C3 och fyll ner.
  4. Skriv "=C7*J$6+C6*J$5+C5*J$4+C4*J$3+C3*J$2" i cell D7 och fyll ner.
  5. Skriv "=OM(D7>0;1;0)" i cell E8, "=E8*C8+1" i F8 och "=G7*F8" i G8 samt skriv ett startvärde på portföljen (typ 100) i G7 för att sedan fylla ner rad 8.
  6. Skriv "=SLUMP()*(SLUMP.MELLAN(0;1)*2-1)" i J2 och fyll ner till J6.
  7. Lägg in en fitness-funktion i J1, kan vara t.ex. sharpe-kvoten, total vinst eller en regression. Jag lade in en länkning till det sista värdet i portföljen, "=G521".
  8. Kör följande makro för att skapa 20 slumpmässiga viktvektorer: Sub Skapa_initial_population()
    kol = 14
    Do
    kol = kol + 1
    Range(Cells(1, kol), Cells(6, kol)).Value = Range("J1:J6").Value
    Loop Until kol = 34
    End Sub
  9. Skriv en egen makro för att göra resten!

Vad det här exemplet gör är att ta den dagliga procentuella förändringen och multiplicera med en vikt för de senaste fem dagarna. Är värdet över noll så ligger vi långa, annars utanför. Mycket enkel, men den kreative kan med säkerhet göra mycket roligt utifrån det här enkla exemplet.


KvA

11 kommentarer:

  1. Intressant, har just själv börjat leka lite med Excel och aktiekurser men har haft lite svårt att hitta bra data. Speciellt intradag verkar omöjligt att få tag på utan att betala. Det sämsta med datat från nasdaqomxnordic.com är att den inte innehåller öppningspriset vilket känns viktigt..

    Har lite omxs30 data på hemsidan om du inte redan har det... http://www.n10.se

    SvaraRadera
  2. Är det samma som från Yahoo Finance? Dina öppningskurser verkar ha samma startdatum som deras.

    Har också sökt efter intradagsdata utan resultat. Tror dock man kan få det från Interactive Brokers API, men man kanske måste vara kund.

    SvaraRadera
  3. Nja dom kommer inte från Yahoo (plockade dem från ett aktieprogram :), det finns data längre tillbaks men utan öppningskurs och det går ju inte att använda i gap analysen.

    Skickar dig ett msg om jag lyckas få tag på intradags data, hade vart riktigt riktigt fint att hitta det...

    Har data från 1997, intresserad?

    SvaraRadera
  4. Nä, NasdaqOMX har ganska ren data från 1986. Men tack ändå! Skicka gärna ett mail närsomhelst.

    SvaraRadera
  5. Intressant, har du något bra tips på vad man skall läsa för att förstå mer av neurala nätverk om man inte pysslat med detta tidigare?

    SvaraRadera
  6. Googla Heaton Research, där finns massvis med information samt att man kan ladda ner encog som är en plattform för det mesta inom artificiell intelligens. Wikipedia-artikeln kan också vara bra att läsa som en introduktion.

    SvaraRadera
  7. Vore super om du har möjlighet att lägga ut excel-filen istället för att ange cellerna - blir ganska rörigt och oöverskådligt. Tack för en väldigt informativ/bra blogg!

    SvaraRadera
  8. Hej KvA! Underbar sida med många intressanta frågor som du tar upp! Jag har en fråga över din punkt 9 ovan, är det som så att jag måste skriva ett eget makro eller kan jag följa din instruktion rakt av? Min kunskap och erfarenhet av programering är noll, dock har jag tradat i olika värdepapper de sista 21 åren, de sista 13 bara tekniskt.

    SvaraRadera
  9. Tack för de fina orden! Det är meningen att du ska skriva ditt eget makro. Jag skrev inlägget för att det var ett stort intresse av hur jag gjorde, men jag har ingen avsikt att dela med mig av mina av direkta implementationer. Vet du bara vad du vill göra så ser jag inga svårigheter med att hitta tillvägagångssättet via google.

    Jag uppskattar att träffa erfarna handlare, skicka ett mail om du vill diskutera lite.

    SvaraRadera
  10. Hej igen, prövade att klicka på din mejlsignatur men inget hände, vad har du för mejl?

    SvaraRadera
  11. Hej! Jag tycker din blogg är så bra! Skulle du vilja ta kontakt här på ett DM (direktmeddelande): https://twitter.com/Kvantinvest

    SvaraRadera