AuraTrade

Paper trading only · in development

An LLM portfolio manager
on a short leash.

AuraTrade manages a whole account with one goal: beat the S&P 500 over 10 years, after tax. It doesn't pick stocks. A trend rule decides how much of the market to own: a little more than all of it while the trend is up, half while it is down. Claude allocates a fifth of the account among approved ETFs and may nudge the rest, with a written reason every month. Code computes every target and price and enforces limits the model cannot override.

  • 1.3x / 0.5xS&P 500 exposure in an up-trend / a down-trend
  • 10months: the moving average the trend is read from, once a month
  • 20%of the account allocated by Claude among approved ETFs
  • <$150monthly running cost, serverless on AWS

The book so far

The account against its rules-only twin and the S&P 500, before and after the estimated tax, with every month's decision and its reasons. Updated each evening.

The paper trial hasn't started yet. From its first month, this section shows the book against the twin and the S&P 500, the exposure history, the scorecard and the decision journal, updated every trading evening.

Who decides what

The split is the core of the design: judgement goes to the model, arithmetic and safety stay in code.

Claude decides

  • How the 20% satellite is spread over 13 approved ETFs: Nasdaq, small caps, value, quality, international, gold, bonds, managed futures, cash
  • Whether to shift the core's exposure by up to 0.2x, and only down when the rules say to hold less
  • A written reason for every change, and what it expects to happen
  • What to make of the regime, macro data and news

Code enforces

  • The trend, the volatility cap and the drawdown halt, so the core's rule level
  • Every target weight, share count and order price
  • Leverage only through a 2x S&P fund, never margin, with a stop at the broker
  • Each ETF at most 10% of the account; no leveraged or inverse funds in the satellite
  • Fail closed: on any doubt, never more risk; a failed decision holds: the rule level and last month's satellite

A month, and a day

  1. Ingest, journal, twin. ETF bars, macro data and news come in; the rules-only twin is played forward; the drawdown is checked.
  2. The trend. The market's month-end value is read against its 10-month average; the volatility cap and the halt set the rule level.
  3. Portfolio Manager. On the first session of the month, Claude sets the satellite and the core's shift, with its reasons. No valid decision by noon means holding: the rule level and last month's satellite.
  4. Rebalance. Holdings more than 5 points off target are traded back to it: sales first, then buys, as limit orders.
  5. Stop guard. Every 5 minutes, code checks that the leveraged fund's stop at the broker covers every share.

Times are US Eastern. Every job first checks the market calendar. The trend flips about once a year, so most months change little.

The trend dial

How much of the S&P 500 the core owns. A 2% buffer around the average keeps it from flipping on noise, and from selling, and paying tax, more than it must.

StateExposureHeld as
Up-trend1.3x70% S&P fund, 30% 2x S&P fund
Turbulent1.0x at mostVolatility above 25% a year: no leverage
Halted1.0x at most25% below the peak: the 2x fund sold the next day
Down-trend0.5x50% S&P fund, 50% T-bills

The core is 80% of the account; Claude's satellite is the other 20%.

Limits the model can't override

Guardrails are pure functions with full branch coverage. They run on every decision the model proposes, and anything outside them is clipped or rejected.

1.5xthe most S&P exposure the core can ever reach
±0.2xClaude's shift of the core, downward only when the rules say hold less
10%of the account at most in any satellite ETF
0margin: leverage only through the 2x fund
−30%stop at the broker on the 2x fund, raised monthly
−25%drawdown halt: no leverage until the trend turns up again
  • Prices come from code. The model chooses weights; it never names a price.
  • The leveraged fund's stop always rests at the broker. No halt, kill switch or error path ever cancels it or blocks a sale.
  • On doubt, less risk. Missing data, a model error or a calendar mismatch can only hold or reduce exposure.

How it's judged

The rules were backtested under a test fixed in advance; the LLM can't be honestly backtested, so its value is measured forward against a rules-only twin, and every decision is logged.

Backtest: passed

1928–2026, after Israeli tax: +9.2% a year against +8.7% for the S&P held, a worst drawdown of 68% against 85%, and ahead in 69% of ten-year windows. A thin edge, from the long bear markets; since the rules were published, a tie.

The twin

The same rules on the whole account, simulated beside the real book every day. Whatever the LLM does shows up as the difference.

Scorecard

Each month's tilts and expectations are scored against what happened, before and after the estimated tax.

The test was written down before any data was read, and run once. Two earlier stock-picking designs failed theirs and were dropped.

Build status

  1. ✓Foundations and spikes
  2. ✓Data layer and skeleton
  3. ✓Indicators and regime
  4. ✓The portfolio rules and their backtest
  5. ✓LLM layer
  6. ✓Execution
  7. 6Paper trial and dashboard

The first designs picked stocks: chart-pattern breakouts in the style of Minervini, O'Neil and Kullamägi, then a momentum book. Both failed their backtests in October 2026, so the system became a portfolio manager.

The paper trial runs on a $100,000 Alpaca paper account for twelve months; its results are at the top of this page.