Market Research

Asset Characteristics

Metrics Over Time

The Metrics

Metric Calculation What it shows
Price Change % changet = Pt − P0P0 × 100 A market's close against its first close, as a percentage. P0 is the first bar every market shares, not each market's own first bar, so the six are measured from one day. What a unit bought at the start would be worth now. It is the context for the rows under it — the same movement is a different fact depending on whether a market was climbing or falling through it.
Annualized volatility σt = sd(rt−N+1,…,rt) × √B The deviation of the last N log returns, scaled to a year by the root of the number of bars a year holds at that bar size. N is 720 bars and B follows the panel — 365 at a daily bar, 17,520 at 30 minutes. How roughly a market moves, in the one unit that compares bar sizes and markets. A market at 50% is moving in a way that, kept up for a year, would put it half its own value from where it started.
Volatility of volatility vovt = sd(|r|)mean(|r|) The deviation of the window's bar sizes over their own mean. A ratio rather than a size, so one axis carries every market and every bar size at once. Whether a market's movement arrives evenly or in bursts. Near one the bars are spread the way an ordinary market spreads them; well above it, the window's whole move came from a handful of bars.
Return skew skewt = mean((r − mean(r))3)sd(r)3 The standardized third moment of the window's returns. Zero is a symmetric window; the sign says which side the long tail is on. Which direction a market's biggest bars go. Below zero it grinds up and falls hard, which is the usual shape; above zero it grinds down and jumps, which on this page is the meme pairs and almost nothing else.
Sideways % of window ER = |rt−n+1 + … + rt||rt−n+1| + … + |rt| The efficiency ratio over 30 bars — net move against the sum of the moves that made it — then the share of the last 720 bars where it sat below 0.30. Two windows: a local reading of whether price is getting anywhere, and a long one saying how much of the time it was not. How much of a market's life is spent going nowhere. The threshold is a choice rather than a standard, so the level is worth less than the shape — what matters is when a market leaves a range, not the exact percentage it sat at while inside one.
Uptrend % of window upt = mean(ER > 0.30 and rnet > 0) × 100 The same 30-bar efficiency ratio as the row above, counted the other way: the share of the last 720 bars where it cleared 0.30 and the net move that got it there was positive. How much of a market's life is spent climbing rather than ranging or falling. Read against the row above: what the two leave unaccounted for is the share spent trending down, so a flat sideways share with this one falling is a market turning over rather than calming.
Downtrend % of window downt = mean(ER > 0.30 and rnet < 0) × 100 The same 30-bar efficiency ratio again, with the net move negative. With the two rows above it this accounts for the whole window: sideways, up and down add to a hundred at every bar. How much of a market's life is spent falling with conviction, as opposed to drifting. Read as the third of a set — a market whose sideways share is steady while this one grows is not getting quieter, it is turning over.
Correlation to index corrt = cov(r, rI)sd(r) sd(rI) Correlation of a market's log returns against the all-markets index's, over the same 720-bar window. Bounded between -1 and 1, so it needs no log axis and no room made for an outlier. Whether these are six markets or one trade held six ways. Near 1 a market carries no risk the index does not already carry, so holding several of them is leverage rather than diversification.
Beta to index betat = cov(r, rI)var(rI) The slope of a market's returns regressed on the index's, over the same window. One above means it moves further than the index; one below, less far. The half of the picture correlation leaves out. Correlation says a market goes the same way as the index; beta says how far it goes when it does, and that is what decides what holding it does to a position.
Alpha % a year αt = (mean(r) − beta · mean(rI)) × B The intercept of the same fit, annualized. What the market returned beyond what its beta to the index already accounts for. Whether a market paid for itself or merely kept up. Over a window this short it is mostly noise at the fast end, which is itself the answer: alpha measured over a fortnight is not a fact about a market.
Turnover $M per bar turnovert = mean(P V) Close times base-asset volume, averaged over the window and quoted in millions of dollars. In dollars rather than coins, since Dogecoin trades in billions of them and Bitcoin in thousands. How much money actually moves through a market. The row below says what trading it costs; this one says whether there was anything to trade — and the two are not the same question.
Illiquidity % per $bn illiqt = mean(|r|P V) × 109 Amihud illiquidity: each bar's move divided by the dollars that traded in it, averaged over the window and scaled to a percentage move per billion dollars of turnover. What it costs to trade size. The only row here not made of price alone, and the one that says whether a backtest's fills were plausible — a rule working a thin market pays for the move it makes itself, on top of the fee.

The Charts

Every metric, by bar size

Every market from August 2020 · one shared axis along each row · 720-bar window: 15d at 30m, 30d at 1h, 120d at 4h, 720d at 1d

What each market averages, by bar size

The mean of every line above, over its whole length · one panel per metric