Skip to content

Research notes

Crypto market breadth: measure participation honestly

A ten-asset worksheet separates daily direction from trend participation, checks coverage and bounds the result when observations are missing.

Ivory folded fans and closed sculptural forms catch selective lime light beneath a large ivory fan on black.
Illustration for research notes; examples in this article are educational.

Crypto market breadth measures how widely a price move is shared across a defined group of assets. The advance-decline count measures daily direction; percent above a moving average measures participation relative to a lookback. A useful reading names its universe, time boundary and data coverage, because changing constituents or silently excluding missing prices can change the result.

A rising headline price can coexist with falling prices across most of a watchlist. Breadth makes that difference visible. Its first job is to describe participation in a specified sample. Turning the description into a trading rule requires separate evidence about outcomes, costs and the information available when the rule acts.

Decide what the indicator is counting

There is no self-defining group called “the crypto market” for this calculation. A breadth series could cover one exchange's spot assets, an index's constituents or a dated research universe. Each answers a different question. Start with an explicit sentence such as: “Ten eligible spot assets, one instrument per asset, priced in the same quote currency, using finalized daily closes ending at 00:00 UTC.”

Choose whether stablecoins, wrapped representations, leveraged products and very new listings belong in that group. These choices should follow the question being studied. Including several quote pairs for one token gives that token several votes in an instrument count. A cross-asset participation measure normally needs an identity rule that prevents this accidental duplication.

Freeze the list for the comparison interval. If the universe changes later, retain the membership effective at each observation and explain the transition. Reconstructing yesterday's breadth from today's surviving listings can remove yesterday's weak participants. The survivorship-bias audit explains why a current symbol list cannot establish historical eligibility.

Breadth also differs from two related market readings. Bitcoin dominance concerns Bitcoin's share of a defined aggregate valuation; breadth counts participation under a price rule. Order-book imbalance compares displayed quantities within a specified market and price range. Neither tells you how many distinct assets advanced over the day.

Calculate direction and trend participation separately

For daily advance-decline breadth, compare each valid close with its preceding daily close. Let A be advances, D declines and U unchanged assets. Keep unknown comparisons in a separate count M. With a frozen universe of N assets, the counts should reconcile to A + D + U + M = N.

Net advances is A − D. A cumulative advance-decline line adds each period's net advances to its previous level. Each constituent contributes one advance or decline regardless of its size; a 0.1% gain and a 10% gain each count as one advance. This follows the counting method documented for equities by StockCharts' advance-decline methodology. Applying that arithmetic to crypto does not transfer the source's historical equity interpretations into validated crypto forecasts.

Percent above a moving average asks a different question. For each eligible asset, compare its current close with its own specified average. The full-universe measure is 100 × number above / N. StockCharts documents this numerator-and-membership-denominator structure in its percent-above-moving-average methodology.

Specify the average type, lookback, calendar and equality rule. In the example below, the simple moving average uses five finalized daily closes, including the current close. Equality counts as not above. Five days keeps the arithmetic inspectable; it is not a proposed optimal setting. An asset can fall today while remaining above its average, or rise today while remaining below it.

A ten-asset worksheet with two different coverage rates

The following prices are hypothetical units in one common quote currency. Assets A through J are the entire frozen universe. Two complete five-close sequences are expanded below the table to show the averaging method. I has no verified current close. J has both closes needed for today's direction but lacks an earlier close needed for its five-day average.

AssetPrevious closeCurrent closeFive-day SMADaily directionAbove SMA?
A10011099.6AdvanceYes
B504953.8DeclineNo
C201924.4DeclineNo
D10108.8UnchangedYes
E202119.3AdvanceYes
F403942.0DeclineNo
G605962.0DeclineNo
H302926.2DeclineYes
I10UnknownUnknownUnknownUnknown
J22UnknownUnchangedUnknown

For A, the five closes are 94, 96, 98, 100 and 110. Their sum is 498, giving an SMA of 99.6. A advances and is above its average. H's five closes are 23, 24, 25, 30 and 29, averaging 26.2. H declines today but remains above that average. These classifications are compatible.

The observed direction counts are two advances, five declines and two unchanged assets. One is unknown, so direction coverage is 9 / 10 = 90%. The observed net-advance subtotal is 2 − 5 = −3. If reporting an advance share among valid comparisons, label 2 / 9 = 22.22% with that denominator. It is different from an advance share among only assets that moved, which would be 2 / 7 = 28.57%.

For the moving-average calculation, only eight assets have sufficient evidence. Four are above, so the observed-only rate is 4 / 8 = 50%, with 8 / 10 = 80% coverage. Reporting “50% of the market is above its average” would hide both the defined universe and the two unavailable classifications.

Let missing observations widen the answer

Keep N at ten when describing uncertainty about the frozen universe. With four known above-average assets and two unknown classifications, the full-universe percentage lies between 4 / 10 = 40% and 6 / 10 = 60%. The lower endpoint assumes neither unknown asset is above; the upper endpoint assumes both are. This is a logical range, not a confidence interval or a probability forecast.

The same approach tests whether a directional conclusion survives the missing close. I could advance, decline or remain unchanged. Full-universe net advances would therefore be −2, −4 or −3. Declines exceed advances in every case, even though the exact count remains unresolved.

Suppose yesterday's complete cumulative A/D level was 100. Today's complete value could be 96, 97 or 98. Adding the observed subtotal produces 97, but that is provisional until I is classified. A chart that silently accumulates partial subtotals can preserve the effects of feed outages long after coverage recovers. Keep an incomplete update visibly provisional, or withhold the final line point until the declared completeness rule is satisfied.

Do not convert a missing price into “unchanged” without evidence. Coinbase Exchange explicitly warns that historical candle data may be incomplete and omits intervals without ticks. That endpoint contract does not tell you which cause explains a particular missing row. Coinbase Exchange candle limitations

The missing-candles guide separates verified no-trade intervals from unknown collection gaps. For breadth, any permitted fill policy also needs to preserve whether a comparison uses a fresh observed close, a synthetic value or unresolved evidence. A flat value inserted for a gap can increase the unchanged count and alter a moving average simultaneously.

Why an index can rise while breadth weakens

Consider a separate hypothetical one-day basket with complete prices. One asset has a 60% beginning weight and rises 5%. Nine others share the remaining 40% weight and each fall 1%. Ignore costs and external flows. The weighted basket return is 0.60 × 5% + 0.40 × (−1%) = 2.6%.

Breadth records one advance and nine declines: net advances is −8 and the advance share is 10%. The positive weighted return and negative breadth describe the same scenario. One measures capital-weighted price change; the other counts assets. Neither calculation invalidates the other.

This also explains why a count can react strongly to many tiny assets while a large-asset benchmark barely moves. Publish size or liquidity groups separately if those distinctions matter to the research question, keeping their membership rules explicit. A volume-weighted variant can be useful, but it needs its own name, units and formula. It is no longer the ordinary one-asset-one-vote count.

Breadth disagreement is a reason to inspect composition. It does not identify when the large asset will reverse, whether smaller assets will catch up or whether either outcome can be traded profitably.

Use a publication worksheet before setting a threshold

A reproducible breadth snapshot should carry enough information for another reader to rebuild it. The following worksheet fits either indicator without pretending their valid-data sets are identical.

FieldWhat to saveValidation question
Universe versionDated membership and asset identitiesAre duplicate representations getting extra votes?
Observation boundaryVenue, quote, interval and finalized close timeDo all assets' comparisons cover the same day?
Indicator definitionDirection rule or average type and lookbackAre equal prices and equal-to-average cases explicit?
Classification countsAdvances, declines, unchanged, above and unknownDo the relevant counts reconcile to membership?
CoverageValid count for each indicator divided by NIs a longer lookback hiding additional missing inputs?
UncertaintyFull-universe bounds and unresolved assetsCould missing observations change the stated conclusion?
Revision recordOriginal values, recovery time and corrected valuesIs a later backfill changing what was knowable earlier?

Before using breadth in automation, choose what happens when required evidence is unavailable. Possible declared rules include withholding a new decision, retaining the last value with its original timestamp, or passing an explicit unavailable state downstream. A retained value must not acquire a fresh timestamp simply because the process ran again.

Check the calculation with small fixtures: all assets advance; all decline; all are unchanged; every valid close equals its average; one asset lacks the current close; another lacks only an older lookback input. Then remove and restore a constituent under the documented membership policy. These checks test counting and coverage, not predictive value.

If a proposed rule requires a majority above the average, the example's 40%–60% range cannot establish that condition. Recover the missing inputs or leave the decision unresolved. Save the universe, counts, coverage and uncertainty beside every headline breadth number so the reader can tell exactly what the number supports.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.