Iscriviti ora
Indicatori/probuilder · probacktest · proorder · proscreener

ROC

ROC in ProBuilder restituisce il Rate of Change, la differenza percentuale tra il prezzo corrente e il prezzo di N bar prima. Sintassi, formula, esempi.

Sintassi

probuilder
ROC[N](price)

Parametri

NomeTipoPredefinitoDescrizione
NinteronessunoDistanza di lookback in bar. I valori comuni sono 12 e 25. Valori brevi seguono gli swing rapidi del momentum, valori lunghi seguono il ciclo più ampio.
pricefonte di prezzochiusuraLa serie misurata, di solito close, anche open, high, low, o una variabile personalizzata.

Formula

codice
ROC = ((price - price[N]) * 100) / price[N]

Il valore attuale meno il valore N bars fa, diviso per quel valore passato, per 100. Una lettura di 5 significa che il prezzo è il 5 per cento sopra il livello in cui si trovava N bar prima.

Come funziona

Il ROC è uno degli oscillatori di momentum più semplici. A ogni bar risponde a una sola domanda: di quale percentuale si è mosso il prezzo nelle ultime N bars. Poiché la variazione è espressa in percentuale anziché in punti, le letture sono confrontabili tra strumenti con livelli di prezzo diversi, che è la principale differenza pratica rispetto a Momentum, il suo omologo basato sui punti.

La linea oscilla attorno allo zero senza alcun limite fisso superiore o inferiore. Letture positive prolungate caratterizzano i trend rialzisti, letture negative prolungate caratterizzano i trend ribassisti, e l'incrocio dello zero è di per sé un segnale di base di cambio di trend. Poiché ROC confronta esattamente due punti, una bar ampia che esce dal fondo della finestra può muovere l'indicatore tanto quanto una bar ampia che arriva in testa, un effetto da ricordare quando una lettura salta senza un movimento di prezzo evidente sulla bar corrente.

L'analisi delle divergenze è l'altro uso standard. Quando il prezzo segna un massimo più alto ma ROC segna un massimo più basso, l'avanzata sta decelerando, e il caso speculare si applica sui minimi.

Esempi

Esempio 1, Misurare l'accelerazione tra variazioni consecutive (Indicatore)

probuilder
// One-bar rate of change on this bar and on the previous bar
i1 = ROC[1](close)
i2 = ROC[1](close[1])
// Ratio above 1 means the latest change is larger than the previous one
majorchange = i1 / i2
RETURN majorchange

Confronta l'ultima variazione percentuale su una barra con quella precedente. Il rapporto misura l'accelerazione delle variazioni di prezzo. Nota che i2 pari a zero, cioè un bar precedente piatto, produce una divisione per zero, quindi il codice di produzione dovrebbe proteggere il denominatore.

Esempio 2, Ingresso di trend filtrato dal momentum (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

mom   = ROC[12](close)
trend = Average[100](close)

// Long when the 12-bar momentum turns positive above the trend average
IF NOT LongOnMarket AND close > trend AND mom CROSSES OVER 0 THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Exit when momentum decays back through zero
IF LongOnMarket AND mom CROSSES UNDER 0 THEN
  SELL AT MARKET
ENDIF

L'incrocio dello zero di un ROC a 12 bar sincronizza ingressi e uscite, mentre la media a 100 bar limita l'operatività al lato del trend rialzista.

Esempio 3, Ricerca di strumenti con forti movimenti su 20 bar (ProScreener)

probuilder
perf = ROC[20](close)
SCREENER[perf > 10](perf AS "ROC 20 %")

Restituisce gli strumenti che hanno guadagnato più del 10 percento nelle ultime 20 bar, con il valore di ROC mostrato come colonna ordinabile, una schermata minimale di classifica per momentum.

Interpretazione

LetturaSignificato
ROC > 0Il prezzo è sopra il suo livello di N bar prima, momentum rialzista.
ROC < 0Il prezzo è sotto il suo livello di N bar prima, momentum ribassista.
Lettura estremamente altaPotenzialmente in ipercomprato, prezzo esteso rispetto al suo passato recente.
Lettura estremamente bassaPotenzialmente in ipervenduto.
Divergenza rialzistaIl prezzo segna minimi più bassi mentre ROC segna minimi più alti, il momentum ribassista si affievolisce.
Divergenza ribassistaIl prezzo segna massimi più alti mentre ROC segna massimi più bassi, il momentum rialzista si affievolisce.

Cosa si considera estremo dipende dallo strumento e N, poiché l'indicatore non ha limiti. Gli strumenti volatili raggiungono abitualmente livelli di ROC che altrove sarebbero eccezionali, quindi le soglie richiedono una calibrazione per mercato.

Errori e insidie comuni

  • Divisione per zero nei rapporti derivati. Espressioni come ROC[1](close) / ROC[1](close[1]) falliscono ogni volta che la variazione precedente è esattamente zero. Proteggi i denominatori con un test contro 0 prima di dividere.
  • Scala senza limiti. A differenza di RSI, ROC non ha un intervallo da 0 a 100. Le soglie di ipercomprato e ipervenduto copiate dalla logica di RSI, come 30 e 70, qui non hanno significato.
  • Effetto drop-off. La lettura cambia quando una vecchia bar estrema lascia la finestra di N bar anche se il prezzo corrente si muove appena. I salti improvvisi di ROC non riflettono sempre nuovi acquisti o nuove vendite.
  • Whipsaw sull'incrocio dello zero con N piccolo. ROC[1] o ROC[2] cambia segno continuamente nei mercati tranquilli. I sistemi basati sull'incrocio dello zero richiedono o un più lungo N o un filtro di tendenza aggiuntivo.
  • RocnRoll, generatore di segnali costruito sul tasso di variazione e su medie esponenziali.
  • Momentum, l'equivalente basato sui punti, prezzo meno prezzo di N bar prima.
  • RSI, oscillatore di momentum limitato con soglie fisse.
  • Variation, variazione percentuale tra la chiusura precedente e la chiusura corrente.
  • VolumeROC, lo stesso calcolo del tasso di variazione applicato al volume.
  • MACD, momentum dallo spread di due medie esponenziali.
  • CCI, oscillatore basato sulla deviazione, un'altra alternativa di momentum.
  • Stochastic, posizione della chiusura all'interno del range recente massimo-minimo.