← All Articles
Backtest Corpus Explorer showing the strategy research surface Austin was building before checking the portfolio

$25,000 Public Portfolio Challenge · Episode 9

Nine days in and my AI increased my portfolio value by over $4,000. Then I panic sold.

Real money, real broker, real rules. The portfolio is up over 16%, and the hardest part was obeying the system after it found a winner.

Austin Starks Austin Starks ✦ Founder, NexusTrade ✦ May 14, 2026 ✦ 9 min read

The portfolio is up $4,059.15 in nine days.

Nine days in, my public live-trading portfolio is up 16.6%. Audit the results yourself.

This is a live brokerage portfolio, not a backtest or a paper-trading account. I used my agentic trading platform to manage real money in public, and the account is up sharply since launch.

Account value
$29,059.15
latest shared snapshot
Return
+16.6%
nine days after launch
Gain
$4,059.15
real broker, real fills
Live shared portfolio snapshot · this is the actual Public Portfolio Challenge account.

I should be thrilled. I am thrilled. But the story this week is bigger than the portfolio working. It worked well enough to expose a process mistake.


I was not watching the portfolio.

For most of this week, I was heads down on platform work.

One thing has been bothering me: Aurora can create profitable trading strategies, but sometimes it takes too long. The current workflow is generative. The agent proposes an idea, backtests it, revises it, tests again, and slowly searches toward something better.

That works. It should not be the only path.

NexusTrade already has years of backtests sitting in the system. Instead of forcing the AI to invent every idea from scratch, I wanted it to search the strategies that already existed, find patterns that worked, and use those as starting points.

So I started building a research surface for the historical strategy universe. I called it the Backtest Corpus Explorer.

Then I checked the portfolio.

I checked the positions, cross-referenced them with Apple Stocks and the Public app, and saw that the portfolio was up 16.6% in nine days.

Then I saw NVDA.


NVDA was up huge. I thought the system should have sold.

The NVDA spread was up more than 100% in a few days. I vaguely remembered the exit rule: take profit at 50%. So the obvious question was:

Why is this still open?

I asked Aurora to audit the portfolio. The response confirmed what I already suspected.

Aurora audit explaining that NVDA was skipped because it was missing from the underlyings filter
Aurora audit · NVDA was skipped because it was missing from the underlyings filter
The audit revealed a configuration error in your CloseOption strategy. The system is skipping these trades with the code CLOSE_SPREAD_SKIPPED_UNDERLYING because NVDA is not included in the underlyings filter for that specific exit rule.

That was true. NVDA was missing from the underlyings filter for the close rule I expected to manage it. The system was following the rule I had actually configured instead of the rule I thought I had configured.

The disciplined move was simple: fix the configuration, then let the system re-evaluate the position.

I did not do that.

I manually sold.


I found a real configuration mistake. Then I made a process mistake.

Selling a 100% winner is not crazy. If I were trading discretionary options, taking that profit would be easy to defend.

But this challenge is not supposed to be discretionary trading with better dashboards. The point is to define rules, let the system execute them, audit the results, and improve the rules.

The mistake was changing execution modes under pressure. I went from rule-based trading to "I found the issue, I will just handle it myself."

Then NVDA kept running.

I regretted the sale almost immediately. I bought the three NVDA spreads for about $2,385 and closed them for about $5,010. Right now, as I am writing this, those same spreads are worth about $6,219. That means the mistake has already cost me about $1,209 in missed upside, even while the portfolio is still having a monster week.

To make myself feel better, I told myself the engine would have sold earlier anyway if I had configured the rule correctly.

That was too convenient.

NVDA close rule audit path The intended rule said to close NVDA at a 50 percent profit, but the configured rule excluded NVDA and also had a DTE gate that Aurora did not surface in the first audit. What I thought the sell rule said The audit was useful, but incomplete. INTENDED RULE NVDA profit target Close the spread when P/L >= 50% CONFIGURED RULE Underlying filter Allowed symbols did not include NVDA AUDIT SAW Skipped Correct reason, only first blocker HIDDEN SECOND GATE DTE rule still mattered The audit found the symbol filter, but did not finish the close-rule chain. CORRECT RESPONSE Fix config, then re-run audit The system needed to show every blocker before I made a manual trading decision. audit stopped early
NVDA close audit · the first answer was correct, but incomplete

When I dug deeper, the truth was messier. Yes, the close rule was misconfigured. But that first audit result was incomplete. It surfaced the obvious blocker while leaving other blockers hidden. The DTE rule still mattered too, and Aurora missed that part of the close context. There were also additional close-path issues hiding behind that first explanation, including a same-tick duplicate-close case that could generate duplicated broker legs for a spread. I fixed that too, and added a regression test.

So the excuse "the engine would have sold anyway" was not clean. The right move was to repair the system, then let the system act.

Process mistake

The trade may still be justifiable. The process was not. A real configuration mistake is not permission to switch from systematic execution to manual impulse.


Public trading turns process failures into product requirements.

The product fix was obvious: close-option audits need to be exhaustive.

If a position does not close, the system should surface every reason clearly: the first blocker, the explanation that sounds most actionable, and every other blocker in the chain.

What the audit should expose

Underlying filters, spread type filters, P/L thresholds, DTE rules, quote availability, stale marks, naked-short protections, and broker-shape constraints all need to be visible.

Partial visibility is dangerous because it can be correct and still incomplete.

Aurora gave me a real explanation. The problem was that live trading decisions need the full audit context, especially when the portfolio is moving fast and I am already biased toward action.

So I fixed the close-option audit path so close evaluations do not short-circuit on one reason. Aurora and the UI should be able to show the full set of blockers.

That is a direct product improvement from a real portfolio mistake.


The Backtest Corpus Explorer is how Aurora gets better at finding strategies.

The NVDA mistake was an execution problem: when money is moving fast, the system needs perfect observability before I touch the trade manually.

But execution is only half the battle. The other half is finding better strategies in the first place. The irony is that while I was panic-selling NVDA, I was supposed to be fixing exactly that.

The Backtest Corpus Explorer is the first version of that idea: a way to browse trading strategies by return, alpha, drawdown, Sortino ratio, cadence, asset class, signal frequency, and indicator structure.

Backtest Corpus Explorer showing strategy backtests plotted by average drawdown and Sortino ratio
Backtest Corpus Explorer · a research surface for searching the historical strategy universe

To support the Explorer, I relaunched 270,584 historical backtests through the current engine. The rationale was simple: Aurora should not have to invent every strategy idea from scratch. It should be able to search a large, comparable dataset, find patterns that worked, and use those patterns as starting points.

The first Explorer view keeps completed runs with real strategy definitions, usable return stats, and comparable strategy and indicator rows. That leaves 130,633 strategy backtests for search and comparison.

270,584 measured backtests 63,571/hour peak throughput 17.7/second peak rate $332.61 Fly compute $1.24 per 1,000 backtests
Animated backtest rerun throughput showing the fleet clearing the historical corpus
The rerun peaked above 63K backtests per hour during the hot drain

The important part is what the rerun exposed: fleet sizing, memory pressure, worker routing, and environment tuning. I fixed those and made the engine more efficient under heavy load.

That is how the Explorer becomes useful. It gives Aurora a research surface and gives the engine a bug-mining surface. When the data shows impossible results, I can find the engine behavior that produced them, fix it, rerun the affected strategy shapes, and improve the corpus.

The next step is direct Aurora integration. When Aurora creates strategies, it should be able to search this corpus first instead of starting every idea from a blank page.


The hardest part is obeying the rule when it is working.

The portfolio is up 16.6% in nine days.

That is a great headline. It is also the easiest part to misunderstand.

The real update is that the system is working, and the system is exposing where it needs better rails. The portfolio found a winner. Aurora found a configuration issue. I made a manual process mistake. The audit path got better. The backtest engine got stronger. The corpus explorer came online.

This week, the portfolio made money. The product got better. I got a reminder that the hardest part of systematic trading is not writing the rule.

It is obeying it when the portfolio is up $4,059.15 in nine days.

Follow the Public Portfolio Challenge

Every trade, every AI model test, every bug, and every hard lesson is documented in public.

Read The Series

Discussion

Sign in or create a free account to join the discussion.

No comments yet.