We wrote two lines before the run. The kill line needed two things: with no costs, the two charts within 0.15 Sharpe of each other; and after 10 basis points a round trip, Heikin-Ashi earning less a year than holding every stock on the list. Both came true: a Sharpe gap of -0.012, and -0.62% a year against 9.69%. The rescue line needed Heikin-Ashi to beat plain candles by 0.15 Sharpe or more after costs, and to land above the 95th percentile of the random traders. Both came true as well: an after-cost gap of +0.162, and 0.0740 against the registered crowd’s 0.0712. Our written rule says a mixed result like that is reported as inconclusive, and on 2026-09-24 the channel ruled that the rule’s literal text governs. The lab’s first write-up, dated 2026-07-14, called this a kill; that call is withdrawn (§1). What we measured does not change with the call. Before costs the picture added nothing. The money on the smooth chart comes from a price no order fills at. After costs the smooth rule lost less only because it traded less, and it still lost money, one dollar to 87 cents, while holding the same stocks earned 9.69% a year.
Granted, not measured: The video’s account of how these candles are drawn: each body is an average of the bar’s four prices, each new body starts halfway up the one before it, and the wicks still show the high and the low. Its advice to learn plain candlesticks first, and that trading is not a get-rich-quick thing. And the possibility that a calmer chart helps a person sit through a trade: that is about nerves, which our test cannot reach, so we grant it rather than claim to have tested it.
Tested: One rule, run twice on the same stocks and the same days: hold a stock while its candle is green, sell it when the candle turns red, and split the money equally across every stock that is green. The first run read the colour from plain candles (green when the day closed above its open); the second from Heikin-Ashi candles (green when the average sits above where its body started). Daily candles, long only, 2,606 US common stocks from 2004-01-02 to 2026-06-22, with no costs and with 10 basis points a round trip. A third run used the same Heikin-Ashi rule but was paid at the Heikin-Ashi price itself, the level the chart draws, to measure how far that price sits from one that actually traded.
The pre-registration was written on 2026-07-14 at 16:49:52 (US Pacific time, by the file’s own timestamp), before the first run’s log was written at 16:56:13. The lab’s files were then committed together in one commit later that day, so this order rests on file timestamps, not on the commit history: we say the lines were written before the run, not that a commit sealed them. The first run’s benchmark was broken, and the cleaning rule was in the code by 16:58:03 (the code file’s own timestamp), after that run and six seconds before the second run’s log was created; the table of run-stage additions below marks it. The random-trader crowd was rebuilt as registered on 2026-09-24: its measurement plan was committed at 21:31:07 UTC and the run that drew it started at 21:35:56 UTC. The commit times come from our private research repository; they are our own attestation of this timeline, not a public record a reader can inspect.
Does the Heikin-Ashi picture, by itself, give a trading rule an edge that the same rule on plain candles does not have?
The pre-registration filed the test under the thesis that drawing candles differently is not, by itself, a sufficient edge: a transform of the same four prices repaints the picture, not the profit. The cleaning rule we added after the first run moved the no-cost comparison toward that prior, which is why §3 discloses it before anything else.
| Parameter | Locked value |
|---|---|
| Plain-candle signal | green when the day’s close is above its open |
| Heikin-Ashi candle | close = (open + high + low + close) / 4; open = half of (previous Heikin-Ashi open + previous Heikin-Ashi close), seeded at (first open + first close) / 2; high and low = the extremes of the real high or low and the Heikin-Ashi open and close |
| Heikin-Ashi signal | green when the Heikin-Ashi close is above the Heikin-Ashi open |
| Position | long when green, flat when red; the signal from the close of day t sets the position on day t+1 |
| Honest fill (the till) | the position earns the real close-to-close return |
| Tag fill (untradeable) | the position earns the Heikin-Ashi close-to-close return; included only to measure the size of the gap |
| Costs | 0 and 10 basis points a round trip (5 a side), charged per position change |
| Portfolio | equal weight across every stock signalled long that day; cash when none |
| Benchmarks | equal-weight buy-and-hold of every stock on the list; SPY buy-and-hold |
| Random traders | each stock’s long/flat states shuffled so each stock keeps its share of time held; 200 draws |
| Universe | the union of the 800 most liquid US common stocks on the first trading day of each year 2004–2026, delisted names present on their live dates |
| Predictions and lines | P1–P4, the kill line and the rescue line, quoted below |
| Item | What it is | When and status |
|---|---|---|
| Price floor and daily cap | a stock is held only if the signal day closed at $5 or more; every daily return is capped at 50% either way | added after the first run, before the second, on 2026-07-14; applied to every arm and to the equal-weight benchmark; SPY is computed from its raw closes and the cleaning never touches it (§3) |
| The crowd the published run built | 120 traders (200 registered), shuffled over every day in the panel including days a stock was not listed, so its traders held stocks on fewer days than the rule | found on 2026-09-24 and rebuilt as registered (§4) |
| Cost level for P4 | the code compared the rule with the crowd at 10 basis points; the pre-registration names no cost for P4 | run-stage choice |
| Data filter | a stock needs at least 30 daily bars with positive prices: 2,607 selected, 2,606 used | run-stage choice |
| Sharpe ratio | mean over standard deviation of the daily net portfolio return, times the square root of 252; no risk-free rate | run-stage definition |
| Turnover statistic | the mean over days of (stocks changed / stocks held), times 252; costs are charged each day on that changed fraction, capped at 100% | run-stage definition |
| Point-in-time universe (M3) | each stock held only from its first yearly selection; a stock that later leaves the top 800 stays in, so it corrects entry only | ADDED AFTER the run, 2026-09-24; unregistered sensitivity |
| As-often crowd (M2) | each stock’s own hold sequence rotated to a random start | ADDED AFTER the run, 2026-09-24; unregistered sensitivity, never a verdict layer |
| # | Pre-registered goalpost | Measured | Pass |
|---|---|---|---|
| P1 | With no costs, the two charts’ Sharpe ratios within 0.15 | plain 0.4343, Heikin-Ashi 0.4225: gap -0.0119 | HOLDS |
| P2 | Paid at the tag, far above paid at the till | at 10 bps: tag Sharpe 4.19, +97.48% a year; till Sharpe 0.0740, -0.62% a year | HOLDS |
| P3 | After 10 bps, Heikin-Ashi earns less a year than holding every stock | -0.62% against +9.69% a year | HOLDS |
| P4 | The rule does not beat the 95th percentile of the random traders | rule 0.0740; published crowd p95 0.0657 (120 draws); registered crowd p95 0.0712 (200 draws): above 195 of 200, below its best draw 0.0809 | FAILS as written |
| Kill line | P1 and P3 both hold | both hold | CAME TRUE |
| Rescue line | Heikin-Ashi beats plain candles by 0.15 or more net, and P4 fails | after-cost gap 0.0740 − (-0.0880) = +0.1620; P4 fails | CAME TRUE |
| Mixed | Both lines, or neither: report as inconclusive | both came true: inconclusive | APPLIES |
Three of four predictions held as written; P4 failed as written, against both the published crowd and the registered one. Both lines came true, so the mixed branch applies. On 2026-09-24 the channel ruled that the literal text governs, including the word “net” in the rescue line; read that way, both lines fire. The rescue line fires only with P4 read at 10 basis points, the run-stage cost choice listed above: read with no costs, P4 holds against all three crowds (the rule is above none of their draws), and only the kill line fires. That 10 bps choice predates any result: the first run already compared the rule with the crowd at 10 basis points.
| Figure | Value | What it means |
|---|---|---|
| Sharpe ratio, same rule, no costs | plain 0.434 · Heikin-Ashi 0.422 | A gap of -0.012: before costs the picture added nothing. |
| Paid at the tag, 10 bps | +97.48% a year, Sharpe 4.19; $1 → $4,249,497 on paper | Unattainable. The tag is an average no order fills at; this run measures the gap, not what anyone earned. |
| Paid at the till, 10 bps | -0.62% a year, Sharpe 0.074; $1 → $0.87 | The same rule, stocks and costs, at a price that actually traded. |
| Tag and till, no costs | +112.25% against +6.83% a year | Costs do not make the gap. The price does. |
| How often the rule traded | Heikin-Ashi 144.6 · plain 223.3 a year (turnover statistic) | 35% less trading on Heikin-Ashi. The statistic counts one-way position changes as a share of the book held that day; 144.6 is about 72 round trips a year. |
| Costs saved by trading less | 3.93 points a year | Before costs Heikin-Ashi trailed plain candles by 0.41 points a year; after costs it led by 3.47. That swing, 3.88 points, matches the saving within 0.057. The one measurable thing the smoothing bought you was a smaller commission bill. |
| After-cost Sharpe gap | 0.074 − (-0.088) = +0.162 | It clears the rescue line’s 0.15, and all of that lead is the smaller bill. |
| Holding every stock on the list | +9.69% a year, Sharpe 0.526, worst fall -60.4% | The benchmark. SPY: +8.85% a year, Sharpe 0.547, worst fall -56.5%. Price only, no dividends. |
| The rule against holding | 10.32 points a year behind | -0.62% against +9.69%; about ten point three either way you round. |
| Worst fall | rule -66.8% · holding -60.4% | The rule fell further than holding, and earned less. |
| Plain candles after costs | -4.09% a year, Sharpe -0.088 | The twin that traded more paid the bigger bill. |
Three things could make this result an artifact of how we ran it. We checked what we could and name what we could not.
Our first run was polluted by penny stocks and dying stocks that swung by half their price or more in a single day. They broke the equal-weight benchmark, and they hit the plain-candle run much harder than the smooth one, so in that run Heikin-Ashi scored higher before costs by more than 0.15. Under the lines we wrote first, that run was inconclusive. We do not print its figures: its benchmark was broken, and a figure from a broken run is excluded, not hedged.
After seeing it, we added two cleaning rules: hold a stock only if the signal day closed at $5 or more, and count no day’s move for more than 50% either way. Before the fix the two charts scored too far apart to count as the same; after it they landed inside the 0.15 line. That moved the result toward what we expected, which is why it is disclosed here first. The rules were applied to every run and to the benchmark, and the cleaned benchmark (9.69% a year) now lands near SPY (8.85%), which the cleaning never touched. We ran one cleaning version only. A check with other price floors and other caps is owed (§8).
The list pools every year’s 800 most liquid stocks into one, with delisted stocks present on the days they traded. That makes it survivorship-free, but not point-in-time: a stock can be held on days before it was first selected, 1,800,499 of 8,814,019 tradeable stock-days. On 2026-09-24 we added a sensitivity, unregistered and never a verdict layer, that holds each stock only from its first yearly selection; a stock that later drops out of the top 800 stays in, so it corrects entry only. The pattern is the same: the no-cost gap is +0.0076 (inside 0.15), the after-cost gap +0.1780, and the rule loses 3.03% a year against 6.88% for holding. Exposure keeps the full 2,606-stock denominator, so it falls when stocks enter later.
| Point-in-time cell (added after the run) | A year | Sharpe | Worst fall | Exposure | Turnover a year |
|---|---|---|---|---|---|
| Holding every stock | +6.88% | 0.4095 | -62.6% | 0.476 | 0.7 |
| Heikin-Ashi, till, no costs | +4.26% | 0.3053 | -61.7% | 0.249 | 145.0 |
| Plain, till, no costs | +4.16% | 0.2977 | -68.0% | 0.237 | 222.7 |
| Heikin-Ashi, till, 10 bps | -3.03% | -0.0438 | -67.4% | 0.249 | 145.0 |
| Plain, till, 10 bps | -6.82% | -0.2218 | -82.9% | 0.237 | 222.7 |
| Heikin-Ashi, tag, no costs | +102.41% | 4.3315 | -27.5% | 0.249 | 145.0 |
| Heikin-Ashi, tag, 10 bps | +88.29% | 3.8942 | -28.3% | 0.249 | 145.0 |
Every return here, the rule’s and the benchmarks’, counts price alone, without dividends; that is why SPY reads only 8.85% a year. Which way the missing dividends cut between the rule and the benchmarks was never measured, and we make no claim about it. The rule’s turnover statistic (144.6 a year) differs from its book turnover, total changes over total stocks held times 252 (127.1). Costs are charged on the first. Which is the better cost base was not evaluated.
The core control is the plain-candle twin: the same rule, stocks, days, fill and costs, with only the candle that decides green or red changed. The tag run measures the illusion. The benchmarks are equal-weight buy-and-hold of every stock on the list, and SPY. On 2026-09-24 the lab’s own functions reproduced 33 of 33 published cells to within one millionth before any new crowd was drawn, and for this report they rebuilt the published cells again (§10).
The pre-registration asked for 200 random traders, each holding each stock for the same share of time as the rule, but on random days, and, by its general friction line (its line on the crowd names no cost), paying the same cost per trade as the rule. The crowd the published run built had 120 traders and shuffled over every day in the panel, including days a stock was not listed, so its traders held stocks on fewer days than the rule (exposure 0.249 against 0.314, measured on the 2026-09-24 replay of its draws). On 2026-09-24 we rebuilt it as registered: 200 traders, each stock held for the rule’s share of its own listed days. That rebuilt crowd is the registered one, and it is the one the episode speaks.
Picking days at random means switching far more often. On our turnover statistic, the registered crowd traded about 1.7 times as often as the rule (247.0 against 144.6 a year). On the plain count of position changes, measured on its first draw only, it made 1.96 times as many (4,565,204 against 2,329,467). The first figure is the per-day turnover statistic the costs are charged on; the second is a trade count. They measure different things.
After the run, and unregistered, we added a second crowd that trades about as often as the rule: each stock’s own sequence of holds, rotated to a random start, which keeps the length of every holding run but the one that wraps. It matches the rule’s trade count (2,331,070 against 2,329,467 position changes on its first draw), not the turnover statistic (127.3 against 144.6 a year; its construction check failed, a 12% difference against a 5% limit). On that statistic it pays the smaller bill: 6.36 points a year against the rule’s 7.23. It is never a verdict layer.
| Crowd | Registration | Draws | Exposure | Turnover a year | Sharpe at 10 bps: mean · p95 · max | Rule above (10 bps) | Sharpe p95, no costs | Rule above (no costs) |
|---|---|---|---|---|---|---|---|---|
| Published crowd | built by the published run of 2026-07-14, which recorded only a 10 bps summary; every figure here is from the 2026-09-24 replay of the same draws, whose 10 bps summary matches the published one exactly | 120 | 0.2494 | 251.9 | 0.0474 · 0.0657 · 0.0765 | 119 of 120 | 0.6323 | 0 of 120 |
| Registered crowd (M1) | rebuilt as registered | 200 | 0.3135 | 247.0 | 0.0544 · 0.0712 · 0.0809 | 195 of 200 | 0.6197 | 0 of 200 |
| As-often crowd (M2) | ADDED AFTER the run; unregistered | 200 | 0.3135 | 127.3 | 0.3208 · 0.3383 · 0.3497 | 0 of 200 | 0.6206 | 0 of 200 |
At 10 bps the rule (0.0740) is above 119 of 120 draws of the published crowd (as replayed on 2026-09-24), 195 of 200 registered draws and 0 of 200 as-often draws. With no costs the rule (0.4225) is below every draw of all three crowds; P4 is one-sided, so that reads as held. Our read, and it is not a measurement: the registered crowd cannot tell us about timing in either direction, because its bigger bill is part of why the rule beat it, and nothing in these checks shows timing skill in the rule. Each trader shuffles the days for each stock separately, which breaks up how long each holding lasts and loses the way stocks tend to rise together; a shuffle that keeps the stocks moving together was not run, so we cannot say which way that cuts. 3.86% of the registered crowd’s held stock-days had a signal day under the $5 floor the rule obeys; the pre-registration is silent on whether the crowd should obey it.
Daily candles, not five-minute ones. The trades in the video are shown on five-minute charts; this test used daily candles. We have not measured the gap between the tag and the till on five-minute charts, and a pre-registered five-minute test is the first thing that could settle the question (§8).
Our fill is kind to the rule. We filled at the close that made the signal: a price that really traded, but one no order could act on in time, because a candle is only known to be green once the close has printed. Our cost charge also runs low on days of heavy selling, because the changed fraction of the book is capped at 100%. Both favour the rule, and it still lost money.
The cleaning rule moved the result toward our prior. Disclosed in §3 with the one cleaning version we ran; the check with other floors and caps is owed.
The entry reading could be wrong. §6 gives our reading of the video’s entry sentence as ours, and says what has not been checked by sight.
The video is “Heikin Ashi” Are The Easiest Way To Become Profitable FAST (Jooviers Gems, 2026-07-08). Its words below are quoted exactly, checked word for word against a transcript of its 501 captions that we stored, with one exception: in the 15:40 line the transcript has the word the twice in a row, and we print it once. Times are caption starts. Automatic captions spell Heikin-Ashi seven different ways, and we write it one way.
Our test is aimed at the claim about the chart itself: that the smoothing makes the rule pay. The video’s account of how the candles are drawn is right, and we used the same average. Its point about nerves is one our test cannot reach.
The entry sentence. The video says the body does not show where price closed; twelve seconds later it places the entry as if the candle closed at its top. Our reading, and it is ours, not the creator’s: on a Heikin-Ashi chart the top of a green body is an average of the bar’s four prices, so an entry placed there is placed at the tag, not the till. The video uses top or bottom of a candlestick for a body edge in 8 of 8 earlier uses, and says wick when it means the high or the low.
Not confirmed by sight. The frames at 15:38–16:00, where the entry is drawn, have not been checked: no copy of the video is on our disk and we did not download one. If the marker sits at the top of the wick, the entry is a price that traded and our reading is wrong. The transcript also never says the candle’s colour; on a red Heikin-Ashi candle the top of the body is its open, which is an average too.
| # | run | registration | cell | chart | fill | cost_bps_round_trip | role | universe | cagr | sharpe | maxdd | vol | total_mult | exposure | turnover_per_year |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | published run 2026-07-14 | benchmark named in the pre-registration | SPY | none (held throughout) | real close-to-close | 0 | buy-and-hold benchmark | SPY alone | 0.08846690813490632 | 0.5466484916789297 | -0.5647367075664624 | ||||
| 2 | published run 2026-07-14 | pre-registered cell (cleaning rule added after the first run) | BH_composite | every tradeable name, always held | real close-to-close | 0 | buy-and-hold benchmark | pooled yearly lists, 2,606 names | 0.09694784509585053 | 0.5261758047197556 | -0.604223663145014 | 0.2236072453510208 | 7.967353888815947 | 0.5976796836088966 | 1.0014854220239224 |
| 3 | published run 2026-07-14 | pre-registered cell (cleaning rule added after the first run) | RAW_trend_HONEST_0bps_rt | plain candles | real close (the till) | 0 | the rule | pooled yearly lists, 2,606 names | 0.07239507691049041 | 0.4343404401665019 | -0.6639838338575856 | 0.21375473303879422 | 4.7952920212157295 | 0.2970770403538245 | 223.28462419247984 |
| 4 | published run 2026-07-14 | pre-registered cell (cleaning rule added after the first run) | HA_trend_HONEST_0bps_rt | Heikin-Ashi | real close (the till) | 0 | the rule | pooled yearly lists, 2,606 names | 0.06829065552369595 | 0.42247538740956736 | -0.6166609651105015 | 0.2075198476504678 | 4.4001037881148735 | 0.3135379783927232 | 144.623571902301 |
| 5 | published run 2026-07-14 | pre-registered cell (cleaning rule added after the first run) | HA_trend_FANTASY_0bps_rt | Heikin-Ashi | Heikin-Ashi price (the tag); no order fills here | 0 | illusion measure only | pooled yearly lists, 2,606 names | 1.122527719514225 | 4.622992654422541 | -0.2787727246570868 | 0.16600939589192593 | 21421711.758388028 | 0.3135379783927232 | 144.623571902301 |
| 6 | published run 2026-07-14 | pre-registered cell (cleaning rule added after the first run) | RAW_trend_HONEST_10bps_rt | plain candles | real close (the till) | 10 | the rule | pooled yearly lists, 2,606 names | -0.04089060627385399 | -0.08795443979192721 | -0.7228273014488065 | 0.21374688196493394 | 0.3920381992969874 | 0.2970770403538245 | 223.28462419247984 |
| 7 | published run 2026-07-14 | pre-registered cell (cleaning rule added after the first run) | HA_trend_HONEST_10bps_rt | Heikin-Ashi | real close (the till) | 10 | the rule | pooled yearly lists, 2,606 names | -0.006236040685048794 | 0.07401028267593623 | -0.6682138082660709 | 0.20754199990577163 | 0.8690945043653886 | 0.3135379783927232 | 144.623571902301 |
| 8 | published run 2026-07-14 | pre-registered cell (cleaning rule added after the first run) | HA_trend_FANTASY_10bps_rt | Heikin-Ashi | Heikin-Ashi price (the tag); no order fills here | 10 | illusion measure only | pooled yearly lists, 2,606 names | 0.9748357170342237 | 4.185717452910273 | -0.28615514137591336 | 0.16607629149430986 | 4249497.167280585 | 0.3135379783927232 | 144.623571902301 |
| 9 | point-in-time sensitivity 2026-09-24 | ADDED AFTER the run; unregistered sensitivity, never a verdict layer | BH_composite | every tradeable name, always held | real close-to-close | 0 | buy-and-hold benchmark | each name from its first yearly selection only; kept after leaving the top 800 | 0.06876784316714035 | 0.4094585813292633 | -0.6255174895646818 | 0.22395993091232574 | 4.444397709178939 | 0.4757788521127411 | 0.7421706699060171 |
| 10 | point-in-time sensitivity 2026-09-24 | ADDED AFTER the run; unregistered sensitivity, never a verdict layer | RAW_trend_HONEST_0bps_rt | plain candles | real close (the till) | 0 | the rule | each name from its first yearly selection only; kept after leaving the top 800 | 0.0415846223444738 | 0.29767964597584845 | -0.6801534710888582 | 0.21439765347061482 | 2.4938118888184437 | 0.2368260897194617 | 222.7321402001887 |
| 11 | point-in-time sensitivity 2026-09-24 | ADDED AFTER the run; unregistered sensitivity, never a verdict layer | HA_trend_HONEST_0bps_rt | Heikin-Ashi | real close (the till) | 0 | the rule | each name from its first yearly selection only; kept after leaving the top 800 | 0.04264222206107582 | 0.3053073695881438 | -0.6166453907615219 | 0.20762399917933255 | 2.551226672125364 | 0.24892729446282982 | 144.9733731235818 |
| 12 | point-in-time sensitivity 2026-09-24 | ADDED AFTER the run; unregistered sensitivity, never a verdict layer | HA_trend_FANTASY_0bps_rt | Heikin-Ashi | Heikin-Ashi price (the tag); no order fills here | 0 | illusion measure only | each name from its first yearly selection only; kept after leaving the top 800 | 1.0240908001532265 | 4.331528653687142 | -0.27486144910180166 | 0.16619032370429468 | 7384162.156679186 | 0.24892729446282982 | 144.9733731235818 |
| 13 | point-in-time sensitivity 2026-09-24 | ADDED AFTER the run; unregistered sensitivity, never a verdict layer | RAW_trend_HONEST_10bps_rt | plain candles | real close (the till) | 10 | the rule | each name from its first yearly selection only; kept after leaving the top 800 | -0.06820071779680414 | -0.2217665563815518 | -0.8290007677060398 | 0.21438873963984326 | 0.20509006337425476 | 0.2368260897194617 | 222.7321402001887 |
| 14 | point-in-time sensitivity 2026-09-24 | ADDED AFTER the run; unregistered sensitivity, never a verdict layer | HA_trend_HONEST_10bps_rt | Heikin-Ashi | real close (the till) | 10 | the rule | each name from its first yearly selection only; kept after leaving the top 800 | -0.030269471795459135 | -0.04381495426969836 | -0.6744000884860621 | 0.20763571845765172 | 0.5018830434996369 | 0.24892729446282982 | 144.9733731235818 |
| 15 | point-in-time sensitivity 2026-09-24 | ADDED AFTER the run; unregistered sensitivity, never a verdict layer | HA_trend_FANTASY_10bps_rt | Heikin-Ashi | Heikin-Ashi price (the tag); no order fills here | 10 | illusion measure only | each name from its first yearly selection only; kept after leaving the top 800 | 0.8828991913853659 | 3.894164119601329 | -0.2826949638440258 | 0.16624144300193971 | 1458742.1970972058 | 0.24892729446282982 | 144.9733731235818 |
| Column | Meaning |
|---|---|
row | Row number, matching the table above. |
run | Which run produced the cell: the published run of 2026-07-14, or the point-in-time sensitivity of 2026-09-24. |
registration | Whether the cell was pre-registered, or ADDED AFTER the run. |
cell | The lab’s own name for the cell. HONEST means paid at the till; FANTASY means paid at the tag, which no order fills at; 0bps_rt and 10bps_rt are the round-trip cost. |
chart | Which candle decided green or red. |
fill | The price the position was paid at. |
cost_bps_round_trip | Trading cost in basis points per round trip (0 or 10). |
role | What the cell is for: the rule, a benchmark, or the illusion measure. |
universe | Which stock list the cell used. |
cagr | Compound annual growth rate, as a fraction (0.0969 = 9.69% a year); price only, nominal dollars. |
sharpe | Mean over standard deviation of daily net return, times the square root of 252; no risk-free rate. |
maxdd | Worst fall from a previous peak, as a fraction. |
vol | Annualised volatility of daily net return, as a fraction. |
total_mult | What one dollar became over the whole span. |
exposure | Average share of the full 2,606-stock panel held long each day; not the share of time invested. |
turnover_per_year | The turnover statistic: mean over days of (stocks changed / stocks held, capped at 1 on any day), times 252. |
| Column | Meaning |
|---|---|
crowd | Which crowd of random traders the draw belongs to. |
registration | Registered, published, or ADDED AFTER the run. The published crowd’s 2026-07-14 record is a 10 bps summary; every per-draw value in its 120 rows is the 2026-09-24 replay of the same draws. |
draw | Draw number within the crowd. |
seed | The random seed of the crowd. |
sharpe_0bps | The draw’s Sharpe ratio with no costs (for the published crowd, a 2026-09-24 replay, not published). |
sharpe_10bps | The draw’s Sharpe ratio at 10 basis points a round trip. |
exposure | Average share of the full panel the draw held long each day. |
turnover_per_year | The draw’s turnover statistic, as for the rule. |
heldshare_ratio_median | Median over stocks of (days the draw held the stock / days the rule held it); 1.0 means matched. |
sub5_held_share | Share of the draw’s held stock-days whose signal day closed under $5. |
The chart survives, as a way of seeing. The video’s account of how the candles are drawn survives, and so does its advice to learn plain candles first.
As for the money, we can only say what we measured. Before costs, the two charts tied; after costs, the smooth chart lost less only because it traded less. A calmer chart can improve your discipline, though our test could not measure that. By our reasoning, it cannot put an edge into prices that did not already have one: every Heikin-Ashi candle is built from the four prices the plain candle already shows.
The question to carry out of here: before you trust any chart that makes trading look easy, find the exact moment you would have known to act, and ask what price was on offer at that moment. Call it the till test. It works on a smooth candle, a backtest screenshot, or a chart in anybody’s video, including ours.
Everything we publish is free — the reports, the result ledgers, all of it. The only thing that costs us real money is the market data.
Prices: Massive (formerly Polygon.io) daily open, high, low, close and volume for every US stock and ETF that traded each day, split-adjusted as of the 2026-06-22 pull and not adjusted for dividends, from a one-shot store in which delisted stocks are present on the days they traded. The yearly lists come from the same store: the 800 most traded common stocks on each year’s first trading day, with at least $5 million traded a day and a price of at least $5, using the store’s own list of ticker types. SPY comes from the same store.
Returns count price alone, in nominal US dollars. Cash earns nothing and the Sharpe ratio uses no risk-free rate: no FRED, Treasury or other cash-yield series contributes a number. EODHD, the affiliate below, did not supply these measurements and has no say in the result.
Recalculation check: for this report the lab’s own functions rebuilt the 7 published strategy cells, SPY and the stock count from the store, 53 of 53 fields equal to the archived values (largest difference 0), after a planted mismatch in one return was rejected first. The three crowds’ summaries were recomputed from their own per-draw lists, 28 of 28 fields. This checks consistency with our archive, not the vendor’s data and not the future. Raw licensed prices are not redistributed.
Download all 520 random-trader draws (CSV) Download the locked design (JSON)
Buying market data? Going through here supports Ground Truth (affiliate)