TradingView research workflows

Relative Rotation Graphs: relative strength, momentum and quadrants

A Relative Rotation Graph compares several securities with one benchmark on a two-axis plot. JdK RS-Ratio measures the relative-performance trend on the horizontal axis; JdK RS-Momentum measures its momentum on the vertical axis. Their center is 100. A trail connects earlier observations to the latest point. The graph describes relative behavior; it does not specify portfolio weights, entries or exits.

See the decision guide

What the two axes measure

RRG Research identifies Relative Rotation Graphs as a visualization method. StockCharts documents JdK RS-Ratio and JdK RS-Momentum as normalized indicators centered on 100. RS-Ratio describes the relative trend; RS-Momentum describes changes in that trend measure. Neither axis is a dollar price or a percentile rank. Comparative relative strength also differs from RSI, which is calculated from one price series.

  • Treat a value exactly on 100 as an axis boundary rather than forcing a strict quadrant label.
  • Normalization makes the coordinate scales comparable within the same method and benchmark. A reading of 102 is not evidence of a 2% investment return.
QuadrantHorizontal axisVertical axisReading
LeadingAbove 100Above 100Relative trend and momentum are positive.
WeakeningAbove 100Below 100Relative trend remains positive while momentum is negative.
LaggingBelow 100Below 100Relative trend and momentum are negative.
ImprovingBelow 100Above 100Momentum is positive while the relative trend remains negative.

Choose the benchmark and price convention first

The benchmark is the denominator in the underlying price relative, r = asset price / benchmark price. It defines what outperformance means. Comparing a stock with its sector asks a different question from comparing it with a broad equity index. Use one benchmark for the whole plotted universe and record its exact symbol and data source.

  • Align completed timestamps, interval, exchange sessions and currency treatment. Use a consistent price-only or total-return convention; do not mix a dividend-adjusted asset with an unadjusted benchmark without explaining that difference.
  • A hypothetical asset falls from 100 to 95 while its benchmark falls from 100 to 90. The ratio rises from 1 to 95 / 90 = 1.05556. Relative performance improved by 5.56%, although the asset lost 5%. This ratio change alone does not determine its JdK quadrant.
  • Changing the benchmark requires recalculating every historical point, not just relabeling the center. Retain the old benchmark in earlier research records so comparisons remain auditable.
  • A price ratio of 2 is not inherently stronger than a ratio of 1: share-price units can differ. A split adjustment or other one-time data discontinuity can create a false turn; inspect the underlying series.

A public proxy with fully specified normalization

Use the following deliberately simple formulas to study the geometry. For positive, matched prices A and B, let r[t] = A[t] / B[t]. Let m[t] be the arithmetic mean of r[t], r[t-1] and r[t-2]. Define horizontal strength X[t] = 100 × r[t] / m[t] and vertical momentum Y[t] = 100 × X[t] / X[t-1]. The three-period window and one-period momentum lag are teaching choices, not recommended settings.

  • X above 100 means the current price ratio exceeds its three-period average. Y above 100 means this normalized ratio increased since the previous observation. These are the exact meanings of the proxy axes; do not transfer every property of JdK indicators to them.
  • This normalization divides by a rolling mean. It is not a z-score, volatility adjustment or percentile transformation. Constant positive rescaling of either entire price series cancels out; a time-varying currency conversion or adjustment need not.
  • The first X requires three consecutive valid observations; the first Y requires four. Reject missing, non-finite, zero or negative input prices for this example. Do not carry a stale price forward or compress a missing weekly row into the next week.
  • After a missing row, restart the consecutive-observation count. Require four valid rows before plotting the next complete point. A constant positive ratio gives X = 100 and Y = 100, at the center.
  • Label this output "Public relative-strength proxy." It is not an exact implementation of the proprietary JdK indicators or an official RRG product. RRG Research offers its own calculation service; the formulas here are independent and openly specified.

Recalculate nine observations and a six-point trail

These hypothetical, equally spaced weekly observations keep benchmark B at 100 to make every calculation visible. Asset A is 100, 100, 103, 106, 107, 105, 102, 101 and 102. There are no dividends, missing observations or currency conversions. Values below are rounded for display; calculate each next step from full precision.

  • Week 4: m = (1.00 + 1.03 + 1.06) / 3 = 1.03; X = 100 × 1.06 / 1.03 = 102.912621; Y = 100 × 102.912621 / 101.980198 = 100.914318.
  • Week 5 demonstrates weakening without a price decline: A rises from 106 to 107, but X falls because its rolling average catches up. Week 8 demonstrates improving while A falls from 102 to 101: X is still below 100 but rises from the previous week.
  • Plot X horizontally and Y vertically. Join weeks 4 through 9 in chronological order and mark week 9 as the newest point. The trail runs leading → weakening → lagging → lagging → improving → leading. This constructed example illustrates the labels; it estimates no transition probability.
WeekA / B = rThree-period mean mXYProxy quadrant
1100 / 100 = 1.00UnavailableUnavailableUnavailableWarm-up
2100 / 100 = 1.00UnavailableUnavailableUnavailableWarm-up
3103 / 100 = 1.031.010000101.9802UnavailableWarm-up
4106 / 100 = 1.061.030000102.9126100.9143Leading
5107 / 100 = 1.071.053333101.582398.7073Weakening
6105 / 100 = 1.051.06000099.056697.5137Lagging
7102 / 100 = 1.021.04666797.452298.3803Lagging
8101 / 100 = 1.011.02666798.3766100.9486Improving
9102 / 100 = 1.021.016667100.3279101.9834Leading
Spreadsheet reproduction: headers in row 1; nine observations in rows 2 through 10. Use a numeric XY scatter chart, not a category line chart.text
A: Week   B: Asset close   C: Benchmark close
D: Ratio  E: Mean          F: X                G: Y

D2 = B2/C2                 Fill down through D10
E4 = AVERAGE(D2:D4)        Fill down through E10
F4 = 100*D4/E4            Fill down through F10
G5 = 100*F5/F4            Fill down through G10

Plot F5:F10 as X and G5:G10 as Y.
Add reference lines at X = 100 and Y = 100.
Label points from A5:A10 and connect oldest to newest.

Read direction without assuming a complete rotation

A trail is a sequence of coordinates, not a forecast path. StockCharts describes clockwise rotation as an idealized pattern and notes that actual trails can reverse or stay on one side of the graph. Daily and weekly points also answer different horizon questions. Record both the sampling interval and the number of observations shown in the tail.

  • In the public example, moving right means X increased; moving up means Y increased. Y can remain above 100 while falling, so upward placement and upward direction are different observations.
  • A longer segment means a larger change in the chosen coordinate system. It does not directly measure a dollar gain, turnover or the risk of a proposed position.
  • Keep axis scaling fixed when comparing screenshots. Auto-scaling can make the same numeric move look steeper or longer. Use numerical coordinates for comparisons of direction or distance.
  • Do not infer a buy rule from the improving quadrant. A sector-rotation strategy separately needs selection, sizing, rebalancing, costs and an evaluation period. This page concerns chart construction and reading; the linked strategy guide covers allocation decisions.

Audit a TradingView implementation against the worksheet

A TradingView script with "RRG" in its name may use a different normalization, smoothing window or momentum definition. Read its published formulas or source before comparing outputs. A similar scatter plot is not proof that it uses the proprietary JdK calculation. Use the nine-row worksheet as a test fixture only for implementations of the public formulas above.

  • Record script author and version, symbol list, benchmark, interval, adjustment policy, window lengths and tail length. Confirm that the axes contain coordinate values rather than bar numbers or raw price levels.
  • For real-data reproduction, export available chart data as CSV and verify the timestamps and rows actually exported. TradingView documents that exports contain loaded chart data; do not assume the file contains the full instrument history.
  • Compare several completed coordinates numerically, including a warm-up row and the first row after a data gap. If values differ, compare input prices and formulas before interpreting the different quadrant colors.
  • Preserve the dataset and calculation sheet with the screenshot. An image alone cannot recover the exact inputs, hidden precision, adjustment choices or past script version.

Keep a dated research record and inspect the price chart

Use a Trading Journal diary entry or plan to record the observation time, benchmark, formula version, matched-data policy, latest coordinates and a specific hypothesis. If a trade follows, attach the relevant screenshot to its trade record and record the outcome separately. Keeping the worksheet outside the journal preserves the arithmetic used to reach the observation.

  • Example note: "Week 8, public proxy, B fixed at 100, X 98.3766 and Y 100.9486. The ratio remains below its average. Check week 9 without changing the formula." Append the next observation rather than rewriting the original note after seeing the result.
  • AI Chart Analysis accepts chart screenshots and is designed around visible candlesticks, symbol, timeframe and price axis. Use a separate price-chart screenshot to review price context after identifying a symbol for further research.
  • Do not treat AI Chart Analysis as an RRG coordinate extractor, a JdK calculation engine or a validator of the worksheet. Its interpretation requires review against the source chart and data. Neither this research workflow nor the journal automatically executes trades.
Where Pineify fits

Trading Journal

Record the benchmark, formula, timestamp and research hypothesis in a diary entry or plan. Attach screenshots to related trade records and compare later outcomes with the original observation.

Also useful: AI Chart Analysis. Review a separate candlestick screenshot for price context. This does not calculate proprietary JdK indicators or certify the numerical coordinates of a rotation graph.

Record the research in Trading Journal

Frequently asked questions

Educational chart research, not investment advice. All numerical observations are hypothetical. Relative Rotation Graphs® and RRG® are registered trademarks of RRG Research. The public proxy is independent, and neither quadrant labels nor AI chart commentary guarantee future performance.

Sources and verification

Published by Pineify. Pineify is an independent product and is not affiliated with TradingView. Sources support the technical explanations; examples do not establish trading performance.