For the past several months we have been building and backtesting a set of automated trading bots, and a handful of them held up well enough across the historical data that we started running them with real money. That work has now turned into a new Trading Bots section inside MyATMM, where you can dig into each bot's approach and its full backtest results.
This walkthrough covers two things. First, the practical side: how the trades these bots generate get imported and tracked week to week, so the results in your account are real numbers instead of a vague sense that things are going okay. Second, the strategy side: the philosophy behind a 0DTE options trading bot for small accounts, and a detailed look at one of them — the Lockstep bot — including a four-year backtest run against real historical option quotes.
A bot that trades daily produces a lot of fills. Running one 0DTE credit spread a day across a handful of accounts adds up to dozens of legs per week, and hand-typing those into a spreadsheet is exactly the kind of chore that quietly stops happening after about three weeks.
The routine is simple and takes a couple of minutes at the end of the week. Start in ThinkorSwim on the Account Statement tab, set the date range to cover the period you have not tracked yet, and export the transactions to a file. Then head back to MyATMM, open Tools → Import/Export, and choose the AI import.
Drop the exported file onto the import panel. It pre-parses immediately so you can see what it picked up, then you click Parse and the system pulls every transaction out of the export — strikes, expirations, quantities, prices, and fees. From there, View Import Details shows exactly what landed in the account, which for a bot week means a long list of XSP option legs.
Here is the part that matters in practice. When you export "the last couple of weeks" because you fell behind, you will inevitably re-import transactions you already have. That overlap is fine — the importer flags the probable duplicates for you instead of silently double-counting your premium and wrecking your cost basis.
An export covering two weeks brings in four transactions that already existed in the account. In the import details view they are marked as duplicates. You have two ways to clear them:
Either way, you end up with one clean set of transactions and no phantom premium inflating your numbers.
If you would rather work from a CSV than a screenshot-style export, the same duplicate detection applies to the ThinkorSwim SPX and XSP CSV import with import history, which keeps a record of every batch you have brought in so you can trace a transaction back to the file it came from.
Once the transactions are in, the Strategy Summary screen is where the bot's actual behavior becomes visible. Filtered to the last 30 days on XSP, it lists the trades out one by one — and with a daily 0DTE bot, that is close to one entry per trading day.
For each strategy in the list you can see:
That last column ties into the risk profile tooling. If you have run a risk profile on a position, you get the same kind of payoff visualization you would expect from a brokerage platform, updating in real time so you can watch where your risk and profit sit as the day moves. The SPX put credit spread walkthrough in the Risk Profile tool covers how that view is built and read for a defined-risk spread — the mechanics are identical for XSP.
Strategy Summary is trade-by-trade and day-by-day. To judge whether a bot is actually working, you want the level above that. The Performance tab on the dashboard groups everything by week, which is the right resolution for a strategy that takes roughly three trades a week.
This is the same weekly cadence that makes tracking worthwhile for any premium-selling approach, whether it is a bot or a manual position. The habit is what produces the data, and the data is what tells you if the strategy is doing what the backtest said it would.
When you log into MyATMM you will now see a Trading Bots section in the navigation. The landing page lays out the general approach before you get to any individual bot, because the approach is really the whole point.
A lot of credit spread traders sell far out-of-the-money structures with high nominal win rates. The math on those is lopsided: you might risk $500 to $1,000 of defined risk to collect $30 to $80. The win rate looks fantastic right up until a handful of losers eat a quarter's worth of winners.
These bots go the other direction. They target roughly a one-to-one payoff — risking about $50 to make about $50 — while still maintaining a high historical win rate. You are never exposed to a single trade that can undo months of progress, because the maximum loss on any given spread is a defined, small number known before the order is placed.
This approach only works because of a structural change: the pattern day trader rule has been removed. Under the old regime, a bot placing same-day entries and exits on 0DTE spreads was generating day trades, which meant every account running it needed to hold $25,000 to stay compliant.
Without that constraint, you can run several small accounts — $1,000 or $2,000 each — and have a different bot running a different XSP strategy in each one. That is a genuinely different world for smaller traders, and it is the reason a small-account-friendly 0DTE bot is even worth building.
XSP is the mini S&P 500 index option, sized at one-tenth of SPX. For this style of trading that matters a lot:
If you have followed the 0DTE iron condor tracking examples on QQQ and SPY, the position-tracking challenges here will feel familiar — short-dated defined-risk structures produce a lot of transactions in a hurry.
There are currently several bots in the section — an ATM put spread bot, Lockstep, an EMA cross bot, an opening range breakout bot, and an EMA open bot. The transactions imported in this walkthrough all came from Lockstep, so that is the one worth unpacking.
The Lockstep bot follows a simple, repeatable sequence:
Every bot page carries its backtest results, and they are built on real historical option quotes — not modeled prices, not theoretical fills derived from a pricing formula.
The backtest window runs from June 2022 through July 2026, roughly four years. That start date is not arbitrary and it is not cherry-picked: June 2022 is approximately when daily expirations became available on XSP. There is no earlier data to test against, so that is as far back as the study can honestly go.
The headline numbers below reflect a single contract on every signal for the entire four-year window — no scaling, no compounding, no position sizing adjustments.
| Metric | Backtested Result (June 2022 – July 2026) |
|---|---|
| Win rate | 77.1% |
| Wins / losses | 496 wins, 147 losses |
| Average return on capital risked | ~40% |
| Average winning trade | $37.36 |
| Average losing trade | $43.68 |
| Maximum drawdown | $278 |
| Profitable years | All of them in the window |
| Green months | 92% |
| Trade frequency | ~3 trades per week |
The number that deserves the most attention is not the win rate — it is the $278 maximum drawdown on one contract. That is the worst peak-to-trough stretch the strategy went through across four years of historical data, and it is what makes the approach compatible with an account measured in the low four figures. A strategy with a better headline return and a $3,000 drawdown would be unusable in a $1,000 account regardless of how good the average looked.
Note also that the average loss ($43.68) is larger than the average win ($37.36). That is normal for this structure and exactly why the win rate has to carry the weight. It is also a useful sanity check that the numbers have not been massaged — a strategy claiming both a high win rate and a favorable payoff ratio usually deserves a hard look.
Summary statistics hide the shape of a strategy. One button on each bot page opens the equity curve so you can see the actual path: the long grind upward, and the drawdown stretches where the line went sideways or dipped. Seeing where the flat spots were is far more instructive than any single ratio, because those are the periods that would test whether you would actually keep running it.
There is also a toggle that re-runs the same historical signals with a position-sizing rule applied: one contract per $1,000 of account value. As the simulated balance grows past $2,000 it trades two contracts, past $3,000 it trades three, and so on, capped at 100 contracts.
The cap is deliberate. Without it, a compounding simulation eventually produces thousands of contracts per trade and numbers that have nothing to do with reality — liquidity, fills, and market impact would all break down long before that point. Even 100 contracts is pushing it; something in the 50-contract range is more plausible.
With the one-contract-per-$1,000 rule applied to the same historical signals, the simulated equity curve steepens considerably and finishes in the neighborhood of $763,000. The contract count is displayed on the chart, so you can see it climb through 30 contracts and reach the 100-contract ceiling roughly two years into the window — around the point where the simulated balance crosses $100,000.
Read this for what it is: a compounding simulation applied to historical signals, useful for understanding how position sizing changes the shape of a curve. It is not a projection, not a target, and not something anyone should expect to reproduce. Real-world fills, slippage, and liquidity at size are not modeled in it.
We tried to draw a sensible line here. The evidence is open; the implementation details are not.
A backtest tells you what a strategy did historically. Your own transaction history tells you what it is doing now — and those two things are only comparable if you are tracking honestly, with costs included and no double-counted fills.
That is the gap MyATMM is built to close. The AI import pulls a week of bot fills out of a broker export in about a minute and flags duplicates before they can distort anything. Strategy Summary rolls individual legs up into the spreads they actually belong to, with the commissions and fees attached where they occurred. The dashboard's weekly grouping converts a pile of trades into a percentage of working capital you can compare week over week. And the risk profile view lets you see the payoff shape of a live position instead of guessing at it.
None of that is specific to bots. It is the same tracking problem every options seller has — automation just makes the volume high enough that spreadsheets stop being an option. If you want a broader look at what to demand from a tracking tool, our guide on what to look for in options trading journal software works through the criteria that matter for premium sellers specifically.
The short version: the PDT rule change opened the door for small accounts to run daily 0DTE strategies, XSP makes the position sizes small enough to be practical, and a near one-to-one defined-risk structure keeps any single trade from doing real damage. The Lockstep bot is one implementation of that idea, and its four-year backtest against real historical option quotes is available for you to pick apart yourself.
We will be walking through the rest of the bots in the coming weeks, along with more detail on the transaction import process — because tracking is what turns a strategy into something you can actually evaluate.
Backtested results are hypothetical. Every performance figure in this article — win rate, average trade, maximum drawdown, equity curve, and the scaled simulation — is derived from historical option quote data applied to a set of rules after the fact. Hypothetical and backtested results have inherent limitations: they do not represent actual trading, they cannot fully account for slippage, liquidity, order fills, or the psychological reality of following a system through a drawdown, and they are prepared with the benefit of hindsight.
Past performance does not guarantee future results. A strategy that was profitable across a historical window can lose money going forward. Options trading involves substantial risk and is not suitable for all investors. 0DTE index options in particular carry rapid time decay and can move against a position very quickly. You can lose the entire amount at risk on any defined-risk spread.
MyATMM is a tracking and research tool, not an investment adviser. Nothing in this article is a recommendation to buy or sell any security or to adopt any strategy, and nothing here should be construed as investment advice. Always do your own research and consult a qualified financial professional before making any investment decision.
MyATMM provides purpose-built cost basis tracking for option sellers, with the flexibility to track covered calls, cash-secured puts, and wheel strategy positions.
Track up to 3 tickers completely free forever. No credit card required.
Create Your Free Account TodayBuilt for covered calls, cash-secured puts, and the wheel strategy