A clean execution record
Since April an AI agent has run my crypto strategy three times a day. It wakes up, checks prices, works through a stack of sell and rebuy rules, places orders on a paper account, logs everything to a database, and goes back to sleep.
The record: 516 runs and 188 trades, every trade logged with a paragraph explaining which rule fired and why. (About 85 scheduled runs never happened, mostly days my laptop was asleep. That's a lesson for another post.) When I went back through the log for this check-in, I couldn't find one trade where the agent broke a rule.
The strategy is still down 11% while simply holding the same coins is up about 1%. I covered the market side here. This post is about something I find more interesting: the agent kept faithfully executing rules that contradicted each other.
Three times the rules fought
The sell-then-buy. On September 15 the portfolio hit 15% below its all-time high, which triggers a rule that trims every position by 25% as a defensive move. The agent did it. Later that same day, a different rule saw cash sitting idle and positions below their target weight, so it started buying them back. Both rules fired correctly. Together they amounted to paying trading costs to end up where I started. All four of those trims were graded "wrong" a week later. The coins rose about 16% on average.
The green light that didn't count. On August 20 Bitcoin crossed back above its 200-day average, the one signal the whole strategy is built around. But a risk-off timer set three weeks earlier still had ten days to run. Nothing in my rules said the newer, more important signal overrides the older timer. So the agent waited, correctly, while Bitcoin rose 10%.
The rotation into the blast zone. On the morning of October 8 a Chainlink stop fired, and the agent rotated the proceeds into the "healthiest" remaining coins, $1,273 into DOGE and $1,184 into AVAX among them. That afternoon DOGE and AVAX hit their own stops and were sold. "Healthy" in my rules meant "not currently below its stop." It didn't mean "not about to be."
None of these are bugs. Every rule worked as written. The failures all live in the gaps between rules, and an agent following orders has no reason to look there.
The $500 drip
The clearest example is the rule that redeploys cash: if there's idle cash and a coin is under target, buy $500 of it. That's one tranche per run, three runs a day.
Since April the agent has made 111 of those $500 buys, most of them in the five weeks after the August re-entry. A week after each buy, 27 were up and 84 were down. It wasn't wrong 76% of the time because it was dumb. A rule that buys on a timer, regardless of price, will buy every local top along the way.
I wrote that rule. The agent ran it 111 times without complaint, because complaining wasn't its job.
Rules versus intent
Back in June I wrote about commander's intent for AI agents: the military idea that you tell subordinates the purpose of an order, not just the steps, so they can adapt when the plan meets reality. This is the most concrete case of it I've run into.
My agent got seven rules and no intent. If it had been told "the goal is to be invested when Bitcoin's long-term trend is up and in cash when it's down; everything else is fine-tuning," then every one of the conflicts above would have an obvious answer:
- An open gate means get invested, so the stale timer yields.
- A defensive trim means stay defensive, so don't buy back the same day.
- A rotation is meant to reduce risk, so don't rotate into a coin 7% from its own stop.
Rules tell an agent what to do. Intent tells it which rule wins when two of them disagree.
What the replay said
I replayed the live window from late June to now, starting from the real account's state, and tested six fixes. The replay of my current rules came out at -3.1%. The top two fixes were exactly the rule conflicts above:
Let an opening gate clear the stale timer
+3.6% on its own, almost 7 points better. The single biggest fix of the six. It just settles which rule wins.
Don't buy into a coin near its own stop
Applied to both rotations and the $500 drip. Small on its own, but it lowered drawdown, and it's the fix for October 8.
With those two plus a better buy-back rule (covered here), the replay went from -3.1% to +9.5% with about the same maximum drawdown. The rule for the September sell-then-buy, a cooldown after a defensive trim, made no measurable difference, so it's not going in.
I also tested my "delete most of the rules" idea: just the gate plus a monthly rebalance. It made +8.6%, but with almost twice the drawdown, which suggests some of the rules do earn their keep. The conflicts between them were the problem.
What I'm changing
Settle the conflicts in the rules themselves. The gate-clears-timer fix, the near-stop guard, and the re-anchored buy-back all go into the live agent. Each one encodes which rule wins.
A stated intent, plus permission to flag. The agent's instructions will now open with the goal: invested when Bitcoin's long-term trend is up, in cash when it's down, everything else is fine-tuning. I'm also adding a step at the end of each run: if two rules pushed in opposite directions this run, say so in the summary. I don't want the agent overriding me. I want it to notice when my rules are fighting and tell me, so I don't need a six-month check-in to find out.
The scary thing about autonomous agents isn't that they'll go rogue. It's that they'll do precisely what you said, 500-plus times in a row, and you won't read the log closely enough to notice that what you said was wrong.
The full trade log and live numbers are on the dashboard. If you're running agents on anything with real stakes, finance or ops or anything else, I'd love to compare notes on how you handle rule conflicts. Drop it in the comments or reach out through the contact page.
Comments
Leave a comment
The Gate Opened. My Strategy Still Lost 11%.
In June I promised to report back when Bitcoin reclaimed its 200-day line, good or bad. It did on August 20. Here is the honest ledger, and why the rule I trusted most wasn't the problem.
I Blamed My Stop-Losses. The Backtest Blamed My Buy-Backs.
Fourteen trailing stops in six months, every round trip a loss, and I was sure the stops were the problem. Then I tested it. My favorite fix made things worse, and the real leak was the rule that bought me back in.
Opus 4.8 Stress-Tested My Crypto Strategy. Then It Made Me Admit I Was Wrong.
Two months ago I published a backtest claiming my crypto strategy returned +35%. This week I sat down with Opus 4.8 to pressure-test that claim — and the honest answer was more humbling, more robust, and a better story than the one I'd told.