Lektion 8
Previous Topic  Next Topic 



Avancerade script som larmar


Vi skall här visa hur du kombinerar flera olika testvillkor i ett enda script.
Fånga genombrott av nivå:


GT(C,220)


Detta returnerar SANT ifall Close-kursen är högre än 220. Dvs du bryter nivån 220. GT()-funktionen står för GreaterThan.

Detta är ju ett script som förmodligen bara är användbart på ett enda papper. Det har ju en fast kursnivå man testar på.
Det fungerar ju, men det är kanske inte praktiskt att göra ett script för precis varje papper, och dessutom är det föränderligt över tiden. Vi söker lite mer allmängiltiga villkor för att kunna använda i flera situationer.


Fånga trendbrott hos kurser

En trend kanske du anger med ett 20 perioders medelvärde på Close-kursen.


MOV(C,20,S)

Vi talar också medvetet 'perioder' för att understryka att det kan röra sig om dagar om scriptet arbetar på dagskurser, eller om angivna minutperioder ifall det är intraday. Du kan ju välja att en enda period är en eller flera minuter intraday.

Ett trendbrott kan då t.ex vara att Close faller under sitt 20-perioders medelvärde. Det kan skrivas som:

mperiod:=20
lmedel:=MOV(C,mperiod,S)
LT(C,lmedel)

LT(...) står för LessThan.
'mperiod' skapade vi och lade vi i början för att enkelt kunna ändra periodlängden.
'lmedel' syftar på 'långt medelvärde'.

Detta returnerar SANT ifall Close-kursen går under sitt medelvärde här satt till 20 perioder.

Tänk på att uttrycket till höger om ":=" (kolon likamed-tecken) EJ FÅR innehålla blanktecken.


Fånga händelse inom visst tidsperspektiv bakåt

Väldigt ofta när man testar olika händelser är man intresserad av att vissa villkor är uppfyllda JUST NU, och andra att det inträffat någon gång NYLIGEN.
För att fånga en NYLIGEN-händelse kan man använda HHV(--)-funktionen(Highest High Value) på ett utryck.

Vi benar ut det lite:
I exemplet med att "fånga ett trendbrott" tidigare så ville vi testa om Close-kursen fallit under sitt 20-perioders medelvärde.

mperiod1:=20
lmedel:=MOV(C,mperiod1,S)
LT(C,lmedel)

Vi modifierar detta uttrycket till:

mperiod1:=20


lmedel:=MOV(C,mperiod1,S)
trendned:=LT(C,lmedel)
HHV(trendned,3)

Här testar vi om vi har "trendned" någon gång inom de 3 senaste perioderna.

Vi tilldelade först det aktiva uttrycket från förut ett namn "trendned". Sedan testar vi det tre perioder bakåt ifall det varit SANT någon gång under denna tidsperiod med HHV()-funktionen.

Vad som händer i praktiken är att HHV()-funktionen scriptet får en dataserie på tre värden, som kan vara blandat ETT eller NOLL. Testfunktionerna ger ju alltid antingen ETT eller NOLL i retur.

t.ex
NOLL ETT NOLL

Vad HHV-funktionen gör är att returnera det HÖGSTA av dessa tre värden. HHV står ju för HighestHighValue. Det är ju ETT om det finns någon enda ETTA i dataserien, annars om allt är NOLL så returneras NOLL eftersom det är högsta värdet.