Variation
Variation in ProBuilder geeft de procentuele verandering van een prijsreeks tussen de vorige bar en de huidige bar. Syntaxis, formule en uitgewerkte voorbeelden.
Syntaxis
Variation(price)Parameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
price | prijsbron | geen | Reeks waarvan de procentuele verandering over één bar wordt teruggegeven. Accepteert close, open, high, low of een willekeurige eigen variabele. |
Formule
Variation = 100 * (price - price[1]) / price[1]Het resultaat is een percentage met teken: positief wanneer de reeks hoger is dan op de vorige bar, negatief wanneer lager, nul wanneer onveranderd.
Hoe het werkt
Op elke bar vergelijkt de functie de huidige waarde van de opgegeven reeks met de waarde één bar eerder en drukt het verschil uit als percentage van die eerdere waarde. Het is het bijzondere geval van een rate of change over één bar; ROC generaliseert hetzelfde idee naar een N bar lookback.
Omdat de uitkomst een percentage is, is hij direct vergelijkbaar tussen instrumenten met verschillende prijsniveaus, wat bij ruwe verschillen niet zo is. Een dagbeweging van 2 procent betekent hetzelfde op een index op 18000 als op een aandeel op 40. Dat maakt Variation een natuurlijke bouwsteen voor screeners die markten rangschikken op dagelijkse beweging, en voor volatiliteitswerk: de standaarddeviatie van variaties over één bar is een eenvoudige schatting van de realised volatility.
De reeks is per constructie ruizig, elke bar levert een nieuwe onafhankelijke waarde op. Hem afvlakken met een bewegend gemiddelde, of hem van een band voorzien met een standaarddeviatiekanaal zoals in het eerste voorbeeld, scheidt gewone fluctuaties van statistisch ongebruikelijke bewegingen.
Voorbeelden
Voorbeeld 1, Variation met een adaptieve drempelband (Indicator)
// 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, averagingvarPlot de procentuele verandering van bar tot bar van de highs samen met een drempel gelijk aan drie standaarddeviaties van de afgevlakte waarden. Bars waar var de band overschrijden, markeren abnormaal grote bewegingen.
Voorbeeld 2, Scan op dagelijkse movers (ProScreener)
chg = Variation(close)
SCREENER[ABS(chg) > 3] (chg AS "Change %")Geeft instrumenten waarvan de close op de huidige bar meer dan 3 procent in één van beide richtingen bewoog, met de verandering met teken als rangschikkingskolom.
Voorbeeld 3, Momentum-instap met een veranderingsfilter (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
ENDIFHet systeem koopt na een bar die meer dan 1.5 procent won en sluit de positie na elke bar die meer dan 1 procent verloor, een minimaal voorbeeld van logica op basis van procentuele verandering.
Interpretatie
Positieve waarden geven aan dat de reeks over de laatste bar steeg, negatieve waarden dat hij daalde; de omvang meet hoe sterk. Er zijn geen universele drempels, wat als een grote verandering over één bar geldt, hangt af van het instrument en het tijdframe. Een praktische benadering is statistisch: vergelijk de huidige waarde met de recente verdeling van waarden, bijvoorbeeld door waarden buiten twee of drie standaarddeviaties te markeren. Clusters van grote absolute variaties duiden op een regime met hoge volatiliteit, lange reeksen van kleine waarden duiden op consolidatie.
Veelvoorkomende fouten en valkuilen
- Slechts één bar.
Variationvergelijkt altijd met de direct voorgaande bar. Voor een verandering overNbars gebruikenROC[N](price)of berekenen100 * (close - close[N]) / close[N]expliciet. - Afhankelijkheid van het tijdframe. De functie meet de verandering per bar van de huidige grafiek. Op een 5-minutengrafiek zijn de waarden van nature veel kleiner dan op een daggrafiek, drempels zijn niet overdraagbaar tussen tijdframes.
- De basis van de deling is de vorige bar. Een daling van 10 procent gevolgd door een stijging van 10 procent komt niet terug op de beginprijs. Variaties optellen over veel bars benadert de totale beweging slechts.
- Eerste bar is ongedefinieerd. De berekening vereist
price[1], die niet bestaat op de eerste bar van de geladen historie. Negeer de vroegste waarde.
Gerelateerde instructies
ROC, veranderingssnelheid over een willekeurige lookback van N bars.Momentum, absoluut prijsverschil over N bars.STD, standaarddeviatie, gebruikt om variatiewaarden in een band te plaatsen.ExponentialAverage, afvlakking voor de ruizige ruwe reeks.Average, alternatief eenvoudig bewegend gemiddelde voor afvlakking.VolumeROC, hetzelfde idee van veranderingssnelheid toegepast op volume.HistoricVolatility, statistische volatiliteit uit prijsrendementen.Volatility, Chaikin Volatility, gebouwd op de spread tussen high en low.