Effort vs Result: Reading Volume Like Wyckoff Did — ScalperIntel

Effort vs Result: Reading Volume Like Wyckoff Did

Richard Wyckoff figured out something in the 1930s that retail traders are still rediscovering ninety years later: volume tells you what's happening before price does. Not in some mystical way — in a literal, mechanical way. When a large amount of buying or selling activity (effort) produces a small price move (result), something is absorbing that activity. When small activity produces a large move, the path of least resistance is wide open. Read the relationship correctly, and you can see institutional positioning before the chart shows it.

This is the principle behind Volume Spread Analysis (VSA) and the entire Wyckoff methodology. And it's the principle that the ScalperIntel Effort vs Results indicator quantifies — automatically — for NinjaTrader 8 traders.

What "Effort vs Result" Actually Means

Wyckoff's Law of Effort vs. Result is simple in principle, devastating in practice:

The volume on a bar (effort) should produce a proportional price move (result). When it doesn't, the imbalance tells you who's in control.

There are four scenarios, and each one tells a different story:

1. High Effort + High Result (in same direction) = Healthy trend continuation. Buyers (or sellers) are committed, and the market is rewarding their commitment with price movement. Keep trading in the direction of the move.

2. High Effort + Low Result = Absorption. Someone large is taking the opposite side of the visible activity. Heavy buying with no upward progress means a seller is absorbing every bid. This is what Wyckoff called compression — and it almost always precedes a reversal in the opposite direction of the visible effort.

3. Low Effort + High Result = Thin supply/demand. The market is moving easily because nobody is fighting it. This is often where breakouts originate, before crowd participation arrives.

4. High Result + Low Effort (relative to recent average) = End of Move. The push has exhausted itself. Without participation behind it, the move can't sustain. Reversal probability is elevated.

The hard part isn't understanding this — it's quantifying it in real time, across every bar, against rolling averages, while you're also watching price, structure, and your other tools.

Why Most Volume Indicators Miss This

Look at the standard volume indicators NinjaTrader ships with:

  • Volume histogram — shows you the raw volume on each bar, no context
  • VWAP — gives you a weighted average price, not a volume-vs-price comparison
  • On-Balance Volume — sums signed volume, no relationship to bar range
  • Volume Profile — shows where volume accumulated, not the effort-result mismatch on individual bars

None of these compare effort to result. They show you one side of the equation. To trade Wyckoff's principle, you need both sides on the same scale, normalized so you can actually compare them. That's not a tweak to existing indicators — it's a different category of tool.

How ScalperIntel's Effort vs Results Indicator Works

ScalperIntel Effort vs Results indicator for NinjaTrader 8 showing stacked volume and price bars with RRoF oscillator and Wyckoff markers

The Effort vs Results indicator operationalizes Wyckoff's principle in a way that's visually immediate and mathematically rigorous. Here's what it does:

Normalizes both effort and result onto the same scale. Raw volume and raw price movement aren't directly comparable — a 500-contract volume bar on the ES is meaningless without knowing the recent average. The indicator computes a rolling average for both volume and price displacement (default 20-bar lookback), then normalizes each bar to a percentage of that average. Now the comparison is fair.

Stacks effort and result as paired bars in a separate panel. Below the price chart, each bar shows two stacked rectangles:

  • Lower rectangle (Volume) — the normalized effort
  • Upper rectangle (Price) — the normalized result

When the price bar is taller than the volume bar, result exceeds effort → exhaustion territory. When the volume bar is taller than the price bar, effort exceeds result → absorption territory. The visual comparison is immediate.

Computes the Relative Rate of Flow (RRoF) oscillator. This is the indicator's proprietary signal engine. It combines six different price-action measures — bar closing position, spread-to-range ratio, normalized spread, 2-bar closing position, 2-bar shift, and normalized shift — into a single composite that captures how much price actually moved relative to where it could have moved. That composite is then weighted by normalized volume. The result is a bounded oscillator (-100 to +100) that shows true buying or selling pressure adjusted for the effort behind it.

Smooths the RRoF in two stages. Raw RRoF gets smoothed first by a configurable MA (default WMA, length 3), then the smoothed line is further smoothed into a signal line (default WMA, length 5). Crossovers between the smoothed RRoF and the signal line generate Wyckoff-style swing alerts.

Plots four Wyckoff condition markers automatically. This is where the indicator earns its keep. When specific effort-vs-result mismatches occur, it prints markers directly on the price chart:

  • ▲ Green Triangle — Bullish End of Move. Price moved up substantially with diminished volume (result > effort by 120%+). Bullish exhaustion. Take profit on longs; consider mean-reversion shorts.
  • ▼ Red Triangle — Bearish End of Move. The same pattern in reverse. Bearish exhaustion.
  • ● Green Dot — Bullish Compression. Heavy volume with small upward result (effort > result by 50%+). Bullish absorption. Smart money likely accumulating — anticipate upside continuation.
  • ● Red Dot — Bearish Compression. Heavy volume with small downward result. Distribution. Anticipate downside continuation.

These four markers cover the two core Wyckoff conditions (Absorption + End of Move) in both bullish and bearish form. Each one is a visual prompt that the textbook conditions for a Wyckoff trade have triggered on the current bar.

Includes a configurable Bias baseline. Optional but useful: a longer-period RRoF average (default 30 bars) painted as a background bias band. Green background = bullish bias, red = bearish. Filter your markers through the bias for higher-quality signals — green markers in green bias are highest-probability longs, red markers in red bias are highest-probability shorts.

Three band scales for different chart styles. The bands (zero, 25%, 50%, 75%, 100%) can be scaled to 100, 200, or 400 — useful when running on instruments with very different volatility characteristics.

17 hidden plots for full Strategy Builder automation. Every internal series — the raw RRoF, the smoothed RRoF, the bias, normalized price and volume, the signal line, the marker values (1, -1, 2, -2), and the bar color value — is exposed for use in automated strategies. The markers plot is particularly clean for systematic traders: it reads 1, -1, 2, or -2 depending on which of the four Wyckoff conditions just fired, giving you a single-variable input for any strategy condition.

How to Use It in Practice

Some patterns that consistently work:

1. Trade compression dots in the direction of bias. A green dot (bullish absorption) in a green bias environment is one of the highest-probability long setups you'll find. The market is being accumulated, and the higher-timeframe momentum supports it. Same logic in reverse for red dots in red bias.

2. Use end-of-move triangles as profit-taking signals, not reversal entries. A green triangle (bullish exhaustion) doesn't mean go short immediately. It means stop pressing longs. Reversal entries are higher-quality when end-of-move pairs with other reversal evidence — a structural break, divergence, key level.

3. Watch for marker clusters at key levels. A single dot or triangle is information. Two or three within a few bars at the same price level is conviction. Wyckoff's accumulation and distribution patterns build over multiple bars, and the markers cluster where the action is.

4. Filter markers by the bias band. Turn the bias background on. Only trust markers that align with the bias direction. This single filter eliminates most false signals.

5. Use the stacked bars for live reading. Don't just wait for markers. Watch the volume bar vs price bar relationship in real time. When the volume bar suddenly dominates the price bar mid-session, something is being absorbed — even before a marker prints.

6. Adjust band scale to your instrument. ES on a 5-minute chart works well with the default 100 scale. CL or NQ on the same timeframe often benefit from 200. Crypto on a 1-minute often needs 400. Match the scale to the visible signal range.

Strategy Builder & Automation

The markers series is the cleanest entry point for automation. It's a single integer value per bar:

  • 1 = Bullish End of Move
  • -1 = Bearish End of Move
  • 2 = Bullish Compression
  • -2 = Bearish Compression
  • 0 = No marker

That means a Strategy Builder condition like "enter long when markers = 2 AND bias > 0" expresses a complete Wyckoff compression-with-bias setup. Combine with the rrofSmooth crossing zero for entry timing, and you have a fully systematic Wyckoff implementation. No coding required.

For more nuanced strategies, the normalized price and volume plots (nPrice, nVol) give you direct access to the effort-vs-result ratio. The condition Math.Abs(nPrice) / nVol < 0.5 is, by definition, a compression bar — you can build custom filters off the underlying math.

Common Mistakes to Avoid

  • Treating markers as triggers without context. A green triangle in isolation isn't a short signal. It's a "the buyers are tiring" signal. You still need a structural reason to fade.
  • Ignoring the bias band. Markers against the bias are noisier than markers with the bias. The bias band is the simplest filter the indicator gives you. Use it.
  • Mismatching the band scale. If your markers and oscillator are all bunched up in the lower 20% of the panel, scale up. If they're constantly clipping the top, scale up further. The signal range should comfortably fit within the visible band.
  • Trading every compression dot. Compression is evidence of absorption — it doesn't tell you when the absorbed party will give up. Pair with structure (key level, channel boundary, prior swing) for entry timing.

Frequently Asked Questions

What's the difference between this and a standard VSA indicator?
Traditional VSA indicators flag individual bars based on volume/spread heuristics. This indicator quantifies the effort-vs-result relationship continuously as an oscillator (RRoF), then surfaces the specific Wyckoff conditions (End of Move + Compression) as markers. You get both the continuous signal and the discrete pattern detection.

What lookback should I use?
The default 20-bar lookback for normalization works well for most intraday timeframes. Shorter (10–14) is more responsive but noisier. Longer (30–50) is smoother but lags. The RRoF length (default 10) and smoothing (default 3) are usually fine at defaults — adjust only if signals feel too noisy or too sluggish.

Does this work on all instruments?
Yes, but it requires real volume data. Futures, equities, and crypto all work well. FX without true volume (tick volume only) still produces usable signals but is less reliable than instruments with cleared volume.

What's the "Compression" marker actually telling me?
It's flagging that the volume on this bar significantly exceeded what the price movement would suggest. In Wyckoff terms, someone larger is absorbing the visible flow. Bullish compression (green dot) means selling pressure is being absorbed by a buyer; the bar is going up despite the heavy effort to push it down. Anticipate upside.

Can I automate strategies with this?
Yes. The markers plot is a single-variable trigger (values: 1, -1, 2, -2) that Strategy Builder can read directly. Combine with the bias plot for trend-filtered automation. 17 exposed plots total cover every internal series.

Wrapping Up

Wyckoff's effort-vs-result principle is one of the oldest, most rigorously documented edges in markets. It works because it captures something fundamental: order flow has to balance, and when the visible effort doesn't produce proportional result, hidden order flow is doing the balancing. That hidden flow is what you want to be aligned with.

The ScalperIntel Effort vs Results indicator does the normalization, the composite scoring, the oscillator computation, and the Wyckoff pattern detection automatically — across any instrument with volume data, with full Strategy Builder support. If you've ever wanted to actually quantify Wyckoff instead of squinting at charts, this is the tool.

Explore the Effort vs Results indicator →


Trading futures, forex, options, and other leveraged instruments carries substantial risk and is not suitable for every investor. Past performance is not indicative of future results.

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.

1 of 4
1 of 5