Fleet news

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.