– Inlägget är skapat i samarbete med Autostock
I dagens inlägg ska vi fortsätta gå igenom de kunskaper jag förvärvar tack vare NAS HT20 Kodningskurs. Vi ska titta på det Rikard och Henrik gick igenom i Lektion nummer 2. Denna lektion fortsatte lite i samma anda som Lektion nummer 1, det vill säga väldigt grundläggande med syfte att få en stabil grund att stå på innan vi kommer gå djupare in i kodningen.
Fokuset för lektionen låg på:
- Grundläggande struktur ordermodeller
- Köpta och blankade innehav
- Olika konfigurationsmöjligheter
- Bygga en ordermodell
- Simulering i analysbänken
I Autotrader, som jag nämnde i tidigare inlägg, finns det ett antal olika typer av script. Varje typ av script har en specifik uppgift, t.ex. bestämma om en order ska skicka eller inte. Men för att bygga en robot eller göra ett backtest krävs det mer än att bara veta om en order ska skickas.
Roboten behöver även veta till vilket pris ska ordern läggas på, hur många aktier eller instrument ska köpas och så vidare. Autotrader har som jag skrev olika typer av script som sköter dessa uppgifter och du kan därefter väva ihop alla scripten till en ordermodell.
På lektionen gick vi då igenom grunderna för en ordermodell, hur vi skapar den och hur de är uppbyggda. Det är så att en ordermodell kan skapas på lite olika sätt beroende på vad vi vill få ut av den. En ordermodell kan vara uppbyggd av ett antal olika sekvenser som ordermodellen måste stega igenom men kan även bestå av endast en sekvens.
En ordermodell kan skapas för att köpa, sälja, gå kort och “cover” sin blankningsposition. Därefter kan dessa olika typer av ordermodeller läggas ihop en till handelsstrategi som då din “robot” kommer att utföra.
En smart feature som finns inbakat i ordermodellerna är att man kan välja att makulera befintliga ordrar innan en ny order skickas. Detta är ett smart sätt att se till att vi inte får flera ordrar i marknaden och vi riskerar att fler ordrar än vad vi tänkt går till avslut.
Som jag skrev innan behöver en ordermodell lite olika script och ett av dem är ett triggerscript som bestämmer om en order ska skickas. När ska du skapar en ordermodell ska välja ett triggerscript om ordermodellen agerar på.
Därefter behöver en ordermodell lite annan information, såsom att veta hur många aktier som ska köpas, vilket pris som ordern ska läggas på. Detta sköts då av andra script som du lägger in i ordermodellen, det finns även möjligheten att lägga till kontrollscript som körs före att en order skickas iväg. Detta kan t.ex. vara att kontrollera att det gått tillräckligt lång tid innan en ny order skickas.
Det som är bra med att Autotrader är uppbyggt på detta sätt är att om vi kör ett backtest kan vi sätta ett köppris som lite högre än den aktuella säljkursen, detta gör att vi tar hänsyn till slippage och spread. Detta gör att vi kan få en betydligt mer verklighetstrogen bild när vi kör vårt backtest.
Det är även så smart att du kan i dina triggerscript kontrollera hur stor position i det aktuella instrumentet som i dagsläget finns på ditt konto, detta möjliggör i sin tur att du kan bygga robotar som skalar in och ut eller som handlar upp till ett visst värde. Du kan såklart då även kontrollera hur mycket du ska sälja, du kan t.ex. sälja halva innehavet.
Som jag skrev i förra inlägget om Lektion 1 skapade vi i den första lektionen ett triggerscript som signalerade om vi hade en lägsta nivå som var under det undre Bollingerbandet i 30 minuters upplösning och att aktien befann sig ovanför 100 dagars glidande medelvärde.
I lektion 2 byggde vi vidare på detta script och gjorde en hel ordermodell av det. Det vill säga att vi skapade en ordermodell och vi la till script för hur mycket som skulle köpas och till vilket pris. Därefter skapade vi även ett triggerscript för säljsidan, som säger sig självt, bestämde när vi skulle sälja.
Kriterierna för att säljas sattes till att sälja positionen när aktien var ovanför det övre Bollingerbandet i 30 minuters upplösning. Efter att vi skapat handelsstrategin testade vi den i Analysbänken. Detta är ett verktyg i Autotrader för att backtesta strategier.
Analysbänken är ett bra verktyg där du kan ställa in många olika kriterier, du kan t.ex. ställa in om du vill testa data per minut, 5 sekunder eller till och med per sekund. Du kan alltså få en betydligt mer verklighetstroget backtest jämfört med många andra program, analysbänken ser ut som nedan:
Du kan även göra inställningar för courtaget när du testar, du kan skriva in minimicourtage men även ett procentuellt courtage, vilket är som de flesta mäklare fungerar.
Jag körde ett snabbt litet test med vår ”strategi” på Assa Abloy och fick då följande resultat:
Detta resultatet var väl ingen succé men det var inte själva tanken med ”strategin” utan var snarare till för att skapa en förståelse för hur enkelt och snabbt man kunde skapa en strategi som handlade utefter kriterier i olika tidsupplösningar.
Detta var ett litet smakprov på vad jag lärde mig under Lektion 2, nästa lektion ska vi börja gå in på mer avancerad kod och vi kommer skapa ett script för att signalera positiva divergenser.
Du hittar mer information om Autostock här och om du vill läsa lite mer om kodningskursen kan du antingen titta på ett av mina andra inlägg eller vad Autostock skriver om sin kurs 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.