# Forward test: Bitcoin Heikin Ashi HA-NOWICK-200, protocol v1.0

**Frozen 22 October 2026 (draft 1, approved by the owner the same day).** Nothing below may change during the test.

**One-line summary:** a pre-registered forward test of the Heikin Ashi rule that came closest on Bitcoin (4-hour candles; enter on a candle with no wick on the entry side, only in the direction of the 200-bar moving average; exit at the first candle of the opposite colour). The record is a **paper series**: the frozen rule, computed by the backtest's own code on new Binance 1-minute data as it is published, month by month, with the backtest's costs. No orders are placed.

**Status:** frozen 22 October 2026. **Start:** the first 4-hour candle closing after **Monday 26 October 2026, 00:00 UTC**, provided this protocol is published on the site before that time; otherwise the first Monday after it is published, written here before any forward trade is computed. Nothing before the start counts.

## 1. What this test is, and what it is not

- **A forward evaluation, not a second backtest.** The historical test ([Heikin Ashi strategy on Bitcoin](/posts/heikin-ashi-strategy-bitcoin/)) gave **Buried, 5 of 6 gates**: it failed validation (July 2021 to 2023, profit factor 1.14). Its verdict does not change; this is a separate record on data that did not exist when the rule was tested.
- **Why this variant:** the best of the three versions, chosen after seeing the results; its average trade also shrank in each historical period (+0.448%, then +0.114%, then +0.074%), and most of its gain came from long trades in a market that rose about nineteenfold. All three facts make a positive forward result modest evidence, and they are stated wherever the test is reported.
- **A paper record, not trading.** Fills are the backtest's assumed fills (the real open of the first minute after the signal candle) and costs are the backtest's (0.05% of the price on every fill). It says nothing about real spreads, slippage or funding at the moment of trading; funding is reported separately, as in the backtest.
- **Historical figures** (October 2017 to September 2026, after costs, no funding): 1,670 trades, about 186 a year, mean +0.243% a trade, standard deviation 3.27%, a losing streak of 14 trades, worst trade -8.35%, best +36.9%.
- **It cannot confirm the edge quickly:**

| Closed trades | About (years) | 95% interval half-width on the mean | Chance of t of 2 or more if the true mean is +0.243% | If it is half of that | If it is +0.074% (the holdout's mean) |
|---|---|---|---|---|---|
| 200 | 1.1 | 0.45% | 17% | 7% | 5% |
| 400 | 2.2 | 0.32% | 30% | 10% | 6% |
| 600 | 3.2 | 0.26% | 43% | 14% | 7% |

## 2. The rule (frozen; nothing here may change during the test)

- **Market:** Bitcoin, the Binance BTCUSDT spot 1-minute history from data.binance.vision (the source of the historical test), UTC clock.
- **Candles:** 4-hour slots 00:00-04:00 ... 20:00-24:00 UTC, every calendar day; a slot with fewer than 120 minutes is not used and the Heikin Ashi chain continues from the last used candle.
- **Heikin Ashi:** HA close = (open + high + low + close) / 4; HA open = (previous HA open + previous HA close) / 2; HA high = max(high, HA open, HA close); HA low = min(low, HA open, HA close). Green if HA close > HA open, red if <. No lower wick: a green candle with HA low = HA open; no upper wick: a red candle with HA high = HA open (tolerance 1e-9 of the price).
- **Entry:** long on a green candle with no lower wick whose real close is above the mean of the last 200 used real closes (the signal candle included); short on a red candle with no upper wick whose real close is below it. **Exit:** a long at the first red candle, a short at the first green candle; if that candle is itself a qualifying signal the other way, the position reverses. Signals are executed at the open of the first minute after the signal candle's slot ends. No stop, no target.
- **Eligibility:** the Heikin Ashi chain and the average are computed on the full history; the first position opens only on a signal candle whose slot ends after the start time.
- **Costs and units:** 0.05% of the price on every fill (a reversal pays two); results in **% of the entry price** per trade and as the compound growth of 1 unit. **Funding** reported beside it, not in the verdict: 10% a year of the entry price per day held, longs and shorts alike.

## 3. How the series is computed

- **Code:** the backtest's engine, unchanged. SHA-256: `ha_lib.js` f716771600474db608601005c25f18c805320d0f6a04d5545e1c35dcc905b75c, `control_audit_lib.js` 726e8a9bdd73a2401cafb90724753c841d541479114ae850b3832ebd7d9a5d38, `gh_lib.js` 7b5dcb7710893735485ae9614d90cef7533e43cf35680ff4ba1914c8160c6597, `rsi2_protocol.js` 385f93627a99c3d8b83fd5f3b4a7aa9724647d9e530e4f467df8ebc4752f96ae, `ma_lib.js` 75231323ff700a9ec98d1667b514c45c06e5d148969454b2fc37e6cce94182f4, `hourly_lib.js` 77eb9075e2568c724ee557dd49774903420a6a474e043ac227006f06e589ef5f. Any change to the engine makes a new test.
- **Data:** each month, in the first week, the previous month's BTCUSDT 1-minute archive is downloaded from data.binance.vision, its published checksum verified, the 1-minute file rebuilt with `btc_build.js` (unchanged) and its SHA-256 and last minute recorded; **the whole forward window is recomputed**. **Check:** every earlier forward trade must reproduce in entry and exit time and result; any difference is published and explained. A position open at the last available minute is reported as open, not closed.
- **Holes:** gaps in Binance's own history (exchange outages) are never filled. Every gap of 60 minutes or more since the start is listed; trades open across one are counted, and every result is also reported without them.

## 4. Records and reporting

- **Per trade:** signal candle, entry and exit time and price, direction, days held, result in % after costs and with funding, whether the trade touched a gap.
- **Monthly update** (the first in the first week of November 2026, covering the last days of October): the trades of the month and of the whole window, mean % per trade, profit factor, win rate, compound growth against buy and hold over the same window, drawdown on closed trades, the file's hash, last minute and gaps, and the reproduction check. Months with no trades are reported too.

## 5. Evaluation (fixed now)

- **Formal evaluations at 200, 400 and 600 closed trades** (about 1.1, 2.2 and 3.2 years). Updates before them are descriptive only.
- **Primary measure:** mean net % per trade with its standard error and 95% interval (t critical value, n - 1 degrees of freedom), profit factor, win rate, drawdown.
- **Verdict at an evaluation point:** **Contradicted** if the mean is zero or negative or the profit factor is below 1.0; **Not contradicted** if the mean is positive, the profit factor at least 1.0 and the interval includes zero ("keep going", not "confirmed"); **Supported** only if the lower end of the interval is above zero. The verdict is also reported without the trades touching gaps; if that changes it, the verdict is reported as inconclusive for that reason.
- **Control:** the shifted-holdings control of the historical test on the forward window (the real position series shifted by one random offset of whole days, at least 5% of the window, same costs; 500 runs, seeds 1000 + run), reported as a percentile beside the verdict, not as a gate.
- Criteria are not changed after results are seen. No edge is declared from a few good months.

## 6. Modifications

Any change to the rule, the settings, the timeframe, the symbol, the data source, the costs, the engine or these criteria is a separate test with its own protocol and start date. Results are never merged across tests.
