Indicator library · Volume

Twiggs Money Flow, Chaikin's Formula Repaired

An indicator that exists as a critique of another one. Colin Twiggs kept Chaikin money flow’s idea and repaired two defects in its arithmetic, a gap it misreads, and an average that jumps when old data leaves the window.

What it inherits, and what it repairs

The shared idea is straightforward: weight each session’s volume by where the close finished inside the bar, so a close at the top claims the volume as buying and a close at the bottom claims it as selling. Sum the weighted volume over a period, divide by the total volume, and the result sits between −1 and +1.

Chaikin’s version does that against the high-low range and averages with a simple sum over a fixed window. Both choices have a specific, demonstrable failure, and both are what this revision changes.

The two repairs
Defect in the originalWhat Twiggs changed
A gapping session is measured only inside its own high-low range, so a bar that gapped up and closed near its low reads as heavy selling.Use the true range, the bar extended to include the previous close, so the gap is inside the range being measured.
A simple average drops the oldest session outright, so the line moves when an old extreme leaves the window rather than when anything happens.Wilder smoothing, which decays every past value gradually and never drops one.
Twiggs money flow through a gap and a fadeThe upper panel shows a price series advancing for eight bars, gapping sharply higher on the ninth, drifting for a few more and then declining before recovering. The lower panel shows Twiggs money flow, which stays positive through the advance, dips as the sessions begin closing lower in their ranges, crosses below zero during the decline and turns back up on the recovery.CLOSETMF 80.31the gapTwiggs money flow through a gap and a fadeThe upper panel shows a price series advancing for eight bars, gapping sharply higher on the ninth, drifting for a few more and then declining before recovering. The lower panel shows Twiggs money flow, which stays positive through the advance, dips as the sessions begin closing lower in their ranges, crosses below zero during the decline and turns back up on the recovery.CLOSETMF 80.31the gap
Fig. 1: schematicComputed at build time. The marked session is the case the repair exists for: it gaps a full point above the previous close and then finishes near the bottom of its own narrow range. Chaikin's multiplier scores that bar -0.6, strong selling, because it only sees the high-low range. Against the true range the same bar scores 0.6, because the gap is counted as part of where the session traded. One bar, two arithmetics, opposite conclusions.

Why the gap case matters more than it sounds

A gap is not an exotic event. Earnings, guidance, an index change, a sector shock, an instrument that gaps once a quarter will have several of these inside any reasonable lookback, and they are precisely the sessions carrying the most volume.

So the defect is not a rounding error at the margins. It is a systematic misreading of the highest-volume sessions in the series, in the direction that matters most: a large up-gap that fades intraday is scored as distribution when it was, on any plain reading, a session that traded far above where the instrument stood the day before. Correcting it changes the indicator’s behaviour exactly where the indicator claims to be useful.

What neither version can fix

The repair is real and it leaves the deeper assumption untouched. Both indicators infer intent from where a close landed inside a range, and that inference is an approximation of who was more aggressive rather than a measurement of it. Every share traded had a buyer and a seller.

Two consequences follow. A session whose close was set by a closing auction (an index rebalance, an expiry) is weighted exactly like one where the close reflected continuous trading, though it expressed no view at all. And on an illiquid instrument the whole calculation rests on a handful of prints. Neither version has any defence against those, and no amount of smoothing supplies one.

Reading it beside the price

The line is bounded between −1 and +1, so unlike the cumulative volume measures it can be compared with its own history and, cautiously, across instruments. What it cannot be compared with is a Chaikin reading on the same data: different range, different smoothing, different series. Two charts labelled "money flow" that disagree are usually not disagreeing about the market at all.

In practice the useful states are the same three every volume measure here produces. Both price and the line rising is the ordinary condition of an advance with participation. The line falling while price makes new highs says the later sessions have been closing lower in their own ranges on the volume they carried. And the line rising through a decline says sessions are finishing strong despite the price, where accumulation shows up, if it shows up anywhere.

Where it misleads

Known failure modes
SituationWhat goes wrong
Close-position inferenceWhere the close landed is an approximation of aggression, not a measurement. Every share had both sides.
Auction and expiry closesA close set by obliged trading is weighted like one set by opinion.
Illiquid instrumentsA handful of prints sets both the range and the close, so the reading describes those trades.
Compared with Chaikin readingsDifferent range and different smoothing: the two series are not interchangeable and thresholds do not transfer.
Short historyWilder smoothing carries its seed a long way; early values depend on where the data begins.
Divergence as a triggerA description of deteriorating character that can persist for months, exactly like every other divergence here.

Why it belongs in this library

Most indicators are presented as discoveries. This one is presented as a correction, with the defects named and the fix stated, which makes it unusually easy to evaluate, and unusually honest about what remains wrong after the repair.

That is the shape this reference tries to keep everywhere. An indicator with a stated failure mode can be used carefully; one presented without any cannot be used at all, because there is no way to know when it is lying to you. Twiggs money flow is worth the page mostly because it is what an indicator looks like when someone has taken that seriously.

Frequently asked questions

What is Twiggs money flow?

A revision of Chaikin money flow published by Colin Twiggs. It keeps the idea — weight each session’s volume by where the close sat inside the bar, then average — and changes two things: it measures against the true range rather than the high-low range, and it smooths with Wilder’s method rather than a simple sum over a fixed window. Both changes address specific, demonstrable faults in the original.

What was wrong with Chaikin money flow?

Two things. First, it measures the close inside the high-low range only, so a session that gaps is misread: a bar that gapped up two per cent and closed at the bottom of a narrow range scores as heavy selling, when in fact the whole bar traded far above the previous close. Second, its simple moving average means a single extreme session enters the calculation and later leaves it, moving the line sharply on a day when nothing happened.

How does the true range fix the gap problem?

By extending the bar to include the previous close. The high becomes the greater of today’s high and yesterday’s close, the low the lesser of today’s low and yesterday’s close, so a gap is inside the range being measured rather than outside it. A session that opened far above the previous close and closed near its own low is then correctly scored as a strong session that faded, rather than as distribution.

What does Wilder smoothing change?

It removes the window-exit artefact. A simple average drops the oldest value entirely, so an extreme session leaving the lookback moves the line on a quiet day; Wilder smoothing decays every past value gradually and never drops one. The cost is that the seed is carried forward for a long time, so early readings depend on where the data began, the same trade every recursive average on this site makes.

What does a reading above or below zero mean?

That the volume-weighted position of the close has been in the upper or lower part of its range over the smoothing period. Above zero the sessions have been closing strong on the volume they carried; below zero, weak. It is bounded between −1 and +1 by construction, and readings near either end are rare because they require nearly every session to close at an extreme.

Is it a leading indicator?

No, and the divergence reading it is usually quoted for is the same conditional statement every other divergence on this site carries. Price making higher highs while the line falls says the later advances were made by sessions closing lower in their own ranges, on the volume they traded. That is a description of deteriorating character, it can persist for months, and it is not a countdown.

How does it compare with the Money Flow Index?

They both weight by volume and they measure different things. The Money Flow Index classifies each bar as positive or negative by the direction of its typical price, then runs the RSI conversion, a bounded oscillator between 0 and 100. This weights by where the close sat inside the range, which is a finer distinction, and produces a value between −1 and +1. Neither is a refinement of the other; the MFI asks which way, this asks how convincingly.

Does the choice of period matter much?

Less than in the original, which is one of the quieter benefits of the repair. With a simple average the period decides both how much history is included and when an outlier drops out; with Wilder smoothing only the first of those remains. Twenty-one periods is the common default. As always, the number belongs beside any figure quoted from it.