You are currently viewing NAS HT20 Kodningskurs – Lektion 1

NAS HT20 Kodningskurs – Lektion 1

– Inlägget är skapat i samarbete med Autostock

Jag tänkte jag skulle uppdatera er lite om hur det går för mig på min kodningskurs och tänkte vi skulle titta lite på vad jag lärt mig vid varje lektion.

Det var någon vecka sedan vi hade den första lektionen men har satt mig ner och tittat på den igen nu några gånger och fört mina anteckningar. Lektionen gick först igenom lite av vad vi kommer att gå igenom under kursens gång:

  • Grundläggande syntax
  • Dataserier och fördefinierade variabler
  • Olika typer av script
  • Minnesceller – olika typer
  • Avancerad kodning
  • Tips och tricks
  • Scriptbibliotek – klipp och klistra egna modeller
  • Vi bygger en komplett aktierobot

Vi fick även reda på att den robot som vi sätter ihop kommer att vara en robot som handlar i aktier, vilket är något som är unikt för denna kodkurs. Detta eftersom huvudpersonerna bakom Autotrader den senaste tiden ägnat sig åt att skapa robotar för index, valutor och råvaror. Det är även så att tidigare NAS upplägg även har fokuserat på detta.

Den första lektionen hade som fokus Autotraders grundläggande syntax. Det som är speciellt med Autotrader är att de har en helt egen syntax. Med syntax menar jag det språk du som användare använder dig av för att programmet ska förstå dig och göra det du vill.

Detta har enligt mig både för- och nackdelar. Syntaxen liknat MetaStock och Vikingen men skiljer väldigt mycket från t.ex. EasyLanguage. En fördel med deras syntax är att koden ofta blir kompaktare och att man kommer väldigt långt med relativt lite kod.

En nackdel är då att det skiljer sig från andra högnivåspråk, det vill säga att kan man t.ex. Javascript är det ofta väldigt enkelt att lära sig Python eller Easylanguage. Detta språk är unikt vilket gör att inlärningskurvan blir lite förskjuten. Vilket också är en av anledningarna till att jag faktiskt går denna kurs.

Vi gick igenom Autotraders fördefinierade variabler som är:

C (Close) – Senast betalt
H (High) – Högsta kurs i stapeln
L (Low) – Lägsta kurs i stapeln
O (Open) – Öppningskurs i stapeln
V (Volume) – Stapeln handlade volym
S (Sell) – Säljkurs
B (Buy) – Köpkurs
D (Date) – Tidsstämpel för periodens startpunkt

Att programmet kan få fram potentiella köp och säljkurser öppnar upp väldigt många möjligheter. Detta eftersom vi kan göra backtester som är mer verklighetstrogna. 

Vi gick även igenom att i Autotrader kan du skapa olika typer av script som har en specifik uppgift i programmet. Det finns t.ex. script som beslutar om en order ska skickas programmet har även den funktionen att du kan få larm antingen i din mobil eller på din mejl om ett sådant här script blir sant. 

Utöver dessa script finns det även specifika script som används för att rita ut objekt i grafen, script som bestämmer det pris som en order ska läggas på och så vidare. Genom att göra på detta sätt kan man enkelt själv bestämma en spread för att få ett backtest som är så verklighetstroget som möjligt. Det gör även att vi kan bestämma att en robot ska lägga en order på en aktuell säljkurs men även att vi kan lägga vår order på aktuell köpkurs och hoppas på att någon nappar på vår order.

Vi gick även igenom en annan intressant aspekt med programmets syntax och det är att du kan själv välja i vilket tidsupplösning ett script ska köras i. Det vill säga att om du inte specificerar något kommer scriptet att köras i den upplösningen som diagrammet har. 

Men det du kan göra är att i scriptet kan du definiera att scriptet t.ex. ska köras på 30 minuters staplar. Detta script kommer då alltid att köras på 30 minuters staplar oavsett vad för upplösning du har i diagrammet. Detta i sin tur gör att du enkelt och smidigt kan skapa olika script som körs i olika tidsupplösningar och då kunna skapa robotar eller backtest som testar på flera olika tidsupplösningar samtidigt.

I lektionen gick vi snabbt igenom hur det kan se ut om vi testar att köpa när vi fått en lägsta nivå som är under ned nedre Bollingerbandet i 30 minuters upplösning men att aktien ska befinna sig över 100 dagars medelvärde i dagsupplösning. Det ska alltså se ut som i bilden nedan:

Dem blå flaggorna i bilden ovan signalerar när våra kriterier är uppfyllda.

Detta är superintressant och har en stor fördel jämfört med många andra program där detta är lite komplicerat att få till. Om vi tittar i grafen kan det vara lite svårt att se om vår kod verkligen gör det den ska göra.

Det du kan göra då är att rita ut 100 dagars medelvärde för stängningskurser trots att vi har grafen i 30 minuters upplösning. Vi kan även lägga till Bollingerbands för 30 minuters upplösningen.

Det blir betydligt enklare för oss att se att vår kod faktiskt gör det den ska göra och detta kan även användas i andra sammanhang när vi ska testa idéer och tankar.

Till sist gick vi även igenom att programmet har olika minnesceller. Det vill säga platser där du kan förvara data. Det finns olika typer av minnesceller, celler som är specifika för ett instrument, celler som är globala som kan nås av alla script och till sist även script som kan kommunicera med annan kod utanför programmet. Det vill säga att denna information skrivs ut i en fil utanför programmet som du kan nå t.ex. med Python kod.

Detta är något jag inte visste och något som jag blev väldigt positivt överraskad av. Python har en del fördelar när det kommer till att behandla data jämfört med Autostock. Att då kunna använda båda språken tillsammans är väldigt intressant.

Om du är intresserad av Autostock kan du titta vidare på programmet här och om du är intresserad av några av deras kurser finns det mer information här.

Syftet med denna webbplats är att bidra med information och ge min allmänna syn på börsen, index, valutor och råvaror. Det är inte meningen att informationen ensamt ska utgöra underlag eller ses som uppmaningar för köp- och säljbeslut. Informationen är min personliga syn och även om jag anser att de källor och metoder jag använder är tillräckligt tillförlitliga. Nineambell tar inget ansvar för eventuella brister i källmaterialet eller tillförlitligheten i det som erhålls i samband med utnyttjandet utav denna sida. Handel med finansiella instrument innebär alltid en risk. Nineambell svarar inte för eventuella förluster uppkomna genom investeringsbeslut baserade på information från denna webbplats.

Lämna ett svar