Assay 001 · Published

Profitable grid trades.
A losing account.

A grid bot can complete many winning trades while the account holding those trades is still losing money.

Category-level testBTC and ETHJanuary–June 2026Frozen evidence attached
The result

Four tests. The same accounting gap.

We tested four long-only Bitcoin and Ethereum grids from January to June 2026. Each booked profitable closed trades after the stated costs. Each also accumulated purchases that had not reached their sell level. When those holdings were included, every $10,000 example finished negative.

4 / 4tested accounts finished negative after costs

Closed trades made money. Purchases still held lost more.

Recorded net win rate81.7%
Final $10,000 account result−17.2%
Measured over time

The gap did not appear only at the finish.

The closed-trade balance kept climbing. The total account did not. The difference between the two lines is the marked gain or loss on purchases still held at each daily observation.

How it works

A closed trade and the total account answer different questions.

Illustrative mechanism

One slice closes. Another can stay exposed.

Not measured data
Open a slice01
Price crosses a grid line.

The strategy buys one equal-sized slice as price moves down through a preset level.

slice bought
Close one cycle02
A rebound reaches the sell level.

That slice sells one grid higher. Its completed-cycle profit is now recorded.

sold
Mark what remains03
Other slices may not recover.

If their sell targets are never reached, they remain open and still change the account value.

target not reached
Closed-trade viewCounts the cycle that sold.
Bought sliceSold one grid higherStill held below target
Illustrative long-only grid sequence, not the measured BTC or ETH price path. The measured account timeline above is the evidence; this diagram explains the accounting mechanism behind it.

Key distinction: Profit from closed trades answers what completed. Whole-account value answers what everything is worth now.

All four tests

All four tests at a glance

Each example starts with $10,000 divided equally across the configured grid intervals.

Comparison of the four $10,000 grid tests
TestClosed-trade readingFinal account resultCompleted cyclesPurchases still held
BTC 25-grid25 price intervals · $400 per slice+$593−$1,724−17.2%10724
BTC 50-grid50 price intervals · $200 per slice+$227−$2,132−21.3%42349
ETH 25-grid25 price intervals · $400 per slice+$792−$2,433−24.3%7424
ETH 50-grid50 price intervals · $200 per slice+$569−$2,710−27.1%31948

Dollar figures are approximate worked examples derived from the frozen basis-point results. They are not account statements or forecasts.

What the result means

A narrow finding, stated honestly.

It does mean

In these four tests, profit from closed trades gave a materially different impression from the total account result. Losses on purchases still held were larger than closed-trade profits every time.

It does not mean

This does not prove that every grid strategy loses money, every grid product reports results this way, or the same result will occur in every market environment.

The market window mattered.

BTC fell 33.2% and ETH fell 47.2% during the test. That is a hostile environment for a long-only grid. Every tested grid still lost less than buying and holding the full asset over the same window.

Definitions

Four terms that unlock the result

Grid bot
A strategy that buys and sells at a series of preset price levels.
Completed cycle
One purchase that was later sold at the next grid level.
Open inventory
Purchases still held because their sell level was not reached.
Marked account value
The account value after both closed trades and purchases still held are counted.
More terms used in the technical record
Tranche
One equal-sized slice of the account used for a grid purchase.
Win rate
The proportion of recorded trades that were profitable. It does not show how large the wins or losses were.
Basis point
0.01%. Therefore, 84 basis points equals 0.84%.
Spread and slippage
Trading costs caused by the gap between an expected price and the price realistically available.
Evidence layer

The technical record

The explanation above is simplified. The exact assumptions, measured figures and reproducibility record remain attached below.

What exactly did we test?Target, scope and evidence identity
  • Target: long-only spot grid on BTC/USD and ETH/USD: buy on a downward arithmetic-grid line crossing, sell one line higher, one equal quote-notional tranche per interval, and no initial inventory.
  • Claim under assay: whether completed-cycle realised profit is an adequate account-level performance measure after costs when the strategy also holds open inventory.
  • Scope boundary: no vendor interface was audited, and this piece does not claim that every grid product reports performance in the same way.
  • Date / methodology: 2026-07-02, Assay template v1.
  • Publication state: PUBLISHED 2026-07-03.
What costs and favourable assumptions did we use?84 bps round trip and hindsight-selected ranges
ComponentValueSource or assumption
Venue / marketsKraken / XBTUSD, ETHUSDKraken fee assumption; public Binance H1 price paths used as a venue-representative path, not a Kraken execution reconstruction
Fee per side40 bps (0.40%)Kraken Pro spot entry-tier taker assumption; source-checked 2026-06-11
Spread2 bps once per round tripStated tight assumption, favourable to the strategy
Slippage1 bp per sideStated assumption, favourable to the strategy
Depth-walkNot appliedFavourable to the strategy
Round trip84 bps (0.84%)40 + 40 + 2 + 1 + 1

Each range was selected with perfect hindsight from the realised low and high of the same window: BTC 58,115.01–97,924.49 and ETH 1,505.68–3,402.89. That removes range-selection failure and favours the grid.

See the exact completed-cycle resultsAll four cycle-only readings
Asset / configCompleted cyclesNet mean / cycleNet win rateNet total
BTC 25-grid107+138.6450 bps100.0000%+14,835.0170 bps
BTC 50-grid423+26.7909 bps98.3452%+11,332.5594 bps
ETH 25-grid74+267.4155 bps100.0000%+19,788.7473 bps
ETH 50-grid319+89.1410 bps100.0000%+28,435.9893 bps¹

¹ No standalone ETH 50-grid cycles-only verdict was frozen. These values are derived from the grid_cycle rows inside the frozen full-account verdict.

See the exact whole-account resultsOpen inventory included

Open tranches are closed at the final observed close solely to mark the account consistently at the end of the window.

Asset / configTotal fillsNet mean / fillNet win rateNet totalVerdict
BTC 25-grid131−329.0725 bps81.68%−43,108.5014 bpsnegative_after_costs
BTC 50-grid472−225.8976 bps88.14%−106,623.6450 bpsnegative_after_costs
ETH 25-grid98−620.5916 bps75.51%−60,817.9748 bpsnegative_after_costs
ETH 50-grid367−369.1666 bps86.92%−135,484.1469 bpsnegative_after_costs

The net mean, win rate and total are the frozen payload fields net_mean_bps, net_win_rate and net_total_bps, rounded only for display.

Where exactly did the gap live?Cycle income versus inventory loss
ConfigCycle incomeInventory lossHeld tranchesAverage loss / trancheLoss / income
BTC 25-grid+14,835.0170 bps−57,943.5182 bps24−2,414.3133 bps3.91×
BTC 50-grid+11,332.5594 bps−117,956.1999 bps49−2,407.2694 bps10.41×
ETH 25-grid+19,788.7473 bps−80,606.7230 bps24−3,358.6135 bps4.07×
ETH 50-grid+28,435.9893 bps−163,920.1339 bps48−3,415.0028 bps5.76×

Within each asset, average loss per held tranche stayed similar when grid density doubled. More lines created more, smaller slices of adverse inventory; they did not remove the exposure.

How was the measured timeline derived?181 daily observations, frozen inputs only

The BTC 25-grid timeline was derived offline from the frozen H1 candles, full-account fills and the frozen cycle and whole-account verdicts. It does not read Keel runtime state or call a network service.

  • Observation: the final H1 label of each UTC date, producing 181 points.
  • Closed-trade line: $10,000 plus full-cost profit from cycles closed by that observation.
  • Total-account line: the closed-trade balance plus the full-cost marked result of every purchase still open at that observation.
  • Cost model: the same frozen 84 bps round-trip cost applied at every mark.
  • Keel derivation commit: 1251b3cb90e33bf49a579b3c824520891573b1b4.
  • Dataset SHA-256: c39e17d4dbed9f545e44ed894ad3fb69776a29355c7e23b6f693e20c7a7717dd.

Open the timeline derivation receipt

What did this test not model?Regime and material limitations
AssetH1 barsFirst closeLast closeWindow return
BTC4,34487,809.2358,624.71−33.2363%
ETH4,3442,979.811,572.01−47.2446%
  • The range was selected with hindsight from the same realised path.
  • Binance H1 bars supplied the path while Kraken supplied the fee assumption.
  • No tick-level ordering, live spread history, order-book depth, partial fill, outage or rejection model was used.
  • The intrabar path is an OHLC convention, not proof of the true tick sequence.
  • End-of-window liquidation is a consistent mark, not a claim every live grid would close then.
  • Stop rules, range resets, dynamic allocation, reinvestment, taxes and alternative grid designs were not tested.
  • A genuinely range-bound path may preserve cycle income and avoid the inventory result observed here.
Published verdict and evidence provenanceInternal gate, hashes and reproduction

Under our published methodology, the full-account reading of these four grid configurations does not survive measured costs over this window. Their completed cycles remain positive after costs, but that reading excludes adverse open inventory and is not a whole-account return.

In the internal two-read form, every frozen whole-account payload records signature_positive: false and gate_met: false against a net_floor_bps of 5.0.

  • Frozen evidence root: ~/assay-evidence/teardown1/.
  • Original manifest SHA-256: ae05eadbbb75f865d9ac7ac2ffa114011c9cdae2ef3abec8b53e4c2418e3ca25.
  • Evidence engine commit: a88bf0d738f2a1dc037785b5ee1da6410e6a306e.
  • Data: public Binance H1 klines; 84 bps static Kraken-based round-trip cost model.

Open the frozen evidence receipt

Publication history and correctionsWhat changed between v1.0 and v1.4.2
  • v1.0 · 3 July 2026: initial public release.
  • v1.1 · 3 July 2026: reader-first editorial restructure, plain-English definitions, $10,000 account bridge and result cards added.
  • v1.2 · 3 July 2026: opening compressed, account flow clarified, grid explainer simplified, four-test comparison converted to a responsive table, visible glossary shortened and asset cache-busting added. Verdict, assumptions, evidence and measured figures unchanged.
  • v1.2.1 · 3 July 2026: stylesheet delivery moved to a cache-busted URL backed by the established site asset after the first versioned asset returned 404 at the production edge. No wording, result, assumption or evidence changed.
  • v1.3 · 4 July 2026: an evidence-backed BTC 25-grid account timeline, raw 181-point dataset and derivation receipt were added. The verdict and original frozen evidence were unchanged.
  • v1.4 · 4 July 2026: the measured timeline gained same-origin hover, touch and keyboard inspection. The approved static SVG remains the fallback; data, verdict and frozen evidence were unchanged.
  • v1.4.1 · 4 July 2026: the illustrative grid-mechanism panel was rebuilt as a responsive three-stage explanation aligned with the measured timeline. No evidence, result, assumption or verdict changed.
  • v1.4.2 · 5 July 2026: mobile-only presentation overrides removed the inherited wide-SVG minimum width, kept mechanism labels inside their cards, and aligned each final-result percentage beneath its dollar result. A static launcher now opens Numerroo-hosted Coach Steve in Assay context. No evidence, result, assumption or verdict changed.

This is a category-level assay of an open-source mechanism. No vendor, product, interface or person is named, so right of reply is recorded as not required.

Assay verdicts are educational research measurements under an explicit, published cost model. They are not financial advice, not a trading signal, and not a characterisation of any person.

Educational research only; no recommendation to buy, sell or hold anything. Past costs and behaviour do not guarantee future costs or behaviour.

Published evidenceAsk Coach Steve