Word nu lid
Indicatoren/probuilder · probacktest · proorder · proscreener

ROC

ROC geeft in ProBuilder de Rate of Change, het procentuele verschil tussen de huidige prijs en de prijs van N bars terug. Syntaxis, formule, voorbeelden.

Syntaxis

probuilder
ROC[N](price)

Parameters

NaamTypeStandaardBeschrijving
Ngeheel getalgeenTerugkijkafstand in bars. Gangbare waarden zijn 12 en 25. Korte waarden volgen snelle momentum-swings, lange waarden volgen de bredere cyclus.
priceprijsbroncloseDe gemeten reeks, meestal close, ook open, high, low, of een eigen variabele.

Formule

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

De huidige waarde min de waarde N bars geleden, gedeeld door die oude waarde, maal 100. Een stand van 5 betekent dat de prijs 5 procent boven het niveau staat van N bars eerder.

Hoe het werkt

ROC is een van de eenvoudigste momentum-oscillatoren. Elke bar beantwoordt hij één vraag: met welk percentage is de prijs bewogen over de laatste N bars. Omdat de verandering als percentage wordt uitgedrukt in plaats van in punten, zijn de waarden vergelijkbaar tussen instrumenten met verschillende prijsniveaus, wat het belangrijkste praktische verschil is met Momentum, de puntgebaseerde tegenhanger.

De lijn oscilleert rond nul zonder vaste boven- of ondergrens. Aanhoudend positieve waarden kenmerken opwaartse trends, aanhoudend negatieve waarden kenmerken neerwaartse trends, en de nuldoorkruising zelf is een basaal signaal voor een trendverandering. Omdat ROC exact twee punten vergelijkt, kan een grote bar die achteraan uit het venster valt de indicator even sterk bewegen als een grote bar die vooraan binnenkomt, een effect dat het waard is om te onthouden wanneer een waarde verspringt zonder een duidelijke prijsbeweging op de huidige bar.

Divergentieanalyse is het andere standaardgebruik. Wanneer de prijs een hogere high neerzet maar ROC een lagere high, vertraagt de stijging, en het spiegelbeeld geldt bij lows.

Voorbeelden

Voorbeeld 1, Versnelling meten tussen opeenvolgende veranderingen (Indicator)

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

Vergelijkt de laatste procentuele verandering over één bar met die ervoor. De ratio meet de versnelling in prijsveranderingen. Let op dat i2 gelijk aan nul, een vlakke vorige bar, levert een deling door nul op, dus productiecode moet de noemer afschermen.

Voorbeeld 2, Trendinstap gefilterd op 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

De nuldoorkruising van een ROC over 12 bars timet de instappen en uitstappen, terwijl het gemiddelde over 100 bars het traden beperkt tot de zijde van de opwaartse trend.

Voorbeeld 3, Screenen op sterke bewegers over 20 bars (ProScreener)

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

Geeft instrumenten die over de laatste 20 bars meer dan 10 procent zijn gestegen, met de ROC-waarde weergegeven als een sorteerbare kolom, een minimale screen voor momentum-ranking.

Interpretatie

StandBetekenis
ROC > 0De prijs ligt boven het niveau van N bars terug, opwaarts momentum.
ROC < 0De prijs ligt onder het niveau van N bars terug, neerwaarts momentum.
Extreem hoge waardeMogelijk overbought, de prijs is uitgerekt ten opzichte van zijn recente verleden.
Extreem lage waardeMogelijk oversold.
Bullish divergentieDe prijs zet lagere lows neer terwijl ROC hogere lows neerzet, het neerwaartse momentum neemt af.
Bearish divergentieDe prijs zet hogere highs neer terwijl ROC lagere highs neerzet, het opwaartse momentum neemt af.

Wat als extreem geldt, hangt af van het instrument en N, omdat de indicator onbegrensd is. Volatiele instrumenten bereiken routinematig ROC-niveaus die elders uitzonderlijk zouden zijn, dus drempels moeten per markt worden gekalibreerd.

Veelvoorkomende fouten en valkuilen

  • Deling door nul in afgeleide ratio's. Uitdrukkingen zoals ROC[1](close) / ROC[1](close[1]) falen altijd wanneer de eerdere verandering precies nul is. Beveilig noemers met een test tegen 0 voordat je deelt.
  • Onbegrensde schaal. Anders dan RSI heeft ROC geen bereik van 0 tot 100. Drempels voor overbought en oversold die uit RSI-logica zijn gekopieerd, zoals 30 en 70, zijn hier zinloos.
  • Wegvaleffect. De waarde verandert wanneer een oude extreme bar het venster van N bars verlaat, zelfs als de huidige prijs nauwelijks beweegt. Plotselinge sprongen in ROC weerspiegelen niet altijd verse koop- of verkoopactiviteit.
  • Whipsaw rond de nuldoorkruising bij een kleine N. ROC[1] of ROC[2] wisselt in rustige markten constant van teken. Zero-cross-systemen vereisen ofwel een langere N of een extra trendfilter.
  • RocnRoll, signaalgenerator gebouwd op veranderingssnelheid en exponentiële gemiddelden.
  • Momentum, het equivalent in punten, prijs minus prijs van N bars terug.
  • RSI, begrensde momentum-oscillator met vaste drempels.
  • Variation, procentuele verandering tussen de vorige close en de huidige close.
  • VolumeROC, dezelfde berekening van de veranderingssnelheid toegepast op het volume.
  • MACD, momentum uit de spread tussen twee exponentiële gemiddelden.
  • CCI, oscillator op basis van afwijking, nog een momentum-alternatief.
  • Stochastic, positie van de close binnen de recente high-low-range.