Build1 distinct publisher3 min readUpdated
A developer published the losing number instead of the equity curve, along with the four specific mechanisms that had made an unprofitable strategy look profitable.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
A developer writing on dev.to published a three-year out-of-sample result for a crypto trading system: +4.33%, against +127.77% for buying Bitcoin once and holding it [1]. That is a gap of 123.44 percentage points [2], and the post is worth reading because most of its length goes to the four ways the same strategy looked profitable before the test harness was rebuilt [3].
The thing under test is not exotic. About 4,000 lines of Python: a strategy engine, a backtester, a walk-forward validation harness, a paper-trading bot with Telegram alerts, a dashboard, and 130-plus tests in CI [4]. The rule is a Donchian channel breakout, buy 20-day highs and exit on a trailing stop, run on exchange data through ccxt [5].
Lie one was look-ahead. The old code computed a signal from a candle and then bought at that same candle's close [6]. The fix was structural rather than a patch: one engine enforces the ordering for every strategy, and a test feeds in a strategy that deliberately peeks one bar ahead and asserts it cannot profit [7]. That is the part any team can copy tomorrow. The bug becomes a permanent adversarial test, so the next contributor cannot reintroduce it quietly.
Lie two was fees, which the original backtester set to zero [8]. Kraken's taker fee is 0.26% per side [9], or 0.52% for a round trip [10]. Re-run with honest costs, the same signal produced: on daily bars, 14 trades, 1.3% of account per year in fees, +4.33%; on 4-hour bars, 61 trades, 11.4% in fees, -6.01%; on 1-minute bars, 52 trades in 45 days, 23.5% in fees over those 45 days, -25.18% and not a single winning trade [11]. The signal was identical at every speed [12]. On 1-minute bars the author puts the fee at roughly six times the average move being targeted [13]. Even the surviving configuration is thin: 1.3% a year in fees against roughly 1.44% a year net implies fees ate about 47% of gross return [14]. One thing the post leaves unexplained is that the 4-hour run has about 4.4 times the trades of the daily run but about 8.8 times the annual fee drag [15], which anyone reproducing this should reconcile against window length and position sizing.
Lie three was tuning and testing on the same data. The +4.33% comes from walk-forward analysis: optimise on a training window, trade the next window the optimiser never saw, roll forward, and score only unseen days across five years of data [16].
Lie four was luck. A permutation test shuffled daily returns 200 times and re-ran the strategy on each scrambled history; the strategy beat 97.5% of the shuffles, p = 0.025 [17]. The author's own reading: the edge is real, small, and smaller than the fees [18].
Three priors died on the same bench. Seven summed indicators finished last against a one-rule strategy, -2.4% versus +3.0% [19]. Equal sleeves of BTC, ETH and SOL produced a portfolio Sharpe of 0.30 against 0.38 for BTC alone [20]; the author kept the feature anyway, on the grounds that a bench that spares its author's ideas is worthless [21]. The one defensible win: through a stretch where Bitcoin drew down 53%, the bot's worst drawdown was 4% [22].
Watch whether the anti-leak test stays green as strategies accumulate, and whether the drawdown behaviour survives a live down leg rather than a scored one.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
The author's best strategy returned +4.33% over three years of out-of-sample testing, while buying Bitcoin once and holding it returned +127.77%.
The author states the original backtester said the strategy was profitable and was wrong in four separate ways, all endemic in hobby trading bots, and rebuilt the system so that lying was impossible.
The gap between buy-and-hold and the strategy is 123.44 percentage points.
The system, called TradingAI, is about 4,000 lines of Python: a strategy engine, a backtester, a walk-forward validation harness, a live paper-trading bot with Telegram alerts, a real-time dashboard, and 130+ tests running in CI.
The traded rule is a Donchian channel breakout: buy 20-day highs, exit on a trailing stop, using real exchange data via ccxt.
The old code computed a signal from a candle and then bought at that same candle's close, acting on information that did not exist at the time of the trade.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Detailed method, single unverified narrator
The methodological disclosure is unusually specific for this genre: walk-forward scoring on unseen windows, a 200-shuffle permutation test with a stated p-value, an adversarial look-ahead test in CI, and a per-timeframe fee/return table including two losing configurations. That specificity is genuine evidentiary value. It is capped hard, however, by structure: one source, authored by the builder of the system under test, with no repository audit, replication, or third-party measurement in the supplied material, and with the headline profitable configuration resting on just 14 trades.
No adoption signal beyond the author
The only usage disclosed is the author's own paper-trading deployment of his own code. The supplied material reports no real-capital operation, no users, forks, downloads, dependents, or third-party deployments, and no repository or distribution channel from which adoption could be observed. Any adoption figure here would be invented rather than measured.
Mildly understated
The framing runs against the usual direction of overstatement: the headline leads with the losing number, publishes the -6.01% and -25.18% rows, and reports that the author's favorite feature failed its own test bench. That earns a negative gap. It is not more negative because two rhetorical claims outrun their support — that the rebuild made lying 'impossible', and that 'the edge is real' on the strength of one permutation test over a 14-trade configuration.
Reputational, not commercial
The author is writing about a system he built, on a developer publishing platform, so a portfolio and credibility incentive plainly exists. But the supplied material shows no product, pricing, license, fundraise, employer, or vendor relationship being promoted, and the content choice — publishing the loss and the failed experiments — cuts against the usual incentive to show a winning curve. Incentive pressure is therefore real but modest and mostly reputational.
Internally consistent, externally unchecked
Confidence is moderate-low. The narrative is internally coherent and its arithmetic checks out against the numbers given, so the assessment of what was claimed is solid. Confidence in whether the claims are true is limited by a one-publisher cluster, a self-interested narrator, unmeasurable adoption, and small samples in the decisive configuration.
invest
Moscow Exchange Puts Perpetuals Inside a Clearing House1 distinct publisher
invest
Hyperliquid and Pyth backers ask the SEC to swap the NBBO for an onchain reference price1 distinct publisher
invest
Bank Leumi rents Galaxy's crypto stack and puts BTC, ETH and SOL in its brokerage app4 distinct publishers
build
Force the tool call, then hand Lightsail a long-lived key1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 20, 2026