Variation
Variation in ProBuilder restituisce la variazione percentuale di una serie di prezzi tra la barra precedente e la barra corrente. Sintassi, formula ed esempi svolti.
Sintassi
Variation(price)Parametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
price | fonte di prezzo | nessuno | Serie di cui viene restituita la variazione percentuale a un bar. Accetta close, open, high, low o qualsiasi variabile personalizzata. |
Formula
Variation = 100 * (price - price[1]) / price[1]Il risultato è una percentuale con segno: positiva quando la serie è superiore a quella della barra precedente, negativa quando è inferiore, zero quando è invariata.
Come funziona
Su ogni bar la funzione confronta il valore corrente della serie indicata con il suo valore di un bar prima ed esprime la differenza come percentuale del valore precedente. È il caso particolare a un solo bar di un rate of change; ROC generalizza la stessa idea a un N bar di lookback.
Poiché l'output è una percentuale, è direttamente confrontabile tra strumenti con livelli di prezzo diversi, cosa che le differenze grezze non sono. Un movimento giornaliero del 2 percento significa la stessa cosa su un indice a 18000 e su un'azione a 40. Questo rende Variation un elemento costruttivo naturale per gli screener che classificano i mercati in base al movimento giornaliero, e per il lavoro sulla volatilità: la deviazione standard delle variazioni su un bar è una semplice stima della volatilità realizzata.
La serie è rumorosa per costruzione, ogni barra produce una nuova lettura indipendente. Levigarla con una media mobile, o incanalarla con un canale di deviazione standard come nel primo esempio, separa le fluttuazioni ordinarie dai movimenti statisticamente insoliti.
Esempi
Esempio 1, Variation con una banda di soglia adattiva (Indicatore)
// 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, averagingvarTraccia la variazione percentuale da bar a bar dei massimi insieme a una soglia pari a tre deviazioni standard dei suoi valori smussati. Le barre in cui var supera la banda segnalano movimenti anomalmente ampi.
Esempio 2, Scansione dei più mossi del giorno (ProScreener)
chg = Variation(close)
SCREENER[ABS(chg) > 3] (chg AS "Change %")Restituisce gli strumenti la cui chiusura si è mossa di più del 3 percento in una delle due direzioni sulla barra corrente, con la variazione con segno mostrata come colonna di ordinamento.
Esempio 3, Ingresso momentum con un filtro di variazione (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
ENDIFIl sistema compra dopo una barra che ha guadagnato più dell'1.5 percento e chiude la posizione dopo qualsiasi barra che ha perso più dell'1 percento, un esempio minimo di logica basata sulla variazione percentuale.
Interpretazione
I valori positivi indicano che la serie è salita nell'ultima barra, quelli negativi che è scesa; l'ampiezza misura quanto bruscamente. Non esistono soglie universali, ciò che conta come grande variazione su una barra dipende dallo strumento e dal timeframe. Un approccio pratico è statistico: confrontare la lettura corrente con la distribuzione recente delle letture, per esempio segnalando i valori oltre due o tre deviazioni standard. Gruppi di variazioni assolute ampie indicano un regime di alta volatilità, lunghe sequenze di valori piccoli indicano consolidamento.
Errori e insidie comuni
- Una sola barra.
Variationconfronta sempre con la bar immediatamente precedente. Per una variazione suNle barre usanoROC[N](price)o calcolare100 * (close - close[N]) / close[N]esplicitamente. - Dipendenza dal timeframe. La funzione misura la variazione per barra del grafico corrente. Su un grafico a 5 minuti i valori sono naturalmente molto più piccoli che su un grafico giornaliero, le soglie non si trasferiscono tra timeframe.
- La base della divisione è la barra precedente. Un calo del 10 per cento seguito da un rialzo del 10 per cento non riporta al prezzo di partenza. Sommare le variazioni su molte bar approssima soltanto il movimento totale.
- La prima barra è indefinita. Il calcolo richiede
price[1], che non esiste sulla prima bar dello storico caricato. Ignora la lettura più remota.
Istruzioni correlate
ROC, tasso di variazione su un lookback arbitrario di N barre.Momentum, differenza di prezzo assoluta su N barre.STD, deviazione standard, usata per creare bande sulle letture della variazione.ExponentialAverage, smoothing per la serie grezza rumorosa.Average, alternativa di media mobile semplice per lo smoothing.VolumeROC, la stessa idea di tasso di variazione applicata al volume.HistoricVolatility, volatilità statistica dai rendimenti di prezzo.Volatility, Chaikin Volatility costruito sullo spread massimo-minimo.