What changed and why - strategy verdicts, retirements, new bots, new data.
The wins and the failures get the same font size.
verdict
Selling options when fear is high: the model said maybe, the real prices said no, and the model was wrong by 20%
Second pre-registered study of the day. Cash-secured put writing only when the VIX is above its one-year median - the idea that option premium pays most in the months our bots sit idle. A 17-year model passed half its gates and failed the ones that matter; 32 months of real option prices disagreed with it outright; and calibrating the model against those prices showed it overstated every premium by about a fifth. Recorded as INCONCLUSIVE by our rules, closed as a candidate by the arithmetic.
Earlier today we closed the fourth route into our idle months. This
is the fifth, registered this morning after the fourth failed, run
once this afternoon, and it comes with a lesson about our own
tools that is worth more than the verdict.
The idea. When markets fall, implied volatility spikes and option
premiums get rich. Our dip-buying bots go quiet in exactly those
months. So: sell a one-month at-the-money put on the S&P 500, fully
cash-secured, but only when the VIX is above its trailing one-year
median. The strategy is the Cboe PUT index, verbatim; the condition
is the simplest reading of the variance-risk-premium literature.
Nothing tuned, one run.
The problem, stated first. Real option prices in our data begin in
February 2024. Nine of our eleven registered dead months are in
2022. So we built two cells: a model cell (Black-Scholes priced off
the VIX, 1993 to now, judged on 2010 to now) that could see the
dead months, and a real-price cell (32 months of actual option
bars on SPY and nine ETFs) whose job was to calibrate the model
and confirm its direction. We wrote down, before running, that an
uncalibrated model gets no verdict.
What the model said. The conditioned rule earned about 90 cents
per $100 of collateral per month it traded, versus 79 cents for
selling every month. That sounds like conditioning works. It
doesn't, for two reasons the gates were built to catch. First,
sitting out half the months halves the annual rate on collateral:
4.9% a year versus 9.5% for the unconditional version - and our
bar, learned from this morning's trend study, is 9.8%, because a
family earning less than the book dilutes it. Second, the
conditioned rule kept every crash: its worst month was March
2020, exactly the same trade as the unconditional rule's worst
month, so it carried the same 30% drawdown on half the income.
Return per unit of drawdown got worse, not better. It was open in
all eleven dead months and earned $2.34 across them. Present, not
earning.
What the real prices said. Across 185 conditioned trades on ten
underlyings, the high-VIX months earned 37 cents per $100 - less
than selling every month (39 cents) and less than selling only in
calm months (41 cents). In the actual market, the condition made
things slightly worse.
What calibration said, and why it is the headline. On every one of
32 roll dates where we could compare, the model's premium was
higher than the real market price - median 21% higher, no
exceptions. The VIX is not the at-the-money implied volatility; it
is an average across the whole strike surface, and because
downside protection is expensive, the at-the-money strike trades
below it. So every number in the model cell was flattered by about
a fifth. By our protocol that makes the model cell INCONCLUSIVE:
it earns no verdict. By arithmetic it is simpler: a model that is
20% too generous and still fails three gates cannot pass once
corrected. We are not re-running it to watch the label change.
What we keep. A standing rule that no options model in this project
is believed until it has been calibrated against real bars, which
we now know how to do. Two documented quirks of our data vendor
that cost us an afternoon. And a shorter list: five routes into
the idle months measured, five closed - more dip buying, shorting,
buying volatility, trend following, and now selling it. All
backtest, no wagers, $0 spent, goalposts untouched, registration
and script committed before any data was fetched.
verdict
We tested the oldest trade in the book, trend following. It works - and it still failed our test.
Pre-registered this morning, run this afternoon - two literature-verbatim trend rules on 40 ETFs over 16 years. Both are genuine, correctly timed signals that beat their own mirror and survive doubled costs. Both FAIL anyway, on capital - at +4-5% a year they dilute our book instead of adding to it. Fourth route into the idle months measured and closed, with one nuance worth keeping.
This morning we pre-registered a study; this afternoon it ran once
and failed. Here is the whole thing in one post, because the
failure is a more useful kind than usual.
The question. Our bots buy dips. In bear months, nothing dips the
right way, and the book sits two-thirds idle. Three ways of filling
those months have already been measured and closed (more dip
buying on other assets, shorting, buying volatility). Trend
following - hold what has been going up, sit out or go inverse on
what has been going down - is the textbook answer: it fires on a
sustained move, not a spike, and the academic literature says it
earns in exactly the months a dip buyer sits out. We took two
rules verbatim from that literature, one long-or-cash (Faber, 2007)
and one long-or-inverse (Moskowitz, Ooi and Pedersen, 2012), put
them on the same 40-ETF basket we used in September, and froze
every gate before fetching a single price.
The anomaly is real. Both rules pass every economic check we have:
positive per trade, t-statistics of 3.6 and 3.0, profit factors
above 2, still positive with fees doubled and with slippage
doubled, no single trade carrying the result, and - the check that
matters - both beat their own mirror image (the same rule run
backwards), so the timing is doing something. The long-or-cash
rule also delivers the thing trend following promises: less return
than simply holding the basket, with proportionally much less
drawdown. We can say, with receipts, that trend following on ETFs
works at retail costs in 2018-2026.
Why it failed anyway. Our rule for admitting a new family is not
"does it make money." It is "does the whole book make more money
with it than without it," where the book is funded at its worst
case - enough cash for every position that could be open at once.
These rules earn about 4 to 5 percent a year on that worst-case
capital. Add 37 slots at 4.7% to a book earning more than that, and
the blended book goes DOWN: from $316 a month to $177. The gate was
$395. We said in the registration this morning that this was the
gate most likely to bind, and it did. The long-or-cash rule also
lost $25 across the eleven dead months it was built to fill; being
present is not the same as earning.
The nuance worth keeping. The long-or-inverse rule did something no
prior candidate has: it was active in all eleven dead months, and it
made money inside them, about $229. The catch is how. Its inverse
legs - the part that fires in a falling market - lost $6.72 per
trade over 39 trades, eaten by inverse-ETF decay and whipsaw; the
profit came from the long legs catching the 2026 commodity run. So
the mechanism we wanted (earn when stocks fall) exists but costs
more than it makes in this form, and the family as a whole is too
small for the book. Trend-agnostic families are not closed as a
class. This one is.
Two disclosures. Three quarters of the long-or-cash result, and
more than all of the other one, land in 2026 - and many of those
trades are open positions we closed on paper at today's price to
count them. We did not register a "best year" gate, only a "best
trade" one, so that stands as colour, not a verdict. And our
incumbent book, re-measured today, reproduces at $316 a month
rather than the $355 frozen in August; we judged the frozen bar, as
the protocol requires, and the drift makes the result harder to
pass, not easier.
All backtest, no wagers, $0 spent, goalposts untouched. The
pre-registration, the script, and the full receipt are in the
repository, committed in that order.
launch
Live, week one: three real round trips, all three winners, and the book is down fifteen dollars
Eight sessions of real money on the Double 7s book - 11 entries, 3 completed trips for +$11.14 realized, 8 positions open at -$26.19, net mark-to-market -$15.21 on $2,500. Every fill reconciled to the broker to the ninth decimal through two restarts. The live bots traded more often than their paper twins, exactly as the timing study said they would.
The first weekly ledger for real money. Eight trading sessions,
October 13 through 22, 24 Double 7s bots on a $2,500 Alpaca
account, $104.16 each, no leverage. Here is every number, the
good ones and the other ones.
Trades. Eleven entries and three exits. The three completed round
trips were all winners: JNJ +$8.09 (held nine days), MSTR +$1.59,
AAPL +$1.46 - realized +$11.14 in total, zero commission on every
fill. Eight positions remain open and they are mostly red: AMD
-$11.27, GOOGL -$7.10, QQQ -$5.41, NVDA -$3.91, HOOD -$4.02, SPY
-$0.63, against PLTR +$5.94 and MSFT +$0.21, for -$26.19
unrealized. Net, the book is worth $2,484.79: down $15.21, or
0.6%, mark-to-market. Three winners and a red book is not a
contradiction. The strategy buys seven-day lows and has no stop,
so what it holds is, by construction, what has not bounced yet.
Whether those eight bounce is the whole question, and a week
cannot answer it.
Plumbing. This is the part week one was actually for, and it
passed. The fleet restarted twice (a deploy on the 21st and one
early this morning, both outside the 15:30-16:10 window where a
restart would silently skip the day's decision). On both, every
bot holding stock reconciled its books against the broker before
sending anything: ten positions the first time, eight the second,
each matching to the ninth decimal. We also pulled the account
read-only today: $1,678.66 free cash, SPY quantity identical to
our fill record, and the eight names the broker says we hold are
the eight our bots say we hold. No halt tripped, no bot froze, no
order failed, no alert above the informational level all week.
The thing we are watching. The live bots decide at 15:48 Eastern
on a partial bar; their paper twins decide on the completed
close. In September we measured that difference and published
the result: same names on the same sessions 85% of the time, 94%
of the per-trade edge kept. Week one shows the mechanism in both
directions. On entries, live bought 11 times where the paper
twins bought 6 - an intraday dip that recovers into the close is
a seven-day low at 15:48 and not at 16:00. On exits, live sold
MSTR and AAPL a session before paper did, and JNJ a session
before paper did, because the seven-day high showed up intraday
first. On the three names both sides closed, live earned a
slightly larger percentage each time: JNJ 7.8% versus the twin's
7.1%, MSTR 1.5% versus 1.2%, AAPL 1.4% versus 1.0% (different
position sizes, so percentages, not dollars). Three trades is not
evidence of anything. It is the first row on a comparison sheet
we will keep filling in, and the first thing we will say if the
rows stop agreeing with the study.
What this does not say. It does not say the strategy works - the
backtest carries that claim, at about 10% a year with 15-25%
drawdowns, and the live record is far too short to confirm or
deny it. It does not project anything. Live and paper remain
separate bots with separate records, never blended; the dashboard
shows live under its own tab. This is a report of what we did
with our own money. It is not a recommendation to do anything
with yours.
launch
First real money: 24 Double 7s bots went live on Alpaca last night with $2,500
After 14 weeks of paper trading, a rehearsal with zero discrepancies, five fault drills and a validation review that found two blockers we had to clear, the Double 7s family is trading a real account. $2,500 total, $104 per bot, no leverage. The paper twins keep running, and live results will be reported on their own, never blended.
At 12:05 AM Eastern on October 13 we switched on 24 Double 7s
bots against a real Alpaca brokerage account. This is the first
time any True AI Trading bot has had real money behind it. Here
is exactly what went live, what it took to get there, what we
expect, and what we will report.
What went live. One bot per name across the 24 stocks and ETFs the
paper fleet has traded since July 30. Each bot holds $104.16 of
the $2,500, buys with a plain market order at 15:48 Eastern when
its stock closes at a 7-day low above its 200-day average, and
sells when it closes at a 7-day high. No leverage, no stop, no
discretion. Alpaca charges no commission on stocks, and the idle
cash earns 3.56% in the broker's cash program.
What it took. The rules we wrote in September say a family goes
live only when the backtest carries the edge claim and the paper
record proves the plumbing. For Double 7s: a pre-registered
backtest on a point-in-time universe that includes delisted
stocks (5,005 test trades, about 10% a year on capital); 14
consecutive green nightly audits; an 18-day rehearsal in which
every order the live path would have sent was reconciled against
the paper twin with zero unexplained differences; a timing study
proving that deciding at 15:48 instead of the close keeps 94% of
the per-trade edge; five fault drills on the broker's paper
account, each with a pass condition written before it ran: kill
the process mid-position, corrupt a record, cut the connection,
trip the daily-loss halt, set the manual halt; and a validation
review with the same adversarial checklist we apply to every
promotion.
Where we bent, on the record. That review came back INSUFFICIENT
DATA with two blockers. The timing study resolved the first. The
second was a disagreement between two of our own rulebooks: the
review's live bar wants a profit factor of 1.3 on the evidence the
case rests on, and the honest backtest reads 1.17; our graduation
protocol asks only for more than 1.0 on the forward record. Charles
chose the graduation bar for this flip. That decision is dated,
attributed, and the 1.17 stays quoted wherever the backtest is
cited. The paper record itself looks far better than that: 30
closed trips, +$14.58 each, 93% winners. We do not believe that
number is the edge. It was one rising quarter, and the strategy
has no stop, so losing positions stay open and are not yet
counted. The 24 names were also chosen in July with their histories
known, which flatters every fixed-fleet figure; that is why the
edge claim rests on the unbiased universe, not on them.
What we expect. About $20 a month on this book, with drawdowns of
15% to 25% in the backtests. The first month proves the plumbing
with real fills. It does not prove the edge, and we will not say
it does.
What we will report. Live and paper are separate bots with
separate records and will never be blended. The dashboard shows
the live bots under their own tab; a monthly live ledger will
count every real dollar, including setup costs. Three kill
switches exist: a per-bot daily loss limit, an automatic fleet
halt at a 3% daily loss, and a manual halt file. A bot that cannot
reconcile its books against the broker freezes and sends nothing
until a human looks.
One more thing for the receipt. The family we planned to take live
first, the crypto Bollinger fleet, was withdrawn on October 8 after
its forward test failed and after we learned that retail crypto
fees are three to five times what our paper model assumed. That
finding is why the first real money went to stocks.
This is a report of what we did with our own money. It is not a
recommendation to do anything with yours.
verdict
Verdict: gated Bollinger FAILS - and we're telling you exactly where we bent our own rule to say so
After 632 paper trips our largest forward sample averages one cent per trade, 7% of its pre-registered bar; the written rule would have extended a third time, and we chose FAIL instead, with the reasons on the record. Live candidacy withdrawn, rehearsal bots off, the 17 paper bots stay on as data collection.
Our first formal forward test is over. The condition-gated
Bollinger fleet - 17 crypto spot bots, PAPER, trading since July
13 - came up for its third re-verdict this week, and the answer
is FAIL.
The numbers, from the same script and the same criteria we
committed before the test started: 632 completed round trips,
+$7.55 total, +$0.012 per trade, 62.5% winners. The pre-registered
bar was +$0.182 per trade (half the backtest's promise) with at
least 55% winners. The win rate passed. The per-trade average is
7% of the bar. In September we reported the fleet "converging on
the promise from below" - the trips added through August had
averaged +$0.17. The 315 trips added since then averaged minus
13 cents, and gave almost all of it back.
Here is the part we want on the record. Read literally, our
protocol says this result is INCONCLUSIVE again: the average is
above zero, so the rule says "extend four more weeks." We are
not doing that, and the decision is ours, not the protocol's.
Three reasons. First, 632 trips is twenty-five times the sample
floor; a result that wanders around zero at that size is the
result, and a fourth extension would be using the letter of the
rule to dodge its purpose. Second, we learned in September that
retail crypto fees are 0.25% to 0.50% per side, not the 0.1% our
paper bots model - this strategy's backtest edge was 39 cents per
$100 round trip before fees, which cannot pay the venue's real
toll even if the forward test had passed. Third, the extension
rule was written for a small sample that might still resolve; it
never imagined this one. So we moved a goalpost - against the
strategy, in writing, with the reasons attached. That is the only
direction we will ever move one.
What happens now, all of it decided before this outcome: the gate
values are demoted to "not confirmed forward." The 17 paper bots
keep running, relabeled as data collection, because their trade
log is free and still useful. The 17 rehearsal bots that had been
running the live order path for this family with zero real orders
are switched off today - a FAIL voids a rehearsal, and that clause
has been in the graduation protocol since September 10. The
family's live candidacy is withdrawn. The first family to go
live, if any does, will be Double 7s, whose package stands on its
own evidence.
Two confessions for the receipt: the verdict landed one day after
its October 7 date, and the verdict script still prints the
August extension date in its closing line, a known cosmetic bug
we have now disclosed twice. Paper trading throughout. No dollar
moved, and this strategy will not be the first one to move any.
bug
Correction: every backtest's per-trade average was reported before fees. Fixed, re-run, and one of our own strategies retired.
A doubled-fee check that printed the same number twice exposed a year-old accounting gap - backtest per-trade averages excluded trading fees while equity did not. The engine is fixed, the affected verdicts were re-run under their original gates, Cascade Harvest failed and is retired, Bensdorp's two passes stand, and the forward PAPER numbers were never affected.
Tonight we found a mistake in our own research engine, and this
is the post that says so.
Every backtest we publish reports an average profit per trade.
That number came from the simulated broker's realized P&L, which
it turns out has always been price-only: trading fees were
charged to cash and equity, never to the trade record. Slippage
was in, because it moves the fill price. The fee was not. So
every "average dollars per trade" any of our screens ever
printed was before fees, by roughly 20 cents per $100 round trip
at the 0.1% per side we model. Equity curves, drawdowns, the
dashboard, and the forward PAPER trip statistics were always net
and are not affected.
What caught it: a new screen tonight printed its base-cost cell
and its doubled-cost cell with the same per-trade mean to four
decimals. That cannot happen if fees are in the number. Ten
seconds of reading a receipt found what a year of passing tests
did not, which is why every receipt carries that cell.
What we did: fixed the engine so fees are netted into every
round trip, added a test that pins a flat trade at exactly the
fee, wrote the correction protocol before re-running anything,
and re-ran every backtest PASS whose gates were per-trade
figures, under the original protocols with nothing moved.
The results. Bensdorp S3 and S5 pass again, net: +$2.99 and
+$3.38 per trade against a $0.33 bar. Cascade Harvest, the
strategy we composed ourselves and announced as a Phase 2 pass
last week, FAILS net: its one-bar signal-shift decay is 36%
against a 30% gate, and the only data it was never designed on
is now negative. The protocol we wrote in August says one failed
gate retires the strategy with no tuning pass, so it is retired,
its paper bot is being wound down, and last week's pass is
withdrawn on the record rather than deleted. The gated-Bollinger
and double7 families' backtest promises are restated lower; their
forward PAPER results were always net and no gate moves against
them.
Two other pre-registered screens also ran tonight and failed on
their own terms: the overnight drift (buy the close, sell the
open) and the 5-minute opening range breakout. Both retire with
no variants tried.
All of this is PAPER and research. No real money has been
traded, and a correction like this is exactly why the paper
stage exists.
Next steps: the backtest proves the edge, the paper fleet proves the plumbing, and the first real-money flip gets a date.
A verdict this week made us rewrite how we graduate a strategy.
The Qullamaggie stock fleet spent two months reaching 2 of the 25
forward trades its protocol demanded, and the arithmetic that
made that impossible (about 19 trades a year across 16 bots) was
sitting in the protocol's own reference table the day it was
written. Meanwhile our backtests hold thousands of trades, split
chronologically, costed, and audited by an independent validation
pass. So version 2 of the graduation protocol, drafted today,
assigns the jobs honestly: the backtest carries the question of
whether an edge exists; the paper fleet carries the question of
whether the plumbing works, plus one sanity check that live
behaviour is not wildly different from the backtest. Every
protocol now states, up front, how many trades to expect by its
trigger date, and a calendar date is never a trigger by itself.
What runs now: two rehearsals. Seventeen gated-Bollinger bots and
twenty-four double-7 bots are running the complete live order
path under a dry-run broker that logs every order it would have
sent, reconciled order by order against their paper twins. No
real account and no real order exists anywhere. A daily fleet
audit now asserts, on the live state, the invariant behind every
bug we have caught since July: stale candles, an order that never
cancelled, a duplicated cron line, a status script that crashed
on a new file shape. Fourteen clean days of that audit is now a
gate.
The plan for the next 30 days: build the real order path (an
official-API adapter, startup reconciliation that refuses to
trade on any mismatch, three kill switches, alerting), package
the two candidates, and put the first family through the flip
after the gated-Bollinger re-verdict on October 7. The terms that
do not move: one family first, at most $2,500 of real capital, no
leverage, the paper twin keeps running forever as the
counterfactual, and live results will be labeled LIVE and never
mixed with paper. The honest expectation for that first month is
a plumbing proof worth tens of dollars either way, not income.
That is what the first real dollar is supposed to prove. All
paper until then, and published either way.
verdict
Verdict week: a book strategy passed its walk-forward, a fleet came up short again, and the first live-path rehearsal began - with zero real orders.
Two Bensdorp mean-reversion systems passed their walk-forward and went forward as paper bots; the gated-Bollinger fleet came back INCONCLUSIVE again and extends to October 7; 17 rehearsal bots now run the live order path with zero real orders.
Two pre-registered verdicts landed this week, both judged by rules
written before the data existed. Laurens Bensdorp's two long
mean-reversion systems (rules pinned from his book, tested with
the resting limit orders he actually uses) PASSED Phase 2 on a
282-name universe drawn by rule: +3.2% and +3.6% average per
trade in the conservative fill mode, on 71 and 110 test trades,
surviving doubled slippage and the loss of their best name. Our
independent validation pass then did its job: the second system
earns 48% of its profit in a single month, which fails a gate we
set for exactly that shape. So both systems went forward as PAPER
bots scanning the whole market, five slots each, with a new rule
that the result must survive dropping its best month. Nothing
deploys from a backtest; the forward sample is the evidence.
The condition-gated Bollinger fleet, our largest forward sample,
came back INCONCLUSIVE a second time: 317 completed paper trips,
positive, 62.5% winners, but still under the bar of half its
backtest promise. It is converging, not drifting - the trips added
since August average right at the bar - so it extends to October 7
under the same criteria. We also found the shared-book question
has an honest answer: the Bensdorp systems fire on the same red
days as our double-7 dip buyers 94-99% of the time. They are a
sharper entry into the same premium, not a new income stream, and
the capacity math now says so.
And the first step out of the nest: 17 rehearsal bots now run the
complete live order path for the gated-Bollinger fleet under a
dry-run broker that logs every order it would have sent instead of
sending it. No real account, no real money, no real order exists
anywhere - the point is to prove the wiring for 14 clean days,
reconciled order-by-order against the paper twins, before any
family ever earns the right to trade real dollars. Fleet-wide the
paper book stands at about +$800 realized since June. All paper,
all published either way.
study
We bought the graveyard: testing 'too big to fail' comebacks against 32,851 dead stocks.
A buy-quality-at-maximum-pessimism rule passed its frozen gates with 32,851 dead stocks included, then failed independent validation because March 2020 alone carried 42.5% of the profit - so nothing deploys.
Everyone remembers the distressed stocks that came back. Nobody
remembers the ones that didn't, because dead companies vanish
from ordinary price feeds. So before testing a "buy quality at
maximum pessimism" rule, we bought one month of a
delisting-inclusive dataset ($19.99, cancelled after) and paired
it with the SEC's free as-filed fundamentals: 50,873 US common
stocks, 32,851 of them dead, with survival filters (real gross
profit, cash runway, non-financial) evaluated only on what was
publicly known at each moment.
The pre-registered rule - large caps down 65%+, entered on a
bounce, filtered for survivability - PASSED its frozen gates on
the 2018-2026 test half: 106 events, +15.3% average per event
net of doubled costs, and the filters correctly refused the
trades that became J.C. Penney, Peabody and Chesapeake
bankruptcies. The graveyard did not destroy the result.
Then our independent validation pass failed it anyway, on one
gate: March 2020 alone carries 42.5% of the profit (bar: under
40%), and the earlier 2011-2018 half of history shows no edge at
all. A result one month can carry is a result one missing month
can erase. So: no deployment. If the family goes forward, it
does so as PAPER trading under new pre-registered gates that no
single month can satisfy. Along the way we diagnosed and
published four vendor data pathologies - including a Vietnamese
stock's prices hiding under a dead American ticker - each with
its own archived, polluted run. All backtest, all paper, no
wagers, nothing bought or sold.
study
We went hunting for the oldest anomaly in finance. It's real - and it lives exactly where you can't trade it.
The closed-end-fund discount anomaly is real, but on funds liquid enough to trade the registered rule fired 8 times in 4.6 years: NO-SAMPLE, no bot.
Closed-end funds sometimes trade well below the value of what they
own, and buying unusually wide discounts is one of the oldest
documented edges in the academic literature. We pre-registered a
zero-knob test before touching any data: entry rules fixed from
the literature, pass bars frozen, one run. Data cost: $0 (a free
NAV feed paired with our existing price feed, 301 funds, some
histories back to 1999).
The verdict is NO-SAMPLE: on funds liquid enough to actually
trade, the registered rule fired 8 times in 4.6 years - nowhere
near the 200-trade floor a verdict requires. We did not accept
that number on faith. A pipeline audit found 9,075 raw signal
days across 258 funds - which collapse to 60 once the price and
liquidity floors apply. The anomaly is real. It just lives almost
entirely in tiny, thinly traded funds where the bid-ask spread
and market impact would eat the very discount you came for.
That is the honest shape of many famous edges: visible in data,
concentrated precisely where execution costs are worst. All
backtest, no wagers, total spend $0, goalposts untouched.
study
We tested shorting the market's hottest stocks. The gates said no - and the timing part actually worked.
Three short-side variants with parameters taken verbatim from Bensdorp all FAILED their frozen pass bars, though the failure had a useful shape: the timing component worked.
Our best paper book (double7 plus two Qullamaggie families) earns
about $355 a month per $25k in backtests, but a new measurement
this week showed WHERE its weakness lives: the book's idle capital
concentrates in bear and drawdown months. October 2022 ran 0.3%
utilization with a 30-day stretch of zero positions. All three
families are long-side systems, so they go quiet together exactly
when markets fall.
That pointed at a specific fix: a short-side family that gets
BUSIER in falling markets. We pre-registered a study before
writing any code - frozen pass bars ($395/month combined, dead
months must fill in, results must survive doubled borrow costs),
parameters taken verbatim from Laurens Bensdorp's published S2
and S6 short systems so there was nothing to tune, and one run
per variant, period.
The verdict: FAIL, all three variants. And the failure has a
shape worth reporting. The timing hypothesis was RIGHT - the
short systems fired in 9 to 10 of the 11 registered dead months,
with essentially zero overlap with the incumbent families' trades
(0.0 to 0.4% shared entry dates). They showed up exactly when we
wanted them to. They just lost money when they got there: about
-$0.19 to -$0.38 per $100 slot per trade after realistic fees,
slippage, and borrow costs, dragging the combined book DOWN to
$291-$345 a month instead of up past $395.
Being busy at the right time is not the same as having an edge.
The book's 1995-2019 short-side results did not survive 2018-2026
on our universe with our costs - shorting a six-day surge in the
meme era is a different proposition than it was in 1999. Total
spent on this study: $0, all backtest, no wager, no deployment.
The engine still cannot short a single share, and after this
result it will stay that way.
bug
Bug report: the dashboard said our options bot was up $205. The options page said $80.
The dashboard counted only the share leg of the covered call; it now reads the same two-leg equity as the options page, so both show +$80.
Pfizer rallied through the $27 strike of the covered call our
options bot is running, and that rally exposed a bookkeeping gap
on this site: the main dashboard showed the position up $205.50
unrealized, while the covered-calls page showed $80.00. Both
pages, same bot, same moment, $125.50 apart. Regular readers know
the house rule by now: any two numbers that disagree expose a
bug to anyone who scrolls, and $125.50 happens to be exactly what
the difference should be - the short call's in-the-money value.
Here's what happened. A covered call is two legs: 100 shares you
own, and a call option you sold against them. The fleet dashboard
reads the same snapshots table as every other bot, and that table
only ever carried the share leg - so when PFE ran from $26.20 to
$28.26, the dashboard cheerfully counted all $205 of stock gain.
But roughly $126 of that gain belongs to whoever bought our call:
above $27, every extra dollar of stock is a dollar we owe on the
option. The options page always knew this - it reads the options
bot's own forward log, which marks the short call as a liability
every session. The dashboard just wasn't listening to it.
Now it is. Every dashboard view - the sector tiles, the fleet
table, the open positions list, the equity chart - pulls options
bots' equity from the same two-leg source of truth the options
page uses, so the numbers agree by construction rather than by
luck. The honest figure is +$80: the stock's gain up to the
strike, plus the premium we were paid, minus what the call is
worth against us. If PFE stays above $27 through September 4,
$80 is also almost exactly what settlement will deliver - the
upside past the strike was sold on day one. That's not a flaw in
the trade; capped upside in exchange for premium is the entire
covered-call bargain. The flaw was a display that showed the
upside we'd already sold as if we still owned it.
Worth saying plainly: the mistake made us look BETTER than
reality, which is precisely the kind of error a track record
cannot afford. Paper trading, as always - and the September 4
settlement will be the first real test of the options plumbing
this bot exists to prove.
retirement
Retired: the first bot to reach our evidence bar - and the first our gates rejected
btc-breakout-001 was the first bot to reach 50 round trips and the first the graduation gates rejected: net -$61 on $1,000 at a 28% win rate, retired.
btc-breakout-001, one of the fleet's original five bots, is retired
today. It earned a distinction on the way out: it was the first bot
in the fleet to complete 50 round trips - the sample size our own
rules say is enough to judge - and the first one our new graduation
gates looked at and rejected. 53 trades over 39 days: net −$61.23
on a $1,000 paper account (−$25 in trading losses, ~$36 in fees on
$36,000 of churned notional), with a 28% win rate.
The diagnosis isn't mysterious. It ran Turtle-style Donchian
breakouts, long-only, on 15-minute Bitcoin bars. That strategy
accepts many small stopped-out losses because the occasional big
runner is supposed to pay for all of them. In a choppy, drifting
market the runners never arrive - its best trade made +$6.28 while
its worst lost $7.17, and the 1% stop dutifully converted every
fake breakout into a small paid exit. Meanwhile its mirror image -
the SHORT Donchian family on perpetual futures - remains green in
the same market. Same arithmetic, opposite regime.
Every number above stays in the database, and the verdict is
recorded in the bot's config file where the next reader will find
it. Retired bots keep their final balance on the dashboard - the
row freezes rather than disappears, because deleting your losers
is how track records get faked. Paper trading, as always - the
only thing spent here was electricity, and the only thing earned
was the receipt.
verdict
Arbitrage verdict: we measured it for 16 days so we didn't have to build it
Sixteen days of pre-registered measurement across three arbitrage families: funding harvest FAILED, triangular loops passed only on paper at top-of-book, cross-venue gaps found zero events - no engine gets built.
Two weeks ago we pre-registered a question: does any arbitrage
family produce opportunities that clear our real costs, at a speed
a $6 REST-polling server can actually capture? Three studies, all
thresholds committed in writing before the first quote was logged
(docs/arbitrage/SPRINT-1.md, commit 600be4a). The window closed
today: 4,346 five-minute scans over 16 days across Crypto.com,
Kraken, and Coinbase. One bucket is missing from August 7 - we
briefly wiped our own crontab and restored it within minutes; the
gap is disclosed rather than papered over.
Study A, funding-rate harvest, was the primary hope: go long spot
and short the perpetual, collect the funding payments, stay
market-neutral. Verdict: FAIL, on all three pre-registered checks
that matter. Funding rates did spike (ADA annualized at +54% at one
point), but a round trip costs ~0.40-0.46% in fees and spreads, and
the best episode in the test window captured only +0.226% of
funding over 86 hours - still net negative. All eight test episodes
lost money. The math is simple and brutal: at retail taker fees,
the funding tide never rose high enough to clear the toll.
Study B, triangular loops on one venue, technically PASSED its
floor: 171 persistent net-positive loops across 14 days. Before
anyone gets excited: every single one was on thin USDT crosses like
JASMY and CSPR, past the venue's liquidity cliff, measured at
top-of-book with zero depth. Our own protocol says exactly what
that's worth: a paper pass at top-of-book earns a depth-aware
follow-up study, never a deployment. We suspect the depth check
kills it. We'll measure that too.
Study C, cross-venue price gaps: zero qualifying events in 16 days.
And when we verified fee tiers at verdict time (as the protocol
required), Kraken's real base taker turned out to be 0.40%, not the
0.26% we'd assumed - which would have made the threshold even
harder. A FAIL that survives its own assumptions being wrong
against it is a comfortable FAIL.
Consequence, decided before the data existed: no arbitrage engine
gets built. Limit orders, multi-leg atomic execution, second
exchange accounts - all of it stays unbuilt, because a two-week
observation study costing almost nothing just told us it would
have been wasted. The logger keeps running (it's nearly free) and
the study re-opens automatically if the funding regime changes.
This is the third time this summer a pre-registered feasibility
study has killed a build before it started. That's not a failure
of the process. That is the process.
launch
New free tools: the number prop firms don't advertise, and the one your win rate is hiding from you
Two free calculators: a prop-firm evaluation simulator that shuffles your trade history 10,000 times, and a breakeven win-rate calculator.
There's a new "Prop Firm Tools" tab on the site. Two free
calculators, no signup, no email. Here's what they do and why we
built them.
TOOL ONE: the evaluation simulator. If you've looked into funded
trading accounts - Topstep, Apex, and the rest - you pay a fee,
trade to a profit target without hitting a drawdown limit, and get
a funded account. Sounds like a skills test.
Here's the thing everyone misses: whether you pass depends
enormously on the ORDER your wins and losses happen to arrive in.
Same strategy, same trades - losing streak lands in week one, when
your cushion is thin, and you're out. Same streak in month three,
you're fine. You only ever get one shuffle of the deck. So instead
of replaying your history once, the simulator shuffles it ten
thousand times and tells you what fraction of orderings pass.
And it computes the number the industry has no reason to show you:
a strategy with NO edge at all - literally a coin flip after costs
- passes a typical evaluation roughly one time in five. Enough
people buy enough attempts that a steady stream of funded accounts
goes to traders with no edge whatsoever. Passing, by itself, is
much weaker evidence than it feels like.
The comparison tab runs your same numbers against ten real firms'
actual rules. We read each firm's own rulebook and help center -
not review sites, not affiliate pages - and recorded every number
with a source link and a date. The fine print mattered more than
we expected: whether a "trailing drawdown" tracks your open
profits in real time or only your end-of-day balance moves the
pass rate by double digits on the same strategy, and firms bury
that distinction. Anything we couldn't confirm from a primary
source, the page refuses to display - and rows automatically get
flagged for re-verification once they're 90 days old, because
these terms change without announcement.
TOOL TWO: the breakeven win rate calculator. It corrects the most
expensive misconception in trading: that your win rate is your
edge. It isn't. A 60% win rate sounds great and LOSES money if
your average win is half your average loss. Enter your average
win, average loss, and costs, and it tells you the win rate you
need just to break even - plus the part almost nobody does: given
how many trades your win rate is based on, whether you can even
statistically tell it apart from a coin flip yet. Over 100 trades,
a measured 55% could easily be a true 45%. The tool says so, out
loud, and tells you how many trades it would take to know.
What these tools are NOT: advice. They don't recommend a firm,
don't predict your results, and can't tell you whether your edge
is real - every number assumes the stats you type in are honest
and will hold up out of sample. If they came from a backtest you
kept tweaking until it looked good, they won't. And to be clear,
none of this is our bots' trading - our fleet results are separate,
all PAPER money, and these calculators are just math on numbers
you provide.
launch
Our bots were hoarding cash like squirrels. We built them a shared piggy bank - then caught ourselves cheating three times
The stock bots now draw from one shared pool of slots instead of forty idle cash piles, and the write-up documents the three ways we caught ourselves cheating on the measurement.
Here's a problem nobody warns you about when you build a bot fleet.
Every bot in our stock fleet keeps its own money. Bot #1 has its
pile, bot #2 has its pile, all forty of them. Which means you have
to fund the worst case: the day every single bot wants to buy at
once. So you set aside forty piles of cash.
That day basically never comes. We measured it. Our bots are all
holding positions at the same time about 4-25% of the time. The
rest of the time, most of that money is sitting there doing
absolutely nothing, like a gym membership in February.
So we built a shared piggy bank. Instead of forty separate piles,
the bots draw from one pool of ten "slots." Want to buy? Take a
slot. Sold? Put it back. All ten taken? You sit this one out.
The trade is real: sometimes a bot spots something and gets told
"sorry, we're full." You give up a few trades. In exchange you
need far less cash standing around to run the same strategies.
Nothing about the strategies changed. We just stopped funding a
traffic jam that doesn't happen.
Now the fun part: getting here required being wrong three times,
and we'd rather tell you about those than the tidy version.
MISTAKE ONE. Claude first concluded that adding more strategies
makes returns WORSE, complete with a convincing table. That turned
out to be a bug in how it was splitting the money between them,
not a fact about the strategies. Under shared funding the answer
flips: adding strategies helps. A confident table is not evidence.
MISTAKE TWO. The first version of the shared-piggy-bank test said
we'd earn about 66% a year. Wonderful! Also nonsense. When several
bots wanted a slot on the same day, the code was quietly handing
it to whichever trade would finish soonest - which is information
nobody has until afterward. It was letting the bots peek at the
answer key. Fixed, the number dropped by a third. Suspicious
good news is still suspicious.
MISTAKE THREE, the scary one. We ran the official test. It said
PASS. It was also silently missing 10 of our 24 Double 7s bots -
because ten stocks are traded by two different bots each, and our
code had been quietly overwriting one of each pair. The test
passed on a fleet that wasn't the fleet. The only reason we caught
it: the report printed "14 bots" next to a rule that said 24.
That last one is the whole lesson. A test that fails is annoying.
A test that PASSES on quietly wrong data will happily send you
live with real money, smiling the entire time. Print your inputs.
Check them against what you promised to test.
What this is NOT: proof that our stock strategies make money.
Those are still on trial, with their own verdicts pending, and
they might well flunk. A shared piggy bank makes whatever edge you
have go further. If there's no edge, congratulations - you've
built a more efficient way to lose money.
The forty new bots now running are a plumbing test, not a profit
test. We're checking that slots actually get handed out and handed
back, that a server restart doesn't lose track of who's holding
what, and that ten slots never somehow becomes eleven. We wrote
down what would count as passing before switching them on. All
PAPER money, as always. The strategy tests already running were
not touched - new bots only, so we don't contaminate an experiment
that's halfway done.
study
The mean-reversion math study came back negative - and that's worth publishing
Textbook mean-reversion measurements looked adoptable on RSI-2 but failed the pre-registered replication on Double 7s, so no new gated bots.
Three weeks ago we pre-registered a hypothesis: our Connors-style
mean-reversion bots should do better on stocks whose prices
statistically snap back fast (short OU half-life, strongly
negative Dickey-Fuller stat - the textbook mean-reversion
measurements). The judging rules were committed before the study
ran, including a trap for exactly what ended up happening.
On RSI-2, the primary system, both measurements looked adoptable:
the predicted trades beat the average in both the train and test
halves. If we'd stopped there, we'd have deployed new gated bots
this week. But the protocol required the same pattern to show up
in Double 7s - a sibling strategy trading the same dip on the
same 24 stocks - and there it ran BACKWARDS: the "best" trades by
the math underperformed, and the training data actually favored
the opposite bucket. One strategy's promising pattern failing to
transfer to its own sibling on identical data is what
overfitting looks like from the inside.
So: no new bots, hypothesis rejected, receipts in the repo. The
48 live Connors bots were never touched - they keep running
exactly as deployed. PAPER trading throughout.
verdict
First formal forward verdict: gated Bollinger is INCONCLUSIVE - positive, but not by enough
62 forward trips at +$0.05 per trade and a 66% win rate: positive but under half the backtest promise, so INCONCLUSIVE, and the test extends to September 7.
Four weeks ago we committed the judging rules for our first
formal forward test to git - before the outcome was knowable.
The condition-gated Bollinger fleet (17 crypto spot bots, PAPER)
promised +$0.364 per trade at a 70% win rate based on its
backtest. The pre-registered bar for a forward PASS: positive
average, win rate at least 55%, and at least half the backtest's
per-trade average.
The verdict at trigger: 62 completed round trips, +$3.11 total,
+$0.05 per trade, 66.1% win rate. That's positive, and the win
rate essentially delivered on the promise - at the 50-trip mark
it was exactly 70.0%. But +$0.05 is a long way from the +$0.182
the protocol requires, so by the rules we wrote in advance this
is INCONCLUSIVE, not a pass: the test extends four more weeks,
same criteria, re-verdict 2026-09-07.
What the number hides: the gates are finding winners at the
promised rate, but two names (NEAR and SHIB) produced losses big
enough to eat most of what the other thirteen bots earned. Our
protocol explicitly forbids excluding them after the fact -
"it passes if you ignore the losers" is how fake edges get
published. Two honest confessions, on the record: the 50-trip
trigger technically fired eight days before we noticed - the
verdict comes out identical at both cuts, and the miss itself is
documented in the protocol file - and the protocol text said
"13 bots" when the fleet was 17: a miscount, all 17 ran from
day one.
Everything here is paper trading. Nothing about this result
moves real money.
The full verdict as a video, receipts on screen:
https://youtu.be/pIUTxvX0kYo
launch
The first options bot is live (PAPER) - and it isn't allowed to prove the strategy works
cc-pfe-01 runs a covered call on PFE in paper; its forward sample tests plumbing and costs only, never the strategy's edge.
Two days after the covered-calls build started, the studies are
done and the first bot is running. The short version of the
studies: covered calls and the wheel both passed their
pre-registered tests against simply holding the shares - 4 out
of 4 stocks each - but the honest reading is narrower than the
scoreboard. Not one stock won on BOTH return and risk. In
rallies the strategies kept you safer but gave up most of the
upside; in declines they lost less but still lost. And the
wheel's famous cycle - sell puts, get the shares, sell calls,
get called away, repeat - completed exactly three times across
four stocks and thirty months of history. The honest sales
pitch after measuring it: option premium pays you to wait out a
drawdown. It does not prevent one.
That was enough to earn one bot, and only one: cc-pfe-01, which
now owns 100 shares of Pfizer and has sold one call option
against them, on paper, checked once a day after the close. PFE
got the slot on pre-stated evidence - it was the only stock that
passed both ways in either study.
Here's the part we care most about: the rules for judging this
bot were committed to git before it made a single decision, and
they explicitly forbid the one conclusion everyone wants. Ninety
days of one stock cannot prove covered calls "work," so the
verdict doesn't ask that. It asks whether the plumbing holds up
(options expire and settle correctly, nothing breaks on a
restart) and whether the real-world costs match what the studies
assumed - because if live spreads are meaningfully worse than
the studies charged, the studies get flagged as too optimistic
and expansion stops. Return versus buy-and-hold gets reported,
but it is not allowed to gate anything. Day one delivered its
first two data points, both mildly good news: the live spread on
the call we sold was tighter than the studies assumed, and the
bot selected its contract using live option greeks - something
the backtests never had access to, which is exactly the gap this
forward sample exists to measure.
As always: this is PAPER trading and forward data collection on
Alpaca's free indicative feed - calculated quotes, not the paid
exchange feed. Real math, no financial advice.
launch
The fifth sector begins: covered calls - and the first thing we built is the test that could kill it
Covered calls and the wheel enter the build, starting with a spread-measurement study that could kill them before any bot exists.
The covered-calls page on this site has said "coming soon, and
here's the honest reason it isn't here yet" for a while. Today
the build actually started. The plan: bots that own 100 shares
of a cheap, liquid stock and sell call options against them,
collecting the premium - plus the "wheel," which sells puts to
get into the shares in the first place. Fancier options
strategies are explicitly parked until these two prove
themselves.
True to form, the first code written wasn't a trading bot - it
was a measuring stick. Options quotes have a catch: the gap
between the buying and selling price (the spread) can quietly
eat the entire premium you collected. So before building the
engine work - the biggest on our roadmap - we froze a five-stock
universe using criteria committed to git first (NOK, PFE, T,
CMCSA, BITO), and started a three-day study measuring whether
real spreads leave anything worth collecting. The pass/fail bar
was also written down first: if the cost of trading eats more
than a quarter of the premium on every single name, the sector
stops before the engine gets built. Day one looks promising -
four of five names comfortably under the bar - but day one is
not a verdict. The verdict runs Thursday and gets published
either way.
One honesty note up front: our options data is Alpaca's free
"indicative" feed - calculated quotes, not the paid real-time
exchange feed. Every number from this sector carries that label
until an edge looks real enough to justify paying for the real
thing. Paper trading, real math, no financial advice - as
always.
launch
New video: is crypto arbitrage still possible in 2026? We measured it.
Four days of read-only arbitrage logging: the median best triangular loop on the exchange loses 0.26% after fees.
Arbitrage is the internet's favorite "free money" pitch, so
instead of buying anyone's course we pointed a read-only logger
at it: every five minutes it scans all ~300 triangular loops on
our exchange, logs cross-exchange price gaps against two other
venues, and records the hourly funding rate on the liquid
perpetuals. The pass/fail criteria were committed to git before
the first quote was logged.
Four days in: 890 scans, and the median best triangular loop on
the whole exchange loses 0.26% after fees - the market is
efficient to almost exactly the width of the fee. A handful of
scans did show "profitable" loops, almost all through tiny,
illiquid pairs where the advertised price is money nobody can
actually collect at size. The one family still genuinely open is
funding arbitrage - hold the coin, short its perpetual, collect
the hourly funding payment. It's the only kind of arbitrage that
rewards patience instead of speed, which is the only race a $6
server can enter, and Bitcoin's funding swung from roughly −10%
to +15% annualized during the study's first days.
The new video walks through it with the real numbers:
https://www.youtube.com/watch?v=DgO9pC1UEG4 - the verdict lands
August 15 under the pre-registered criteria and gets published
either way. As always: paper trading, real prices, real fees, no
financial advice.
verdict
We tested day-trading bots. The stock version failed its own test - so we're not building it.
This week the fleet learned to roam: instead of trading a fixed
watchlist forever, our newest bots scan the entire market - all
13,000+ US stocks - and compete for a fixed number of position
slots. Two swing-trading roamers are live on paper now, each
judged against the hand-picked bots running the identical
strategy, so the only thing being tested is whether scanning
beats picking.
Then we asked the obvious next question: day trading. For
stocks, we took a famous day-trade setup - opening-range
breakouts on big gap-ups, rules taken from the trader's own
published write-ups - built a dataset of 3,377 real gap days
across 31 months, and wrote the pass/fail criteria down BEFORE
running anything. The result: the setup as actually specified is
rare (about 38 qualifying trades in 31 months), and the apparent
profit on those trades vanished entirely when we doubled the
modeled slippage. An edge that lives inside the fill-model
assumption isn't an edge. Verdict: the stock day-trading bot is
not being built. One afternoon of honest testing beats months of
a bot trading noise - and, as always, a pre-registered test gets
published whichever way it lands.
One day-trading bot did earn deployment: a crypto roamer running
the exact same gated Bollinger strategy as our 13 fixed crypto
bots - verbatim, enforced by an automated test - rotating across
the 20 most liquid pairs instead. Paper money, labeled data
collection, judged by criteria committed before its first trade.
And if the underlying strategy fails its own long-scheduled
verdict on August 10, the roamer parks with it. No rescues, in
either direction.
launch
24 new bots: our best strategy just got a sibling - and they'll compete head-to-head, live
The fleet just grew from 113 to 137. The newcomers run Connors
Double 7s, from the same 2008 book as our strongest strategy -
the Connors RSI-2 fleet that buys 2-3 day panics inside uptrends.
Double 7s is its simpler sibling: if a stock closes above its
200-day average and today's close is the lowest of the last 7
days, buy. Exit when the close is the highest of the last 7 days.
That's the entire system. No stop-loss, by the book's own
research - the dip IS the entry logic - with our position caps
bounding the risk instead.
Why it earned a slot: we backtested it against RSI-2 on the exact
same 24 stocks, the same 2000 daily candles, the same costs. It
took 922 trades to RSI-2's 431 - a 7-day-low close simply happens
about twice as often as a 2-period RSI under 5 - kept a
comparable 67% win rate, earned MORE per trade, and finished with
2.6 times the total profit, green on 22 of 24 names. That's the
largest backtest sample of anything we've ever deployed, passing
our 50-trade evidence gate eighteen times over.
Now the honest frame. A backtest is an audition, not a verdict -
that's why the new bots trade paper money on the very same stocks
as their RSI-2 siblings, at the same sizing, side by side. Two
systems from the same author, hunting the same regime, judged by
the same forward tape. Either the backtest edge shows up in live
market conditions or it doesn't, and the dashboard will say which
in public, either way.
Watch them (bot IDs starting with d7-) at trueai.trading/dashboard
All results are PAPER - simulated money, real market prices, real
fees. Not financial advice.
study
The exit experiments are complete: exits don't stack, and our best result just survived its second test
Last test in the exit series. This morning we showed that combining
our two best exit rules on crypto changed nothing - the fast exit
fired first on every trade. The remaining question was the stock
side, where the slower Darvas box-trail is the champion: does
adding the fast Heikin Ashi flip on top help there?
It made things worse. Five exit variants, identical data, 16
stocks, 2000 daily candles each: the incumbent 10 EMA trail made
+$533. The HA-flip exit alone made +$409 (cuts long stock trends
early, as we already knew). The combination made +$388 - below
BOTH of its components' better halves. Unlike crypto, the Darvas
floor did occasionally fire first on stocks, and when it did, it
subtracted. So the cross-market conclusion is airtight now: a
combined exit is always dominated by its faster component. You
never get the best of both rules - you get the fast one, plus
extra ways to lose. Exits don't stack.
The genuinely good news from the same run: the Darvas box-trail
won on stocks AGAIN, on a second, longer test window - +$684
versus the incumbent's +$533, a 28% improvement, earned on fewer
trades. Its first win was +90% on a shorter window; the honest
reading is that the direction is now confirmed twice while the
size of the edge depends on the window. Two independent windows
agreeing on direction is worth more than one window's big number.
So the exit playbook is settled and waiting: patient Darvas trail
for stock breakouts, fast HA-flip for crypto, no combinations
anywhere, and the regular stop-loss underneath everything. All of
it stays parked until the mid-August strategy verdicts, then gets
re-verified out-of-sample before touching a single live bot.
All results are PAPER - simulated money, real market prices, real
fees. Not financial advice.
study
Follow-up: we tried combining our two best exits. The answer was a perfect, boring zero.
Quick follow-up to today's Heikin Ashi test. We had two exit rules
that each won somewhere: the fast HA color-flip (beat our deployed
exit on crypto) and the looser Darvas box-trail (nearly doubled it
on stocks). Natural question: on crypto, should the fast exit also
carry the Darvas safety floor underneath - exit on whichever
triggers first?
So we ran it. The combined exit produced results IDENTICAL to the
plain HA-flip - to the penny. Same 50 trades, same wins, same
+$83.98. Not similar. Identical. The reason is simple once you see
it: a red Heikin Ashi candle shows up long before price falls 5%
through a box bottom or gives back 20% from a peak, so the fast
exit fired first on every single trade and the floor never got
touched. It was dead code wearing a seatbelt.
Verdict: skip the floor. The crypto exit candidate stays the plain
HA-flip - fewer moving parts, same result - and the engine's
regular stop-loss remains underneath everything as the actual
catastrophe brake. A zero-effect result is still a result: it's
one less parameter to fit, one less thing to break, and one more
combination we'll never have to wonder about.
Nothing deploys until the mid-August verdicts, same as always.
All results are PAPER - simulated money, real market prices, real
fees. Not financial advice.
study
We tested Heikin Ashi honestly. It beat our exit on crypto and lost on stocks - and that's the interesting part.
Heikin Ashi charts are those smooth, beautiful candles that make
every trend look obvious in hindsight. A viewer-suggested video
pitched a strategy around them, so we did what we always do: mined
the rules, researched the technique, and put the testable part
through an honest A/B.
First, the trap - because most Heikin Ashi results you see online
are fake, and not subtly. HA candles are averages: the prices they
display DO NOT EXIST in the market. Backtests that fill orders at
HA prices systematically overstate results, badly enough that
TradingView built a dedicated setting to prevent it. Our tests
compute HA colors from real candles and fill every order at real
prices. If you remember one thing about Heikin Ashi, make it that.
The video's entry ("doji at a key support level") is drawn-by-eye
discretion, so it can't be coded faithfully and we didn't pretend
to. But its exit rule is fully mechanical: ride the trend until
the first opposite-color HA candle. We tested that against our
deployed 10 EMA trail exit on both Qullamaggie breakout fleets,
same entries, same candles, real costs.
Crypto (50 trades): the HA-flip exit made +$83.98 vs the
incumbent's +$49.37 - the first exit variant to beat our deployed
one on crypto. Stocks (150+ trades): it LOST, +$409 vs +$533,
because it cuts long stock trends early. And that mirrors last
week's Darvas result perfectly, where a looser trail nearly
doubled stock profits but hurt crypto. Three exit experiments now
tell one story: stock trends run long and want patient exits;
crypto daily trends are short and spiky and want fast ones. One
exit does not fit all markets.
Nothing changes on the live fleet today. Both Qullamaggie fleets
are inside their forward-verdict window (due mid-August), and
changing exits mid-test would corrupt the verdict - the same
goalpost rule as always. The market-split exit idea goes in the
queue for after the verdicts, where it gets re-verified
out-of-sample before touching a single bot. Caveats on the record:
the crypto sample is exactly at our 50-trade evidence gate, one
window, comparative only.
All results are PAPER - simulated money, real market prices, real
fees. Not financial advice.
Next sector on the roadmap: prediction markets - and why the obvious bot is the hardest one to trust
There's a new tab on the site: prediction markets. Kalshi-style
event contracts - yes/no markets on real-world events where the
price IS the probability. A contract at 30 cents means the market
says 30%. We want to know whether bots can find edges there, and
the sector is now officially on the roadmap, parked behind the two
strategy verdicts due in August.
Here's the part worth reading. The obvious bot - an AI that reads
the news and estimates probabilities better than the market - is
easy to build and nearly impossible to validate honestly. Every
backtest of it is a lie by construction: any AI model you'd use
today was trained on data that includes how past events turned
out. Asking it "what were the odds of X?" about anything in its
training window isn't forecasting, it's remembering. So if we ever
run that bot, it starts from zero in live forward testing, labeled
as the experiment it is, for however many months that takes. No
shortcuts exist, so we won't pretend to have found one.
The bots that come FIRST are the boring ones: documented
structural patterns like the longshot bias (unlikely events are
systematically overpriced) that don't require understanding the
news at all, and can be partially backtested against real fee
models. Fees matter enormously in these markets - they're highest
exactly where the outcome is most uncertain.
When the sector ships, it starts on Kalshi's regulated demo
environment: paper first, always, same as every sector before it.
The full honest assessment - including what we can't test and
why - is on the new page: https://trueai.trading/prediction-markets
As always: all results PAPER, nothing here is financial advice.
verdict
Gated-Bollinger interim report: 19 trades, 68% wins, still down $2.68
Two weeks ago we committed, in public and in advance, to a verdict
protocol for our gated Bollinger fleet: pass/fail criteria defined
before the outcome, an interim report at the two-week mark, and a
final verdict at 50 trades or August 10, whichever comes first.
This is the interim report. Numbers only - the protocol forbids
verdict language until the trigger, so you'll get none here.
Since the forward test began on July 13, the 13 gated bots have
completed 19 round trips: 13 winners, a 68.4% win rate, for a total
of -$2.68 - an average of -$0.14 per trade, net of fees. For
reference, the backtest that earned this fleet its slot promised
+$0.36 per trade on a 70% win rate. When we committed the protocol
at 13 trades, the fleet stood at 54% wins and -$0.21 per trade;
both numbers have since moved toward the backtest, and the win rate
is now within touching distance of the promise. The average,
however, is still negative.
Where the money actually went: one symbol, NEAR, accounts for -$6.13
across five trades, including three losses of about -$3.30 each -
several times larger than any other bot's loss. The other six bots
that traded are +$3.45 combined, in the small-frequent-win shape the
backtest predicted. We note this as a fact about composition, not as
an excuse: the protocol explicitly bans "it passes if you exclude
NEAR" reasoning at verdict time, and we intend to honor that. Six of
the thirteen bots haven't traded at all yet - the condition gates
are doing exactly what gates do, which is keeping bots out of most
markets most of the time.
At the current pace the fleet clears the 25-trade minimum well
before August 10, so the verdict should arrive on schedule. Whatever
it says, it gets published. All results are PAPER - simulated money,
real market prices, real fees.
launch
Position sizes go from $100 to $500 on 63 bots - here's exactly why, and why not all 110
From today, 63 of our bots trade with a $500 position cap instead of
$100. Nothing about their strategies, signals, or leverage changed -
every bot still trades unleveraged cash positions on $1,000 of paper
equity. So why bother?
Visibility. With a $100 cap, a bot that catches a clean 2% winner
moves its account by 0.2% - a rounding error that makes real edges
and real failures look identical on the dashboard. At $500, that
same trade moves equity 1%. The experiment doesn't change; the
signal-to-noise on reading it does. We scaled the daily-loss halt by
the same factor (from $20 to $100), so every risk limit still sits at
the same percentage of position size the backtests were run with.
Now the honest part: 47 bots did NOT get the change. The 13 gated
Bollinger bots are two days from their interim report, under a
verdict protocol we published in advance with pass/fail thresholds
defined in dollars per trade. Changing their position size mid-sample
would make those numbers meaningless - a quiet way of moving the
goalposts we promised not to move. Same for the Qullamaggie fleet,
whose verdict lands mid-August. They finish their tests at the size
they started. Once each verdict is published, whichever way it goes,
they move to $500 like everyone else.
One thing to keep in mind reading the dashboard from here: dollar
swings on the 63 resized bots are 5x bigger as of today, so
before-and-after comparisons of dollar P&L need that context.
Percentage returns remain comparable throughout. As always: all of
this is PAPER - simulated money, real market prices, real fees.
retirement
Autopsy of our two worst bots: it was never really about the fees
btc-kama-001 and btc-sma-001 - two of our original bots, benched since
July 15 - got a final review today, because we wondered: they traded
constantly on 1-minute bars, and every round trip pays about 0.3% in
fees and slippage. Were the fees the killer? Would slower bars, or
bigger positions, have saved them?
So we backtested both strategies at every timeframe from 1 minute to
4 hours, with real costs, over up to a year of data. The answer is
no - and the reason is more interesting than the question. At every
timeframe, the signals lost money BEFORE fees. Win rates ran 12-34%.
These are long-only trend-followers, and in a year where Bitcoin
chopped its way down about 44%, they bought every fake rally and got
stopped into every resumption of the slide. Bigger positions would
have lost more, not less. The fee story was a comforting misdiagnosis;
the signal was the problem. Verdict recorded in both configs, bots
archived for good.
One genuinely useful thing fell out of the autopsy: flip KAMA around.
The SHORT-side version on 4-hour perp bars was the single profitable
cell in the whole matrix - +1.29% over a year in which buy-and-hold
lost 44.9%. That is a tiny number and one backtest window, so it
proves nothing yet. But it matches the market we're actually in, so
it joins the fleet as perp-kamashort-btc-s01 - labeled data
collection, not edge, until it earns a real forward verdict. (The SMA
short version came out at +0.21% - indistinguishable from zero, so it
gets no second life. Not every autopsy finds an organ donor.)
bug
Bug report: the dashboard said 3 open positions. The table said 8.
Spotted on our own dashboard: the open-positions counter said 3 while
the positions table right below it listed 8. Both can't be right - and
the table was.
The cause is a classic: when the fleet learned to short-sell, short
positions became negative numbers, and one counter still asked "is the
position greater than zero?" - counting only the longs. We'd already
fixed two spots with this bug when shorts went live; this was the
third and last, and a sweep of the code confirms the class is now
extinct. The counter and the table agree: 8 open positions, 5 of them
short.
Why publish a one-line bug fix? Because this is what an open book is
for. Every number on this site renders from the same database, so any
two numbers that disagree expose a bug to anyone who scrolls - no
trust required. When it happens, we fix it and say so. Transparency
isn't just for the wins; it's for the counter that couldn't count.
Fleet leaderboard: the 3 best and 3 worst bots right now
First edition of an occasional honest leaderboard - with the caveat up
front that these are tiny numbers by design: every bot runs a $1,000
paper account with positions capped at $100, so the dollars are small
and the point is the process.
The top three: boll-ada-g01 (+$1.57), boll-uni-g01 (+$1.23), and
btc-bollinger-001 (+$1.08). The first two are gated Bollinger bots -
our one backtest-validated edge - quietly leading the fleet days
before their formal forward-test verdict. Encouraging, not conclusive.
The bottom three: rsi2-cvna-s01 (−$9.08), boll-near-g01 (−$6.93), and
btc-breakout-001 (−$4.06). The worst is our brand-new dip-buyer's very
first trade - it bought a Carvana panic and the panic kept going. Its
strategy explicitly holds through this (no tight stop, by published
design), so this position is the strategy's first real exam, still in
progress.
Now the most instructive line in the data: the fleet's #2 best bot and
#2 worst bot run the IDENTICAL strategy - gated Bollinger - on
different coins. UNI up, NEAR down, same rules. That's why no single
bot's result means anything here, why we deploy strategies as fleets,
and why verdicts only come from many trades over many symbols. The
first such verdict is due within days: the gated Bollinger forward
test. Leaderboard, meet judgment day.
bug
110 bots broke our database (a little). Fixed.
A growth milestone, told honestly: the fleet got big enough to strain
its own infrastructure. With 110 bots each logging every decision,
trade, and account snapshot, the database was being written to almost
constantly - and anything trying to READ it (like the live dashboard,
or the fleet report that caught this) kept getting locked out while
the bots held the pen. Some queries had also quietly grown slow: what
was instant at 10 bots was crawling at 40,000 rows.
The fix is textbook database engineering: write-ahead logging, which
lets readers and writers work at the same time instead of taking
turns, plus proper indexes on the columns the dashboard queries. The
heaviest dashboard query went from struggling-to-connect to 34
milliseconds. The fleet restarted with every open position intact -
including our new dip-buyer's first trade, currently underwater and
holding exactly as its strategy prescribes.
Why post about plumbing? Because this is what running 110 bots
actually involves, and most trading content skips it. The strategies
get the headlines; the infrastructure keeps the lights on. Both run
in the open here.
launch
Our first video is up: Can AI actually trade?
The YouTube channel has its first full-length video: "Can AI Actually
Trade? I Built a Fleet of Bots to Find Out (Honestly)." It's the story
of this whole project - the fleet, the honest-testing pipeline, the
strategies that survived the backtests and the ones that didn't - told
from the beginning.
If you've been following along here, the video is the big picture in
one sitting; if you're new, it's the best place to start. It's on the
videos page right here on the site, or on the channel. More videos
will follow as the fleet's verdicts come in - the gated-Bollinger
forward test wraps up around late July, and that result is getting a
video whichever way it goes. Wins and losses alike, as always.
study
We finished mining trading YouTube. Here's the scoreboard.
Since this project started, our strategy pipeline has run on one input:
find a documented trading method, extract its rules from the source,
implement them in code, and let backtests decide. This week we finished
working through the entire YouTube source queue - every channel either
mined or ruled out, with the reasoning committed to the repo.
The scoreboard is stark. Sources with published, verifiable rules -
Qullamaggie's breakout method, Mark Minervini's VCP, Jesse Livermore's
exits, Larry Connors' RSI-2 - produced every deployed strategy in the
fleet. Sources built on drawing lines by eye produced nothing we could
even test: when the lines get redrawn daily "until they fit," the
signal that would have existed at decision time is undefined, and a
backtest of it would be fiction. And a pattern worth knowing: the
channels that couldn't state their rules precisely were usually the
ones selling a course or funneling to a prop-firm evaluation. The
method is the product when the method works; the course is the product
when it doesn't.
So the hunting ground moves to where the evidence lives: published
books, academic papers, and quant research - which is exactly where
our newest and best-tested strategy came from. Every verdict, adopted
or rejected, is in the open in our strategy-sources docs. The numbers
decide here. They always have.
launch
24 new bots buy fear: Connors RSI-2 joins the fleet
The Stocks sector just got its first mean-reversion strategy - and the
strongest backtest this project has ever produced. Connors RSI-2, from
Larry Connors' published 2008 rules, buys two-to-three-day panic dips
inside long-term uptrends and sells the snap-back. It's the exact
opposite regime to our breakout bots: they buy strength, these buy fear.
The numbers, with our usual punitive fee assumptions and the book's
parameters untouched: 204 trades across three universes and four years
of data, 75% winners. Index ETFs reproduced the textbook result almost
exactly - an 89% win rate with drawdowns under 1%. And one genuine
surprise: the academic prediction says reversion should only work on
boring low-volatility stocks, but our high-beta names actually made the
most money (bigger panics, bigger snap-backs) at six times the
drawdown. So all 24 bots - 4 ETFs, 10 large caps, 10 high-beta - are
now live as a forward experiment to settle that question with real
data. One honest design note: this strategy runs without a tight stop
loss, because Connors' own research shows stops break it; position
caps bound the risk instead. Fleet's at 110 bots. Watch the dips get
bought on the dashboard.
On the roadmap: covered calls - and the honest reason they're not here yet
There's a new tab on the site: Covered Calls. Nothing trades there yet -
and that's the point of the page. It explains what covered calls are
(selling call options against shares you own for monthly income - a
sensible strategy, but not free money), and exactly why we haven't
built the sector: options are a whole new instrument type for our
engine, honest backtesting is hard without expensive historical
options data, and the 100-shares-per-contract math is brutal at small
account sizes.
Most trading sites would either sell you an options course or pretend
the feature is "launching soon." We'd rather show you the engineering
reality and the bar it has to clear. When the sector ships, it goes
through the same pipeline as everything else here: build, backtest
honestly, paper trade in the open, publish the results. Read the full
reasoning at trueai.trading/covered-calls.
launch
The VCP bots get better exits - thanks to Jesse Livermore
Our new Minervini VCP bots just had their exit rules upgraded, and the
story of how is the whole project in miniature. We extracted Jesse
Livermore's hundred-year-old "pivotal point" method from a 94-minute
breakdown and A/B-tested it against our VCP bots on 24 stocks and three
years of data. His famous entry technique - buying inside the base where
supply dries up - failed the test outright. But his exit rules won
clearly: sell a third of the position at exactly twice the stop distance
(making the trade risk-free), and dump any trade that goes nowhere for
eight days. Same entries, 50% more profit in the backtest.
So that's what shipped: the entry idea rejected on evidence, the exit
idea adopted on evidence, before the bots had taken a single live trade.
We also tested Dan Zanger's signature rule - breakouts need a volume
surge - and it failed too (killed 8 of 9 good entries on daily data), so
it stayed out. Two legendary traders, three ideas, one adopted. The
numbers decide here, not the legends. Usual caveat: the backtest sample
is small, and the forward paper record on the live dashboard remains
the real judge.
launch
16 Minervini VCP bots join the stock fleet
The Stocks sector doubled again: 16 new bots now trade Mark Minervini's
volatility contraction pattern (VCP) - the method of a two-time US
Investing Championship winner, extracted rule-by-rule from a two-hour
masterclass into code. Trend template, shrinking contractions, volume
dry-up, breakout entry, trailing exit: all mechanical, all logged.
The honest verdict from backtesting: the strict pattern is rare - nine
trades across 24 stocks in three years - but it won 67% of them. When we
loosened the rules to get more trades, the win rate collapsed to 33%.
The quality lives in the strictness, so the strict version ships,
labeled as data collection, not a claimed edge. Expect these bots to sit
patiently idle for months - that's the strategy working, not broken.
Every decision they make is on the live dashboard.
Retired: our first two bots
The fleet's two original bots - btc-sma-001 (simple moving-average
crossover, the very first bot we ever ran) and btc-kama-001 (Kaufman
adaptive moving average trend) - have been retired. Their questions were
already answered: backtests with real fees and slippage showed the SMA
crossover has no edge once costs are counted, and KAMA is a genuine
loser in choppy markets. Keeping them trading was re-confirming closed
verdicts while producing most of the fleet's fill noise.
Their send-off made the point one last time. Both finished with a
positive gross trade P&L - and still ended below their starting cash
(down $14.48 and $8.54 of $1,000) because trading fees ate more than the
strategies earned. "No edge net of costs" in a single line. Their full
history stays in the database and on the dashboard; retirement means no
new trades, not rewritten history. That's the deal we made from day one:
most strategies fail, and when one does, we say so and move on.
launch
Real CME futures data is live
The Futures sector now runs on real Chicago Mercantile Exchange data:
two new bots trade the Micro E-mini S&P 500 (MES) on a live feed from
Webull's OpenAPI, alongside the existing crypto perpetual bots.
Full disclosure, as always: the MES backtests came out breakeven, so
these bots are labeled forward-data collection - not a claimed edge.
They exist to find out whether anything survives real market conditions,
and their every decision is logged to the dashboard like the rest of
the fleet.
launch
Stock watchlist doubled to 16 names
The stock fleet grew from 8 to 16 momentum names. We screened 22
candidates through the same daily backtest the original names passed and
added the top 8 performers (RGTI, HOOD, ARM, APP, CVNA, MU, IONQ, RBLX).
One honest caveat, recorded in the configs themselves: picking the top
of a screen after seeing the results inflates expectations - selection
bias is real. The forward paper record is the judge that counts, same
as everything else here.