How this review is made
The Quantitative Review is written by a program, every night, from public prices. This page explains what it measures, how it decides what to call real, and where its limits are.
How the verdicts work
Every strategy runs on every market after a cost on each trade: 25 bps for crypto, 5 bps for ETFs and the dollar. Days are trading days. A cell beats a coin flip when its Sharpe ratio is above that of a random in-or-out rule on the same market. “Holds up” needs three things at once: it beats all five coin flips, it earns more than holding the market at the same average exposure, and its deflated Sharpe is at least 95%. Deflated means the luck of picking the best cell out of the whole board is charged to it. “Unproven” beats all five coin flips but misses one of the other two. “Coin-flip territory” beats some of them. “Worse than every coin flip” beats none. Since-entry gain is the price move from the close the strategy got in, before costs.
The luck test. If you try many things and keep the best, the best will look good by luck alone. So we work out how good the best of all the tries would look if none of them had any skill, and ask whether a rule beats that. The number reported is the probability that the rule’s result is better than that lucky best; a rule passes at 95%.
The formula
DSR = Φ((SR − SR0) √T√(1 − γ3 SR + ((γ4 − 1)/4) SR²))
SR is the rule’s Sharpe ratio (return per unit of wobble). SR₀ is the Sharpe the luckiest of N skill-less tries would reach, which grows with N; here N = 150, every pair of rule and market plus the coin flips. T is the number of days. γ₃ and γ₄ describe how lopsided and how fat-tailed the daily returns are. Φ turns the result into a probability.
What it buys: a rule that merely got lucky in a crowd of 150 cannot pass. This is the bar every verdict rests on.
Why a strategy wins or loses
A rule can make money in only two ways. It can sit in a market that went up, which anyone holding that market also gets. Or it can time its entries, and timing works only if a market remembers: if the last week’s move says something about the next week’s. Trend rules need a positive memory. Buying the dip needs a negative one. The Market memory charts in each edition show every market’s memory over its whole history. The shaded band is how far pure chance reaches; a bar inside it means there is nothing there to time.
No peeking. A rule decides at tonight’s close and earns tomorrow’s move, after paying to change its position.
The formula
rt+1net = wt · rt+1 − c · |wt − wt−1|
w is the position (1 in the market, 0 out), r the market’s return, c the cost per trade: 0.25% for crypto, 0.05% for everything else.
What it buys: no rule can use a price it had not seen yet, which is the commonest way a backtest lies.
Where the money came from. A rule’s average return splits exactly into three parts: holding a market that went up anyway, timing (being in on the good days more than the bad), and trading costs.
The formula
r = w · rmkt + ( w · r − w · rmkt ) − costs
Bars are averages over the whole history. The first term is holding; the bracket is timing; costs are what the trades cost.
What it buys: only the middle term is skill. A rule that is in the market 60% of the time earns 60% of the market’s drift for free, and this takes that away before judging it.
Market memory
For each market, returns are cut into back-to-back blocks of a day, a week, a month and a quarter, and each block is compared with the next one. The number is a rank correlation, so a handful of extreme days cannot fake a pattern. The shaded band is ±2/√n for n pairs of blocks: a market with no memory lands inside it about 95% of the time. The central bank’s sol rate is a daily average, which builds in a day-to-day memory of its own, so that market is shown greyed out.
Memory. For a length of time h (a day, a week, a month, a quarter), cut the history into back-to-back stretches of that length and ask whether each stretch’s return is related to the next one’s. We use the rank correlation, which compares orderings rather than sizes, so one crash does not dominate.
The formula
ρh = corr( rank(Rk), rank(Rk+1) ), Rk = return over stretch k of length h
The gray band is ±2/√n, where n is the number of stretches: how far a market with no memory would wander by chance.
What it buys: a bar outside the band is a pattern a rule could, in principle, use. Inside the band there is nothing to time.
The transition matrix
This is the kernel. Each week, every market’s move is written as a weighted sum of all ten markets’ moves the week before. The weights form a 10 by 10 matrix: read along a row to see how that market’s move carries into each market the following week, including itself. Moves are measured in standard deviations, so +0.20 means one unusual week is followed by a fifth of an unusual week in the same direction. Every market is priced at what was known at the same moment each Saturday.
The matrix is a vector autoregression with one lag, fitted by least squares on weekly returns that are standardized and clipped at four standard deviations. Each entry is tested on its own (outlined) and again after charging for all 100 entries at once (filled; a Bonferroni correction). The eigenvalues of the matrix give how fast any pattern fades.
The transition matrix. Next week’s move in each market is modeled as a weighted mix of this week’s moves in all ten markets, plus whatever the mix cannot explain. Weekly moves are first scaled to each market’s usual size, so a 2% week in bonds and a 10% week in bitcoin count alike.
The formula
xt+1 = A xt + εt, Aij = how much market j this week moves market i next week
Each entry gets a t-statistic: how many “wobbles of chance” it sits away from zero. Above 2 it would look real on its own; above about 3.3 it survives being one of 100 tests (the Bonferroni correction). The half-life is how long the strongest pattern takes to fade by half, from the matrix’s largest eigenvalue. R² is how much of next week the whole mix explains: 2% to 5%, which means 95% to 98% is something else.
What it buys: a map of which markets lead which, with an honest count of how many of the 100 entries chance alone would light up (about 5).
What the kernel explains
Each strategy’s position is approximated, as closely as a straight line allows, by a weighted sum of the market’s return over the past day, week, month and quarter. The market’s memory then predicts the timing profit a rule of that shape should earn, exactly, and the part the straight line cannot follow is reported as not explained. The fit percentage says how much of the rule’s real on/off behavior the straight line captures.
What the kernel explains. A rule’s position is fitted as a weighted sum of the market’s own recent returns over a day, a week, a month and a quarter. The fit’s weights, times how each of those memories co-moves with the next return, add up exactly to the rule’s timing. Whatever is left is timing the memory does not explain.
The formula
wt ≈ Σj bj Bj,t, timing = Σj bj cov(Bj, r) + cov(residual, r)
B_j is the market’s past return over block j (day, week, month, quarter); b_j is the fitted weight; the fit’s R² says how smooth the rule is.
What it buys: it says which memory, if any, a rule is cashing in. For most rules the answer is none, which is why most verdicts are “coin flip.”
Data and schedule
Crypto: Coinbase daily candles. Stocks, bonds and commodities: exchange-traded funds (SPY, EEM, TLT, GLD, USO, CPER), dividend-adjusted, from Yahoo Finance. The dollar against the sol: the interbank selling rate published by the Banco Central de Reserva del Perú. A bar is used only after it has closed. Costs are 25 basis points per trade for crypto and 5 for everything else. A GitHub Action runs every night after the US close, recomputes everything from scratch and publishes the edition. Headlines come from GDELT and from the public feeds of CoinDesk and OilPrice.com; how unusual a market’s news coverage is comes from GDELT.
A “typical day.” Each market’s last move is compared with how much it usually moves: its standard deviation over the past 90 days.
The formula
z = rtoday / sd(r, last 90 days)
z of 1 is an ordinary day; 2 is unusual; 3 happens a few times a year.
What it buys: a 3% day means something different for bitcoin and for bonds; this puts them on one scale, and it is what picks the lead story.
PriceTape and The Committee. Two programs trade crypto with no hand-made decisions. PriceTape writes its own trading rules in a small language of its own, tries them on past prices and keeps whichever survive; the rule in charge on a given night is its incumbent. The name comes from the ticker tape that once printed every price; the program works on daily closes, not trade by trade. The method behind PriceTape is the author’s own and is not published; its record is. The Committee is a weighted vote of the 23 hand-written trading rules: every rule gets a weight, rules that have been making money gain weight and the rest lose it, and The Committee holds the weighted average of what the rules hold (the classic “Hedge” method for learning from a panel of experts). Both are judged by the same luck test as everything above and publish their positions every night. Their record on the paper is the forward record only: from the first night each decision was written down, credited only with what came after, with the same costs, beside the three coins held equally and bitcoin alone over exactly the same nights.
The formula
The Committee: πi,t ∝ exp(η · Ri,t), position = Σi πi,t · ai,t
R is rule i’s running gain (its cumulative log return), a its position (in or out), π its weight. η = 10 sets how fast trust moves toward the winners, and each night a small share (0.1%) is spread back over every rule so none is ever silenced.
What it buys: a trader that cannot be accused of hindsight, because every night’s decision is committed to the public record before the next day’s prices exist.
Provenance
Every edition carries the run number and the version of the code that produced it, and the update log at the end of each edition shows every night the program ran or missed. Nothing in an edition is edited by hand. Past editions are kept as they were published: every edition of the last two weeks, then the weekend edition of each week, the first to carry the week’s closing prices. The reports and the column are written by the program from the night’s numbers, and the column says so. The portraits are invented illustrations, not real people.
Experimental sections
Sections marked experimental try things that may not hold up, such as reading news alongside market moves. They are labeled so, every number in them is checked against the data before publishing, and they are never a reason to trade.
Not investment advice
This is research on public data. It holds long-only positions on paper, tells no one what to buy or sell, and reports losing strategies as plainly as winning ones.