31 Days Live. BTC +18%. My Bot Did Nothing. Here’s Why I’m Publishing It Anyway.
--
An honest log of an algorithmic strategy choosing patience over participation — and the 8-year math behind that choice.
31 Days Live. BTC +18%. My Bot Did Nothing. Here’s Why I’m Publishing It Anyway.
An honest log of an algorithmic strategy choosing patience over participation — and the 8-year math behind that choice.
---
In the last 31 days of live trading on a $2,005 USDT portfolio, BTC went up +18.3%. My Macro v5.2 strategy caught exactly zero percent of that move. The portfolio sits at $2,002 — essentially flat.
I'm publishing this anyway. Here's the math behind why this isn't a bug.
---
The setup
Three bots, one portfolio, fixed allocation:
- Macro (60%) — regime-driven BTC long/hedge using SMA200 + 3-day hysteresis
- DCA (10%) — passive accumulation on confirmed local-dip signals
- Funding (30%)— delta-neutral perp yield (long perp + short spot)
Capital: $2,005 USDT
Exchange: KuCoin (non-custodial — capital stays in my account at all times)
Live since: April 6, 2026
---
The miss
Let's call it what it is.
Over the 31 days from April 6 to May 7, BTC went from ~$41,400 to ~$48,800. A clean +18.3% rally off the bottom.
My portfolio: -0.15%.
In dollar terms, that's ~$370 of unrealized opportunity. Real. Documented. Mine to own.
The Macro bot stayed flat — zero long positions opened — because the regime is still BEAR. Locked since November 5, 2025. 184 days running.
DCA caught the dips during the rally, sitting at +5.4% latent on its $200 allocation.
Funding earned its Sharpe 9.16 yield silently, decorrelated from BTC direction.
But Macro — the 60% allocation — did nothing. And there's the lion's share of the miss.
---
Why this is by design, not a bug
The Macro v5.2 strategy uses two layers to avoid false signals:
1. SMA200 trigger : regime flips when BTC closes on the opposite side of its 200-day moving average.
2. 3-day hysteresis : the cross must hold for 3 consecutive daily closes before the regime actually switches.
Today (May 7, 2026), BTC is approaching SMA200 from below. Not broken yet. Not confirmed yet. Maybe in a few days. Maybe rejected.
So the bot stays flat. As programmed. No human override available.
---
The 8-year math
This is where the trade-off becomes a feature, not a bug.
I backtested 8 years of BTC daily data (March 2018 → February 2026), comparing two versions of the same strategy: one with the 3-day hysteresis, one without (faster entries).
The cost of hysteresis : ~12-18% of upside given up per BULL transition (the early-entry premium).
The benefit : ~85% of failed breakouts filtered out — these are typically -10% to -20% bull traps that turn into deeper drawdowns.
Net 8-year result:
Macro v5.2 (with 3-day hysteresis): +1,468% total return, Sharpe 0.88, MaxDD -42.8% — Same strategy with instant entry (no hysteresis): +780% total return, Sharpe 0.51, MaxDD -68.1%
Patience compounds. The "cost" of being late on each transition pays for itself many times over by avoiding the bull traps.
I'd rather miss +18% once than take three -15% bull traps in a row.
---
What about DCA and Funding?
This is where the 3-bot stack design earns its keep.
While Macro's discipline cost it the rally, the other two slots quietly worked:
DCA ($200, +5.4% latent): The DCA bot doesn’t care about regimes. It buys micro-positions (10 USDT chunks) when local dip signals fire. Over the 31 days, it caught several pullbacks within the broader rally. Cost basis is now below spot.
Funding ($599, Sharpe 9.16): Delta-neutral strategy — long BTC perp + short equivalent BTC spot. Net market exposure: zero. Yield comes from perpetual funding rate paid on KuCoin. Decorrelated from price direction. Slow, steady, boring.
Together: DCA gave the portfolio a small directional capture, Funding gave it yield, Macro waited for its signal.
The result is a flat-but-not-broken portfolio. Not because nothing works — because the most-aggressive component (Macro) deliberately stayed out.
---
What happens next
Two scenarios.
Scenario A — BTC closes above SMA200 + 3 days**: Regime flips to BULL. Macro deploys 60% in LONG immediately. The "missed" 18% becomes the new entry baseline going forward.
Scenario B — BTC rejects SMA200 : BEAR regime continues. Macro stays flat. We wait for the next test, days or weeks later.
I'll publish the outcome. Whichever it is. Within days of when it resolves.
That's the whole point of running this in public.
---
The production lock
The 3-day hysteresis isn't a parameter I "tuned" loosely. It's locked behind 50 pytest assertions in production. Any code change that would break those parameters fails CI before merging.
There is no human override available. The bot does what the test suite says it does — including missing the rally I just showed you.
This matters because the easiest way to get burned in algorithmic trading is to override your own rules during emotional moments. Watching BTC rally +18% while your bot stays flat is one of those moments. The rules can't be overridden, even by me.
---
What this isn’t
This isn't a return promise. The 31 live days are a very short window. The portfolio is $2,005 of test capital, not an investment strategy I'm pitching. There's no public service open at the time of writing.
Crypto trading carries the risk of total loss. Past performance — backtest or live — does not predict future performance.
What this is
A transparent, dated, live log of what the system actually does. Including the moments where it looks bad on paper. Especially those moments.
If "missing +18% in a month" makes the strategy look broken to you, you're probably not the audience this is built for. The audience is people who'd rather wake up to a flat portfolio after a missed rally than to a -50% drawdown from a leveraged bull trap they took on emotion.
---
Follow updates
Twitter/X: https://x.com/TIYlab_btc Bluesky: https://bsky.app/profile/tiylab.bsky.social Site: https://tiylab.com Next Medium update after the SMA200 test resolves, whichever way.
---
Disclaimer: This article describes a personal experiment in algorithmic trading. It is not financial advice. The author is not a regulated financial professional. Capital deployed: $2,005 of personal funds, fully non-custodial. Crypto trading carries the risk of total loss.