Variation
Variation gibt in ProBuilder die prozentuale Veränderung einer Preisreihe zwischen dem vorherigen Bar und dem aktuellen Bar zurück. Syntax, Formel und ausgearbeitete Beispiele.
Syntax
Variation(price)Parameter
| Name | Typ | Standard | Beschreibung |
|---|---|---|---|
price | Kursquelle | keine | Reihe, deren prozentuale Veränderung über einen Bar zurückgegeben wird. Akzeptiert close, open, high, low oder jede eigene Variable. |
Formel
Variation = 100 * (price - price[1]) / price[1]Das Ergebnis ist ein vorzeichenbehafteter Prozentsatz: positiv, wenn die Reihe höher ist als auf dem vorherigen Bar, negativ, wenn sie niedriger ist, null, wenn sie unverändert ist.
So funktioniert es
Auf jedem Bar vergleicht die Funktion den aktuellen Wert der angegebenen Serie mit ihrem Wert einen Bar früher und drückt die Differenz als Prozentsatz des früheren Werts aus. Es ist der Einzel-Bar-Sonderfall einer Änderungsrate; ROC verallgemeinert die gleiche Idee auf ein N Bar-Rückblick.
Da die Ausgabe ein Prozentwert ist, ist sie direkt über Instrumente mit unterschiedlichen Kursniveaus hinweg vergleichbar, was rohe Differenzen nicht sind. Eine Tagesbewegung von 2 Prozent bedeutet bei einem Index bei 18000 dasselbe wie bei einer Aktie bei 40. Das macht Variation ein natürlicher Baustein für Screener, die Märkte nach Tagesbewegung ordnen, und für Volatilitätsarbeit: die Standardabweichung der Ein-Bar-Veränderungen ist eine einfache Schätzung der realisierten Volatilität.
Die Reihe ist konstruktionsbedingt unruhig, jeder Bar erzeugt einen neuen unabhängigen Wert. Sie mit einem gleitenden Durchschnitt zu glätten oder sie wie im ersten Beispiel mit einem Standardabweichungskanal einzufassen, trennt gewöhnliche Schwankungen von statistisch ungewöhnlichen Bewegungen.
Beispiele
Beispiel 1, Variation mit einem adaptiven Schwellenband (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, averagingvarZeichnet die prozentuale Veränderung der Hochs von Bar zu Bar zusammen mit einer Schwelle, die drei Standardabweichungen ihrer geglätteten Werte entspricht. Bars, bei denen var das Band übersteigt, markieren ungewöhnlich große Bewegungen.
Beispiel 2, Scan der Tagesbeweger (ProScreener)
chg = Variation(close)
SCREENER[ABS(chg) > 3] (chg AS "Change %")Gibt Instrumente zurück, deren Schlusskurs sich auf dem aktuellen Bar um mehr als 3 Prozent in eine der beiden Richtungen bewegt hat, wobei die vorzeichenbehaftete Veränderung als Sortierspalte angezeigt wird.
Beispiel 3, Momentum-Einstieg mit einem Veränderungsfilter (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
ENDIFDas System kauft nach einem Bar, der mehr als 1.5 Prozent gewonnen hat, und schließt die Position nach jedem Bar, der mehr als 1 Prozent verloren hat, ein minimales Beispiel für eine auf prozentualer Veränderung basierende Logik.
Interpretation
Positive Werte zeigen an, dass die Reihe über den letzten Bar gestiegen ist, negative Werte, dass sie gefallen ist; die Größe misst, wie stark. Es gibt keine allgemeingültigen Schwellen, was als große Ein-Bar-Veränderung gilt, hängt vom Instrument und von der Zeiteinheit ab. Ein praktischer Ansatz ist statistisch: Vergleichen Sie den aktuellen Wert mit der jüngsten Verteilung der Werte, zum Beispiel indem Sie Werte jenseits von zwei oder drei Standardabweichungen markieren. Häufungen großer absoluter Variationen deuten auf ein Regime hoher Volatilität hin, lange Folgen kleiner Werte deuten auf eine Konsolidierung hin.
Häufige Fehler und Stolperfallen
- Nur ein Bar.
Variationvergleicht immer mit dem unmittelbar vorherigen Bar. Für eine Veränderung überNBars verwendenROC[N](price)oder berechnen100 * (close - close[N]) / close[N]explizit. - Abhängigkeit von der Zeiteinheit. Die Funktion misst die Veränderung pro Bar des aktuellen Charts. Auf einem 5-Minuten-Chart sind die Werte naturgemäß weit kleiner als auf einem Tageschart, Schwellen lassen sich nicht zwischen Zeiteinheiten übertragen.
- Divisionsbasis ist der vorherige Bar. Ein Rückgang von 10 Prozent gefolgt von einem Anstieg von 10 Prozent führt nicht zum Ausgangspreis zurück. Das Summieren von Veränderungen über viele Bars nähert die Gesamtbewegung nur an.
- Der erste Bar ist undefiniert. Die Berechnung benötigt
price[1], die auf der ersten Bar der geladenen Historie nicht existiert. Ignorieren Sie den frühesten Wert.
Verwandte Befehle
ROC, Änderungsrate über einen beliebigen Rückblick von N Bars.Momentum, absolute Preisdifferenz über N Bars.STD, Standardabweichung, verwendet, um Variation-Werte in ein Band zu fassen.ExponentialAverage, Glättung für die unruhige Rohreihe.Average, Alternative mit einfachem gleitendem Durchschnitt zur Glättung.VolumeROC, dieselbe Idee der Änderungsrate, angewendet auf das Volumen.HistoricVolatility, statistische Volatilität aus Preisrenditen.Volatility, Chaikin Volatility, aufgebaut auf dem Spread zwischen Hoch und Tief.