Presentation laddar. Vänta.

Presentation laddar. Vänta.

Att bygga ordermodeller i Nordnet AutoTrader

Liknande presentationer


En presentation över ämnet: "Att bygga ordermodeller i Nordnet AutoTrader"— Presentationens avskrift:

1 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

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

3 Ordermodellen och dess sekvenser

4 Parallella ordermodeller

5 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

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

7 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

8 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.

9 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.

10 Börja leta samband

11 Vi zoomar in lite

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

13 Signaltillfällen

14 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

15 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) Stock )} (klicka på Extra objekt)

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

17 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)

18 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))

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

20 Scriptformel - sammanställning

21 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)

22 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, ,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 } Stock )} { definition av extra objekt med OMXS30 i dagsupplösning }

23 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

24 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)

25 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) )

26 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)

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

28 Sida att ladda ner kursmaterial

29 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, ,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 } Stock )} { definierar extra objekt med OMXS30 i dagsupplösn }

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

31 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.

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

33 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 – 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

34 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)

35


Ladda ner ppt "Att bygga ordermodeller i Nordnet AutoTrader"

Liknande presentationer


Google-annonser