Bli medlem i dag
Indikatorer/probuilder · probacktest · proorder · proscreener

ROC

ROC i ProBuilder returnerer Rate of Change, den prosentvise differansen mellom gjeldende pris og prisen N barer tilbake. Syntaks, formel, eksempler.

Syntaks

probuilder
ROC[N](price)

Parametere

NavnTypeStandardBeskrivelse
NheltallingenTilbakeblikksavstand i barer. Vanlige verdier er 12 og 25. Korte verdier følger raske momentum-svingninger, lange verdier følger den bredere syklusen.
pricepriskildelukkSerien som måles, vanligvis close, også open, high, low, eller en egendefinert variabel.

Formel

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

Gjeldende verdi minus verdien N barer siden, delt på den tidligere verdien, ganget med 100. En verdi på 5 betyr at prisen er 5 prosent over der den stod N barer tidligere.

Slik fungerer det

ROC er en av de enkleste momentum-oscillatorene. For hver bar svarer den på ett enkelt spørsmål: hvor mange prosent har prisen beveget seg over de siste N barer. Fordi endringen uttrykkes som en prosentandel framfor i poeng, er avlesningene sammenlignbare på tvers av instrumenter med ulike prisnivåer, som er den viktigste praktiske forskjellen fra Momentum, dens punktbaserte motpart.

Linjen oscillerer rundt null uten noen fast øvre eller nedre grense. Vedvarende positive verdier kjennetegner opptrender, vedvarende negative verdier kjennetegner nedtrender, og selve nullkrysset er et grunnleggende signal om trendskifte. Siden ROC sammenligner nøyaktig to punkter, kan en stor bar som faller ut bak i vinduet bevege indikatoren like mye som en stor bar som kommer inn foran, en effekt det er verdt å huske når en verdi hopper uten en åpenbar prisbevegelse på den gjeldende baren.

Divergensanalyse er den andre standardbruken. Når prisen setter en høyere high men ROC setter en lavere high, bremser oppgangen opp, og speilbildet gjelder ved lows.

Eksempler

Eksempel 1, Måle akselerasjon mellom påfølgende endringer (Indikator)

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

Sammenligner den siste prosentendringen over én bar med den foregående. Forholdet måler akselerasjon i prisendringene. Merk at i2 lik null, en flat forrige bar, gir en divisjon med null, så produksjonskode bør sikre nevneren.

Eksempel 2, Momentum-filtrert trendinngang (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

Nullkrysset til en ROC over 12 barer tidfester innganger og utganger, mens gjennomsnittet over 100 barer begrenser handelen til opptrendsiden.

Eksempel 3, Screening for sterke bevegelser over 20 barer (ProScreener)

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

Returnerer instrumenter som har steget mer enn 10 prosent over de siste 20 barene, med ROC-verdien vist som en sorterbar kolonne, en minimal rangeringsscreen for momentum.

Tolkning

AvlesningBetydning
ROC > 0Prisen er over nivået sitt N barer tilbake, momentum oppover.
ROC < 0Prisen er under nivået sitt N barer tilbake, momentum nedover.
Ekstremt høy verdiPotensielt overkjøpt, prisen er strukket i forhold til den nylige historikken.
Ekstremt lav verdiPotensielt oversolgt.
Bullish divergensPrisen setter lavere lows mens ROC setter høyere lows, momentum nedover avtar.
Bearish divergensPrisen setter høyere highs mens ROC setter lavere highs, momentum oppover avtar.

Hva som regnes som ekstremt avhenger av instrumentet og N, siden indikatoren er ubegrenset. Volatile instrumenter når rutinemessig ROC-nivåer som ville vært helt uvanlige andre steder, så terskler må kalibreres per marked.

Vanlige feil og fallgruver

  • Divisjon med null i deriverte forholdstall. Uttrykk som ROC[1](close) / ROC[1](close[1]) feiler hver gang den tidligere endringen er nøyaktig null. Beskytt nevnere med en test mot 0 før du dividerer.
  • Uavgrenset skala. I motsetning til RSI har ROC ingen skala fra 0 til 100. Terskler for overkjøpt og oversolgt kopiert fra RSI-logikk, som 30 og 70, er meningsløse her.
  • Bortfallseffekt. Verdien endres når en gammel ekstrembar forlater vinduet på N barer selv om gjeldende pris nesten ikke beveger seg. Plutselige ROC-hopp gjenspeiler ikke alltid nytt kjøp eller salg.
  • Whipsaw rundt nullkrysset ved liten N. ROC[1] eller ROC[2] skifter fortegn stadig i rolige markeder. Nullkryssystemer trenger enten en lengre N eller et ekstra trendfilter.
  • RocnRoll, signalgenerator bygget på endringsrate og eksponentielle gjennomsnitt.
  • Momentum, den poengbaserte ekvivalenten, pris minus pris N barer tilbake.
  • RSI, avgrenset momentum-oscillator med faste terskler.
  • Variation, prosentvis endring mellom forrige close og gjeldende close.
  • VolumeROC, samme endringsrateberegning anvendt på volum.
  • MACD, momentum fra spread mellom to eksponentielle gjennomsnitt.
  • CCI, avviksbasert oscillator, et annet momentum-alternativ.
  • Stochastic, posisjonen til close innenfor den nylige high-low-rangen.