Att bygga ordermodeller i Nordnet AutoTrader

Slides:



Advertisements
Liknande presentationer
låt oss presentera SLIDEPLAYER.SE
Advertisements

Snabbguide och tips.
Visual Basic - Genomgång
Talföljder formler och summor
Skapa ett video-CV på YouTube
Anneli och Christians Datorskola
Grunder i PowerPoint 2000 Skapa en ny presentation Rita egna objekt
En genomgång av spelet: Dubbelkrig-Grön
Kap 1 - Algebra och linjära modeller
MaB: Ekvationssystem Allmänt
Att söka till högskolan
Access med Sebastian och Robert
hej och välkomna EKVATIONER Ta reda på det okända talet.
Videokonsultation med medborgare
FL4 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
Programstruktur: C för enchipsdatorer
2D1311 Programmeringsteknik med PBL
Boo FF vill tacka er för året som gått och önska alla en God Jul och ett Gott Nytt År! Vinterträningen är igång, planerna var vita i måndags men är nu.
Vill du lära dig kort division?
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Flödeskontroll Satser i ett program utförs en och en efter varandra. Detta kallas sekvensiell flödeskontroll. Ofta är det dock nödvändigt att modifiera.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
MaB: Andragradsekvationer
Programmering B PHP Lektion 2
Workshop inför Projektet
Programmering B PHP Lektion 2
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Programmering B PHP Lektion 3
Tabeller.
Beräkna en ekvation (metod 1)
Beräkna en ekvation (metod 1)
Felkalkyl Ofta mäter man inte direkt den storhet som är den intressanta, utan en grundläggande variabel som sedan används för att beräkna det som man är.
Exder EPC. Exder EPC Välkommen! I det här bildspelet går vi igenom hur man lägger upp nya artiklar samt skickar artikelinformation. Du bläddrar framåt.
Funktioner, styrstrukturer, manipulering av matriser
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Grundläggande programmering
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Diskreta, deterministiska system Projekt 1.2; Vildkatt
ARITMETIK – OM TAL.
Modulär programutveckling
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Namnrum, räckvidd och rekursion Linda Mannila
En mycket vanlig frågeställning gäller om två storheter har ett samband eller inte, många gånger är det helt klart: y x För en mätserie som denna är det.
Problemlösningsmetodik
Simulering Introduktion Exempel: Antag att någon kastar tärning
Föreläsning 7 Fysikexperiment 5p Poissonfördelningen Poissonfördelningen är en sannolikhetsfördelning för diskreta variabler som är mycket.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Fysikexperiment, 5p1 Random Walk 36 försök med Random walk med 1000 steg. Beräknad genomsnittlig räckvidd är  1000  32. Visualisering av utfallsrum.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
1 Registrering och uppladdning shp-filer för geotekniska undersökningsområden - startläge.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Manada.se Algebra och funktioner. 1.1 Algebra och polynom Förkunskaper: Grundläggande algebra Konjugatregeln och kvadreringsreglerna Andragradsekvationer.
Att bygga ordermodeller i Nordnet AutoTrader Genomgång grundläggande teori ordermodeller Genomgång script och konstanter Genomgång några enkla tekniska.
Att bygga ordermodeller i Nordnet AutoTrader Genomgång grundläggande teori ordermodeller Genomgång script och konstanter Genomgång några enkla tekniska.
1 Optionerr 9  NU ◦ Avtal ◦ Leverans ◦ Betalning.
KPP053, HT2015 MATLAB, Föreläsning 4
Kap 1 - Algebra och linjära modeller
VISNINGSVERKTYGET POWERPOINT i office 365
Optionskola grundkurs
Trender Positiv trend = högre bottnar + högre toppar
Aktieskola.se.
DIAGRAMTYP 1. Gå till rutan ”välj diagramtyp” i verktygsfältet. Ändra diagramtyp till Candlestick. Ändra sedan tillbaka till OHLC.
Teknisk Analys.
Att bygga ordermodeller i Nordnet AutoTrader
Övningar.
Presentationens avskrift:

Att bygga ordermodeller i Nordnet AutoTrader Genomgång grundläggande teori ordermodeller Genomgång script och konstanter Genomgång några enkla tekniska indikatorer Hitta samband mellan några indikatorer Genomgång tilldelade namn, minnesreferenser och extra objekt Scriptkommandon att använda i triggerscript Bygga triggerscript för köp- och säljsignal Konstruktion prisscript, antalscript och extra kontrollscript Bygga färdigt ordermodellen inkl teori bakom parallella ordermodeller loopfunktioner

Grundläggande scriptkunskaper Vad är script? Skillnad mellan script och ordermodell?

Ordermodellen och dess sekvenser

Parallella ordermodeller

Fördefinierade konstanter C – Closekursen O - Openkurs L – Low H – High B – Buy S - Sell V – Volym D – datum enligt databas Date() - datum enligt systemtid

Enkla tekniska indikatorer Glidande medelvärde Mov(c,20,s) Bollingerband övre BolBands(20,2,u) Oscillator Osc(c,3,20,e)

Exempel på uttryck mult(c,1.01) multiplicerar senast betalt med 1.01 sub(h,l) returnerar skillnaden mellan H och L or(villkor1,villkor2) returnerar logiskt SANT om antingen villkor1 eller villkor2 är SANNA. Om båda är falska returneras falskt från uttrycket hhv(c,5) returnerar högsta värdet av C för senaste 5 perioderna aref(kurva,1) returnerar värdet för variabeln ”kurva” 1 period bakåt

Exempel på villkor bollinger_övre=bolbands(20,2,u) studs_bollinger=gt(c,bollinger_övre) villkoret blir SANT när C är högre än bollinger_övre. SANT och FALSKT används för att fatta beslut i script.

Tilldelade namn Gräns1:=100 (notera kolon före = som talar om att det är ett tilldelat namn) 1. Tilldelade namn används för numeriska värden. 2. Minnesreferenser används för logiska villkor. OBS! Viktigt att samla minnesreferenser längst ned i scriptet.

Börja leta samband

Vi zoomar in lite

Frekvensband hjälper oss hitta sannolika vändpunkter för köp och sälj

Signaltillfällen

Förutsättningar för köpsignal OMXS30 ovanför sitt 200-dagars medelvärde Frekvensfördelning 30 senaste dagarna bildar köp- och säljnivåer Kurs under lägsta nivå 30 senaste dagarna definierad av slutkurser som förekommit minst 70% av tiden Vi handlar i slutet av dagen (ett par minuter innan stängning) Inget innehav finns

Vi definierar scriptindikatorerna 200 dagars glidande medelvärde ma200=mov(omxs30,200,s) (här kommer vi använda ett ”extra objekt” - alltså kursdata från OMXS30 trots att scriptet är anslutet till den minifuture vi vill handla) omxs30=cmpref(c,0,a) {@A(0,OMX Stock )} (klicka på Extra objekt)

Så här får du fram extra objekt

Definiera frekvensband för köpnivå (lo) lo=freq(omxs30,30,10000.7,L) Definiera villkor som testar om klockan är mer än 17:20 klocka=frac(date()) kl1720=gt(klocka,0.722) (Julianska kalendern – kl 00:00 motsvarar värde 0 och kl 24:00 motsvarar värde 1 Frac() tar ut decimaldelen av datumtalet)

Definierade villkor för köp långtrend=gt(llv(omxs30,5),ma200) kl1720=gt(klocka,0.722) ej_innehav=le(portfolio(v),0) köpläge=lt(omxs30,aref(lo,1))

And-kommandot villkor1=and(villkor2,villkor3) köp1=and(villkor1,xxxxx)

Scriptformel - sammanställning

Kombinera ihop villkoren för köp köp1=and(köpläge,långtrend) köp2=and(köp1,ej_innehav) köp3=and(köp2,kl1720)

Samla ihop hela triggerscriptet omxs30=cmpref(c,0,a) { läser in kurs för OMXS30 } ma200=mov(omxs30,200,s) { definierar 200-dagars medel för OMXS30 } långtrend=gt(llv(omxs30,5),ma200) { testar om 5-dagars lägsta stängning OMXS30 > ma200 } ej_innehav=le(portfolio(v),0) { testar om innehav är noll eller blankat } lo=freq(omxs30,30,10000.7,l) { definierar 30-dag frekvensband - används som köpnivå } köpläge=lt(omxs30,aref(lo,1)) { testar om OMXS30 är under frekvensband igår } draw(lo,3,dgqb) { ritar ut frekvensband i diagram } klocka=frac(date()) { definierar klockslag just nu } kl1720=gt(klocka,0.722) { testar om klockan är senare än 17:20 } köp1=and(köpläge,långtrend) { testar om köpläge och långtrend SANT samtidigt } köp2=and(köp1,ej_innehav) { testar om köp1 och ej_innehav SANT samtidigt } köp3=and(köp2,kl1720) { testar om köp2 och kl1720 SANT samtidigt } mult(köp3,5) { multiplicerar köpsignal SANT eller FALSKT med 5 } {@A(0,OMX Stock )} { definition av extra objekt med OMXS30 i dagsupplösning }

Scriptförutsättningar - parentesdjup Tilldelade namn ex: värde:=100 summa:=Add(värde,35) Minnesreferenser ex: värde:=100 summa=Add(värde,35) Viktigt att minnesreferenser omsluts av intradayprefix om sådant används

Upplösning – dags till intraday Script utan intradayprefix körs i dagsupplösning Larm kan triggas när som helst under dagen Script med intradayprefix körs i låst upplösning Du kan ha vilken upplösning som helst i chart Intradayprefix skrivs: i5(slutvillkor eller minnesreferenser)

Vi definierar prisscript och antalscript Köp på aktuell säljkurs + 0,25 kr add(s,0.25) Handla för belopp dividerat med säljkurs i1( { intradayprefix 1 minutupplösn } insats=ScrPar(21) { läser in värde från Indata script } köpantal=Int(Div(insats,s)) { Dividerar med säljkurs } innehav=Portfolio(v) { mäter innehav } övermål=Ge(innehav,köpantal) { testar om innehav större än mål } slutantal1=If(övermål,0,SUB(köpantal,innehav)) add(slutantal1,0) )

Extra kontrollscript Spärra orderskurar vid misslyckad köporder tidspärr:=1 lt1=LastTrade(B,D) minSedanKöp=mult(sub(date(),lt1),1440) gt(minSedanKöp,tidspärr)

Säljscript Kurs över övre frekvensband Innehav finns Klockan är senare än 17:20

Sida att ladda ner kursmaterial www.autostock.se/scriptkurs

Triggerscriptet för säljsidan omxs30=cmpref(c,0,a) { läser in kurs för OMXS30 } innehav=gt(portfolio(v),0) { testar om innehav större än noll } hi=freq(omxs30,30,10000.3,h) { definierar övre frekvensband – används som säljnivå } klocka=frac(date()) { läser in klockslag } kl1720=gt(klocka,0.722) { testar om kl senare än 17:20 } sälj1=gt(omxs30,aref(hi,1)) { testar om OMXS30 större än frekvensband igår } draw(hi,2,rqb) { ritar ut övre frekvensband i diagram } draw(mult(sälj1,5),3,rsbf) { ritar ut säljsignal i diagram även utan innehav } sälj2=and(and(sälj1,innehav),kl1720) { kombinerar ihop tre villkor med AND } mult(sälj2,5) { multiplicerar säljsignal SANT eller FALSKT med 5 } {@A(0,OMX Stock )} { definierar extra objekt med OMXS30 i dagsupplösn }

Antal- och prisscript Sälj på aktuell köpkurs - 0,25 kr sub(b,0.25) Sälj hela innehavet portfolio(v)

Generella regler – prefix för olika scripttyper Scriptens namn kan anges med olika prefix för att lättare hålla reda på vilka script som gör vad. Programmet visar dessutom endast script med rätt prefix i olika listor, tex i dialogen för ordermodeller. De prefix som finns är sammanställda nedan: · sl) betyder signalscript eller triggerscript · va) Volume Amount, betyder antal i en order, i dagligt tal kallat antalscript · vl) Value Limit, betyder pris i en order, i dagligt tal kallat prisscript · xk) Extra Kontrollscript, ett script som kan agera som blockering för en ordermodell när vissa förutsättningar inte är uppfyllda, tex att en viss tid gått sedan förra orderförsöket osv. Ett kontrollscript ska alltid lämna SANT för att ordern ska skickas. · g) Grafiska script, dessa har endast till uppgift att rita något i ett diagram. · st) Stega-script, returvärdet från detta bestämmer vilken nästa sekvens i en ordermodeller blir som exekveras · sy) Synka-script, returvärdet från detta bestämmer vilken sekvens en ordermodell börjar på vid anslutning.

Exempel på scriptnamn sl) Utbildningsmodell köp Scriptkod.....

Best practice – skriva och ordermodeller 1. Lägg minnesreferenser samlat längst ned i scriptet 2. Använd variabelnamn som inte heter exakt som en scriptfunktion 3. Använd inte variabelnamn som är delnamn av andra variabler 4. Vid simulering av modell, köp på säljkurs och sälj på köpkurs för bästa precision (index = välj Senast betalt ) 5. Ofta är det enklast att använda flera parallella ordermodeller med 1 sekvens i varje 6. Studera formelsammanställningen ofta – www.autostock.se/NATscriptref 7. Tänk på att ta bort alla intradayprefix om du simulerar utan animering (endast EOD-data) 8. Lägg ut script i simulatorprojekt i arbetsytan med Full Editor för enkel åtkomst 9. Känd bugg 1: Simulering måste avslutas innan midnatt – annars ingen rapport 10. Känd bugg 2: Projektfiler får felkod efter midnatt = omstart av både AT och Analyzer.exe lösning

Generella regler – delnamn Delnamn av variabler ej tillåtet Ex på fel: köp=and(villkor1,villkor2) köp2=and(köp,villkor3) Rätt lösning: köp1=and(villkor1,villkor2) köp2=and(köp1,villkor3)