Variation
Variation i ProBuilder returnerer den prosentvise endringen i en prisserie mellom forrige bar og gjeldende bar. Syntaks, formel og gjennomgåtte eksempler.
Syntaks
Variation(price)Parametere
| Navn | Type | Standard | Beskrivelse |
|---|---|---|---|
price | priskilde | ingen | Serien som prosentendringen over én bar returneres for. Godtar close, open, high, low eller enhver egendefinert variabel. |
Formel
Variation = 100 * (price - price[1]) / price[1]Resultatet er en fortegnet prosentandel: positiv når serien er høyere enn på forrige bar, negativ når den er lavere, null når den er uendret.
Slik fungerer det
På hver bar sammenligner funksjonen gjeldende verdi av den angitte serien med verdien én bar tidligere og uttrykker differansen som en prosentandel av den tidligere verdien. Det er enkeltbar-spesialtilfellet av en endringsrate; ROC generaliserer den samme idéen til en N bars tilbakeblikk.
Fordi resultatet er en prosentverdi, er det direkte sammenlignbart på tvers av instrumenter med ulike prisnivåer, noe rene differanser ikke er. En daglig bevegelse på 2 prosent betyr det samme på en indeks på 18000 og en aksje på 40. Det gjør Variation en naturlig byggestein for screenere som rangerer markeder etter daglig bevegelse, og for volatilitetsarbeid: standardavviket til endringer over én bar er et enkelt estimat på realisert volatilitet.
Serien er støyende av natur, hver bar gir en ny uavhengig verdi. Å jevne den ut med et glidende gjennomsnitt, eller å legge bånd rundt den med en standardavvikskanal som i det første eksempelet, skiller vanlige svingninger fra statistisk uvanlige bevegelser.
Eksempler
Eksempel 1, Variation med et adaptivt terskelbånd (Indikator)
// One-bar percentage change of the high price
var = Variation(high)
// Smooth the changes, then build a 3 standard deviation band around them
averagingvar = 3 * STD[20](exponentialaverage[20](var))
RETURN var, averagingvarPlotter prosentendringen i toppene fra bar til bar sammen med en terskel lik tre standardavvik av de glattede verdiene. Barer der var overstiger båndet markerer unormalt store bevegelser.
Eksempel 2, Skanning etter dagens største bevegelser (ProScreener)
chg = Variation(close)
SCREENER[ABS(chg) > 3] (chg AS "Change %")Returnerer instrumenter der sluttkursen beveget seg mer enn 3 prosent i en av retningene på gjeldende bar, med den fortegnede endringen vist som rangeringskolonne.
Eksempel 3, Momentum-inngang med et endringsfilter (ProBacktest)
// Enter on a strong up bar, exit on a meaningful down bar
chg = Variation(close)
IF NOT ONMARKET AND chg > 1.5 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF ONMARKET AND chg < -1 THEN
SELL AT MARKET
ENDIFSystemet kjøper etter en bar som steg mer enn 1.5 prosent og lukker posisjonen etter enhver bar som falt mer enn 1 prosent, et minimalt eksempel på logikk basert på prosentvis endring.
Tolkning
Positive verdier viser at serien steg over den siste baren, negative verdier at den falt; størrelsen måler hvor kraftig. Det finnes ingen universelle terskler, hva som regnes som en stor endring over én bar avhenger av instrumentet og tidsrammen. En praktisk tilnærming er statistisk: sammenlign gjeldende verdi med den nylige fordelingen av verdier, for eksempel ved å flagge verdier utover to eller tre standardavvik. Klynger av store absolutte variasjoner indikerer et regime med høy volatilitet, lange rekker av små verdier indikerer konsolidering.
Vanlige feil og fallgruver
- Bare én bar.
Variationsammenligner alltid mot den umiddelbart forrige baren. For en endring overNbarer brukerROC[N](price)eller beregne100 * (close - close[N]) / close[N]eksplisitt. - Avhengighet av tidsramme. Funksjonen måler endring per bar på gjeldende diagram. På et 5-minuttersdiagram er verdiene naturlig nok langt mindre enn på et dagsdiagram, terskler kan ikke overføres mellom tidsrammer.
- Divisjonsgrunnlaget er forrige bar. Et fall på 10 prosent fulgt av en oppgang på 10 prosent bringer deg ikke tilbake til startprisen. Å summere variasjoner over mange barer gir bare en tilnærming til den totale bevegelsen.
- Den første baren er udefinert. Beregningen trenger
price[1], som ikke finnes på den første baren i den innlastede historikken. Ignorer den tidligste avlesningen.
Relaterte instruksjoner
ROC, endringsrate over et vilkårlig tilbakeblikk på N barer.Momentum, absolutt prisforskjell over N barer.STD, standardavvik, brukt til å lage bånd rundt variasjonsverdier.ExponentialAverage, utjevning for den støyende rådataserien.Average, enkelt glidende gjennomsnitt som alternativ for utjevning.VolumeROC, samme idé om endringsrate anvendt på volum.HistoricVolatility, statistisk volatilitet fra prisavkastning.Volatility, Chaikin Volatility bygd på spreaden mellom high og low.