The rules, exactly as run
- When BTC closes more than 2% above its 100-day average, buy at the next open.
- When it closes more than 2% below, sell at the next open.
- Between the bands, keep whatever position exists.
Status
No live trades yet. A trade only counts as live if the agent opened it on the day it happened, before anyone knew how it would end.
Everything on this board is backfilled — the rules replayed over history they have already seen, which is a sanity check and not a track record.
The forward record: a daily test of the plumbing, not the edge
btc-trend takes roughly 3 to 6 round trips a year, so this record cannot validate the edge within any useful timeframe. The backtest is and will remain the only evidence about the edge itself. What a daily check can prove is that the plumbing is honest: the same rule, recomputed from scratch every day on the traded feed (Binance spot, the venue series the claim was measured on and, since 19 August 2026, the series the agent trades) and on an independent second opinion (Yahoo, the composite the agent traded before that date, kept as a witness so this stays a three-way check), and both compared against the position the agent actually took. Any disagreement goes in this file first and then halts trading. Checks run every day after the US close, weekends included, because Bitcoin trades every day (until 19 August 2026 the schedule was weekdays only, so early rows have weekend gaps).
Feed change, declared. On 19 August 2026 the agent switched its Bitcoin prices from Yahoo’s composite to Binance spot, after Yahoo dropped or served stale daily bars three times in two weeks. Rows of this record before that date value the forward line on Yahoo closes and rows after it on Binance closes, so the series carries a one-time step of a few basis points (the USD versus USDT quote basis) at the boundary. It is stated here so the numbers do not move silently.
On the live feed, the 2026-10-03 close of 84,754 sits above the band (100-day average 71,042, band 69,622 to 72,463). The rule holds only above the band, so the position is LONG, and the journal agrees. Sitting flat for months while price is below the band is the expected state of this record, not a broken one.
Forward so far, net of costs: strategy x1.221 vs holding BTC x1.332, 1 position flip(s). At this sample size that comparison is noise; it is shown so nobody has to take that on trust later.
Halts
Every day the check found something wrong, with what it said. A record showing only the good days would not be a record.
| Date | What the check reported |
|---|---|
| 2026-08-13 | live feed is STALE: last completed close is 2026-08-11, expected 2026-08-12 — a frozen feed is the E1VFVN30 failure, not a quiet day |
| 2026-08-14 | live feed is STALE: last completed close is 2026-08-12, expected 2026-08-13 — a frozen feed is the E1VFVN30 failure, not a quiet day |
A halt is a red CI run: the row is written, no order is placed, and trading stays stopped until a human looks. The stale-feed halts are Yahoo serving no completed daily bar; the E1VFVN30 lesson is that a frozen feed must be treated as a failure, never as a quiet day.
Reconciliation halt, 21–25 August 2026 — declared. The first real Bitcoin fill (buy 0.274113 BTC on 20 August) came back short: Alpaca takes its 0.25% crypto fee out of the coin itself, so the account held 0.273427717 BTC while the ledger expected the full filled quantity. The reconciler refused to trade into a state it could not explain and every run from 21 August went red until a human looked — the guard doing exactly what it was built for, on a mismatch that was predicted when this strategy was wired up and deliberately left to fire on the first real fill. The cause was confirmed from the broker’s own fee records (two CFEE entries, 0.25% of each partial fill, taken in BTC) before anything was changed. The fix models the fee — the ledger now expects crypto buys to land net of it — rather than widening any tolerance: a shortfall that is not fee-shaped still halts, and both behaviours are proven daily in CI alongside the other guards.
The raw record is served beside this page: signal-btc-trend.jsonl, one JSON row per check, appended before any verdict is acted on, never rewritten.
If you had put in $100
Live calls only, and positions still open are included at today’s price — a rule that holds for months would otherwise read as having done nothing while sitting on a year of gains. Only settled trades are counted underneath. The backfilled record below is the rules replayed over history they have already seen — turning that into a dollar figure would be money invented out of hindsight. Reset the counter whenever you like; it is kept in your browser, not in the journal.
Live so far
Backfilled: 2017-08-17 to 2026-10-05
The shape of the trades
Versus doing nothing
| Return | Worst fall | Trades | Win rate | Per trade | Days holding | |
|---|---|---|---|---|---|---|
| BTC trend (crypto only) | +3505% | -35% | 22 | 36% | +35.285% | 5% |
| Just owning BTC, ETH, SOL, XRP, BNB, ADA, DOGE, LINK, AVAX and LTC | +1919% | -83% | — | — | — | 100% |
The catch
The 100-day lookback was chosen on the training years; the 150-day neighbours keep most of the drawdown benefit with less of the return edge, so treat the exact number as a region, not a truth. On the held-out years this made +36%/yr at -27% against +22%/yr at -53% for holding, measured daily (this page used to say -23%, the same curve sampled monthly). Two honest asterisks from the full research programme: a SIBLING trend construction on the same coin — buy 55-day highs, sell 20-day lows — FAILED the identical test, so this is one specific rule working, not proof that trend-following works; and out of every pre-declared idea in the research ledger this was the only pass at all, which is why it runs at a fifth of the paper account rather than all of it. The paper account runs it as a FORWARD TEST of the backtested claim: at 3-6 round trips a year the forward record can never validate the edge — what it tests, daily and loudly, is that the live feed, the logic and the automation still match the backtest (signalcheck.py). Months of sitting flat are the expected state, not a broken record.
Trades, newest first
| Entered | Held | At | Exited | Return | Why |
|---|---|---|---|---|---|
| 2026-08-20 | BTC-USD | 69,335 | 2026-10-05 | +24.75% | still holding — marked at today’s price, not settled |
| 2026-04-18 backfill | BTC-USD | 77,136 | 2026-06-02 | -7.35% | BTC closed below its 100-day average |
| 2025-10-02 backfill | BTC-USD | 118,652 | 2025-10-11 | -4.91% | BTC closed below its 100-day average |
| 2025-09-12 backfill | BTC-USD | 115,508 | 2025-09-26 | -5.62% | BTC closed below its 100-day average |
| 2025-04-23 backfill | BTC-USD | 93,428 | 2025-08-30 | +15.98% | BTC closed below its 100-day average |
| 2024-09-20 backfill | BTC-USD | 62,941 | 2025-02-19 | +51.99% | BTC closed below its 100-day average |
| 2024-07-20 backfill | BTC-USD | 66,710 | 2024-08-03 | -7.74% | BTC closed below its 100-day average |
| 2023-10-17 backfill | BTC-USD | 28,522 | 2024-06-19 | +128.68% | BTC closed below its 100-day average |
| 2023-06-21 backfill | BTC-USD | 28,311 | 2023-08-18 | -5.95% | BTC closed below its 100-day average |
| 2023-01-13 backfill | BTC-USD | 18,869 | 2023-06-06 | +36.51% | BTC closed below its 100-day average |
| 2022-11-05 backfill | BTC-USD | 21,149 | 2022-11-09 | -12.31% | BTC closed below its 100-day average |
| 2022-03-25 backfill | BTC-USD | 43,965 | 2022-04-12 | -10.14% | BTC closed below its 100-day average |
| 2021-08-06 backfill | BTC-USD | 40,866 | 2021-12-05 | +20.29% | BTC closed below its 100-day average |
| 2021-07-31 backfill | BTC-USD | 42,196 | 2021-08-04 | -9.48% | BTC closed below its 100-day average |
| 2020-04-30 backfill | BTC-USD | 8,798 | 2021-05-13 | +464.30% | BTC closed below its 100-day average |
| 2020-01-08 backfill | BTC-USD | 8,162 | 2020-03-09 | -1.36% | BTC closed below its 100-day average |
| 2019-09-03 backfill | BTC-USD | 10,340 | 2019-09-18 | -1.47% | BTC closed below its 100-day average |
| 2019-02-21 backfill | BTC-USD | 4,000 | 2019-08-29 | +144.88% | BTC closed below its 100-day average |
| 2018-08-29 backfill | BTC-USD | 7,092 | 2018-09-06 | -5.37% | BTC closed below its 100-day average |
| 2018-07-25 backfill | BTC-USD | 8,380 | 2018-08-05 | -16.52% | BTC closed below its 100-day average |
| 2018-04-29 backfill | BTC-USD | 9,346 | 2018-05-12 | -10.08% | BTC closed below its 100-day average |
| 2018-04-25 backfill | BTC-USD | 9,701 | 2018-04-26 | -7.79% | BTC closed below its 100-day average |
| 2017-11-25 backfill | BTC-USD | 8,139 | 2018-01-31 | +25.69% | BTC closed below its 100-day average |
Activity — what the agent actually did
Written by the agent as it ran, not composed for this page afterwards. The log is shared across every strategy because one run computes them all — that is genuinely how it works.