Paper trading. No real money is invested and nobody earned these results. Every figure here is hypothetical. The full disclosures →
HYPOTHETICAL PERFORMANCE These are paper-trading portfolios. No client money is invested, no orders are routed to any venue, and no result shown here was achieved with real capital. Hypothetical results have inherent limitations and do not reflect the effect of real order flow on price.
AI Portfolios
The public record of AI-managed portfolios.

P06 · Retired

Intraday AI Lab (EXPERIMENTAL)

by AI Portfolios

$100,000
+$0 (0.00%)
Since 2026-08-14 · started at $100,000
All time
0.00%
Holdings
0
Risk level
extreme
What the AI said

AI-generated. All quantitative claims traced to the published fact pack. The mandate restricts new entries after 14:30 ET, and the fact pack timestamp shows 19:45 UTC (approximately 15:45 ET), placing us firmly in the PAUSE_PAST_ENTRY_CUTOFF risk state. The portfolio currently holds zero positions (pf.position_count) …

About

Intraday trading is where costs dominate and where an information disadvantage is largest. The model here sees data that is at minimum 15 minutes stale, pays the full spread on both sides, and pays every regulatory fee. If it still makes money, that is interesting. If it does not, that is a useful public result and the portfolio stays visible forever.

Follow Intraday AI Lab (EXPERIMENTAL)

This is the simple view. Nothing has been removed — the decision records, the refused proposals, the AI's own words, the cost model, the published limits and the hash chain are all in Advanced, which is the switch in the header. How to verify any of it →

Showing every layer. Pick Simple or Advanced in the header to choose one — nothing is removed either way, and the full record is always in this page.

Home / portfolios / P06

Intraday AI Lab (EXPERIMENTAL)

P06retiredextreme riskrulebook v1.4.0rank and explain
RetiredRETIRED

This book is closed. Its record stays published in full; retirement is a state transition recorded as an event, not a deletion.

This portfolio is retired. It is preserved unedited, it appears in every aggregate statistic on this site, and it was never deleted. It never traded: it was withdrawn before launch, so it has no results to report and contributes nothing numerically. It is published because a reader who cannot see what was withdrawn cannot judge what remains. Retired flat, mid-era-2, on the operator's decision of 2026-08-18. The book publishes five decision instants a session and keeps three: `d1100` and `d1300` are permanently missed, each with seven older instants behind it back to this mandate's effective date, and the engine halted on HALT_STALE_DATA at both on 2026-08-17. The live site was publishing `health=SCHEDULE_MISSED` for it, so the gap between the published cadence and the kept one was already visible to readers. The cause was never diagnosed and this retirement does not claim it was: the decision is that the book is not worth the cost of diagnosing, taken after the platform had already spent several sessions on its tick. It retires holding its full 100,000 of starting capital and no positions, so unlike P02 it strands no state and leaves no open reconciliation.

Test, in public and with realistic costs, whether an LLM given only delayed intraday data can produce positive expectancy over a session horizon, flat by the close every single day.

Intraday AI Lab (EXPERIMENTAL)'s decisions, live →The public decision feed posts every decision when it's made — before settlement, refusals included. On Telegram, free.
Cadence — when it last decided, and when it next will
Next decision due
2026-09-28 13:45Z
Decision slots
5 · 1 non-deciding
SlotLast dueAnsweredStatus
d0945
45 9 * * MON-FRI · America/New_York
—neverunchecked
This slot marks and reports; it never calls the model, so it leaves no decision record to check it against.
d1100
0 11 * * MON-FRI · America/New_York
—neverunchecked
This slot marks and reports; it never calls the model, so it leaves no decision record to check it against.
d1300
0 13 * * MON-FRI · America/New_York
—neverunchecked
This slot marks and reports; it never calls the model, so it leaves no decision record to check it against.
d1430
30 14 * * MON-FRI · America/New_York
—neverunchecked
This slot marks and reports; it never calls the model, so it leaves no decision record to check it against.
d1545
45 15 * * MON-FRI · America/New_York
—neverunchecked
This slot marks and reports; it never calls the model, so it leaves no decision record to check it against.
eod reconcile
30 16 * * MON-FRI · America/New_York
—n/adoes not decide
This slot marks and reports; it never calls the model, so it leaves no decision record to check it against.

Catch-up policy. A decision instant that passes unanswered is run on the next pass, once, and the record stamps both instants — when it was due and when it actually ran. Past the catch-up window the gap stays open and is published as missed rather than backfilled.

Track record

Total return
0.00%
net of modelled costs
Max drawdown
0.00%
Live since
2026-08-14
2 daily observations completed · 7 NAV marks
Cost drag
0.00%
$0 in explicit fees
Sharpe
withheld
sample too short to annualise — see the display rules on the leaderboard
Gross return
0.00%
before costs

Fewer than 60 daily observations. Annualised return, volatility, Sharpe, Sortino and Calmar are withheld: annualising a short sample produces numbers that look precise and are not.

NAV — every point is a recorded close, none can be edited
2026-08-14dashed line = starting capital2026-08-17

very short record — 7 observations The shape of a line this short is dominated by its first and last points. It is published because hiding it would be worse, and labelled because at this length it is not yet evidence of anything.

Our own marks from our own fills (nothing here is vendor price data). Deliberately monochrome: colour that codes "good" and "bad" is an editorial thumb on the scale.

Starting capital
$100,000own work — never restated
Benchmarks
CASH_0PCT · SPY, SGOV
Mandate hash
df458dc7e784a1412fac969c1c6994ec2bfde973687d1e6f80240ea2952adef6

Recent decisions

Every run, including the ones that traded nothing: the committed fact-pack hash (written to the audit chain before anything was proposed), the AI's published view, each proposal with the rule engine's verdict, and the fills that resulted. Rejected proposals stay up with their reason codes — a reader who can only see the trades that happened cannot judge the discipline that refused the ones that didn't.

Every card carries the instant it was decided at, because every card is a photograph. The facts in it were frozen when the run was committed and are never revised — a view that said "the platform has closed zero trades" was true at its timestamp and reads as a claim about today unless the card says otherwise. Consecutive runs that halted on identical codes are compressed into one card with a visible count and every run id listed; nothing is dropped.

Model view at 2026-08-17 19:45Zfacts frozen when the run was committed, not updated — every figure the AI cites was true then and is never revised herefact pack 7d235fd4c097…
intradayclaude-sonnet-4-5

AI-generated. All quantitative claims traced to the published fact pack. The mandate restricts new entries after 14:30 ET, and the fact pack timestamp shows 19:45 UTC (approximately 15:45 ET), placing us firmly in the PAUSE_PAST_ENTRY_CUTOFF risk state. The portfolio currently holds zero positions (pf.position_count) and has 100% cash (pf.cash_pct), meaning we are completely flat. Given the intraday mandate's requirement to be "flat by the close every single day" and the entry cutoff having already passed, the appropriate action is to remain flat and not initiate any new positions. The mandate is operating as designed: we are past the entry window, hold no positions that require exit management, and will close the session flat as required. The market has shown mixed behavior across sectors. Technology shows strength over 20 days (px.MSFT.ret_20d = 25.7935%, px.NFLX.ret_20d = 13.3575%,…

ProposalConvictionLifecycleCodes
HOLD SPY3PROPOSED→GATES PASSED→NO ORDER
HOLD is a decision not to trade — no order is created
—

Reading the lifecycle. PROPOSED and GATES PASSED are published facts. QUEUED is shown as reached only where a fill proves it — the payload publishes no order record. FILLED / EXPIRED stays undecided without a matching fill, because an accepted order can price on a later session under the T+1 rule, and calling that "expired" would be inventing the outcome. "Accepted" alone used to sit in this column and read as though the trade had happened.

fact pack 7d235fd4c0975f5d… · run run_ab111960ab454e55
Model view at 2026-08-17 18:30Zfacts frozen when the run was committed, not updated — every figure the AI cites was true then and is never revised herefact pack 4263103faeec…
intradayabstainedclaude-sonnet-4-5

AI-generated. All quantitative claims traced to the published fact pack. This is the first intraday decision with zero positions and a clean $100,000 NAV (pf.nav, pf.cash). The fact pack provides only end-of-day data through close 2026-08-17 (px.*.close) plus derived returns, ATR, and volatility, but no intraday price snapshots, current bid/ask, or real-time levels. For an intraday mandate requiring entry and mandatory flatten-by-close, I lack actionable timing signals. The data shows recent performance divergences: AMD has very strong momentum (+6.4% 5d, +24.2% 60d; px.AMD.ret_5d, px.AMD.ret_60d) with extreme volatility (5.39% daily; px.AMD.vol_daily_pct). MSFT posted the strongest 20d return (+25.8%; px.MSFT.ret_20d) but is down slightly over 5d (-0.9%; px.MSFT.ret_5d). XLE shows strong near-term momentum (+7.7% 5d, +7.3% 20d; px.XLE.ret_5d, px.XLE.ret_20d). GLD had strong 20d (+9.0%;…

fact pack 4263103faeecc5bc… · run run_8544835c3d9b4366
Model view at 2026-08-17 17:02Zfacts frozen when the run was committed, not updated — every figure the AI cites was true then and is never revised here
halted×2 consecutive identical halts

2 consecutive runs halted on the same codes, from 2026-08-17 15:02Z to 2026-08-17 17:02Z. They are shown as one card because 2 identical cards would bury every run that is not identical. Nothing is dropped: the count is above, the codes are below, and every run id in the group is listed at the bottom of this card.

Why it halted
Halt codeThe rule it firedThresholdEnforced at
HALT_STALE_DATAStale-data halt
data integrity
180 minutesgate 3 — HALT_STALE_DATA

A halt stops NEW decisions. Stops, forced exits and the NAV mark still run — they are never gated by a halt — so a halted run is a run that decided nothing, not a run that did nothing.

What is missing from this diagnosis. The published record carries the halt CODE and the rule it fired. It does not carry the data provider that triggered it, the observed data age at halt time, or the affected symbols — those live in the underlying audit record's issue list and are not projected into the published payload.

runs in this group: run_ac8484e52b3246b3, run_dced10326fbb4226
Model view at 2026-08-17 13:45Zfacts frozen when the run was committed, not updated — every figure the AI cites was true then and is never revised herefact pack 4c179cbba936…
intradayabstainedclaude-sonnet-4-5

AI-generated. All quantitative claims traced to the published fact pack. The fact pack shows a portfolio at breakeven (pf.total_return_pct = 0 pct, nav_usd = 100,000 USD) with 100% cash (pf.cash_pct = 100 pct) and zero current positions (pf.position_count = 0). This is an intraday mandate requiring flat positions by day's end, with data delayed by at least 15 minutes from the 13:45 timestamp. Looking at recent momentum across sectors: Energy (XLE) shows the strongest short-term performance with ret_5d = 7.6696 pct and ret_20d = 7.3336 pct. Semiconductors (AMD) show ret_5d = 6.4196 pct with exceptional 252-day performance (ret_252d = 178.9231 pct). Technology broadly (MSFT) shows strong 20-day momentum (ret_20d = 25.7935 pct) despite weak 5-day performance (ret_5d = -0.918 pct). Conversely, several names show recent weakness: AVGO ret_5d = -8.1284 pct, AMZN ret_5d = -4.31 pct, AAPL ret…

ProposalConvictionLifecycleCodes
HOLD SPY2PROPOSED→GATES PASSED→NO ORDER
HOLD is a decision not to trade — no order is created
—

Reading the lifecycle. PROPOSED and GATES PASSED are published facts. QUEUED is shown as reached only where a fill proves it — the payload publishes no order record. FILLED / EXPIRED stays undecided without a matching fill, because an accepted order can price on a later session under the T+1 rule, and calling that "expired" would be inventing the outcome. "Accepted" alone used to sit in this column and read as though the trade had happened.

fact pack 4c179cbba936961c… · run run_f3e6cf012a6e4cbc
Model view at 2026-08-14 19:45Zfacts frozen when the run was committed, not updated — every figure the AI cites was true then and is never revised herefact pack 8467cd749ca4…
intradayabstainedclaude-sonnet-4-5

AI-generated. All quantitative claims traced to the published fact pack. The fact pack shows the portfolio is 100% cash (pf.cash_pct) with zero current positions (pf.position_count) and a NAV of $100,000 (pf.nav). The timestamp is 19:45:04 UTC on 2026-08-14, which corresponds to 15:45 ET. The mandate has a PAUSE_PAST_ENTRY_CUTOFF risk state indicating that new entries are blocked after 14:30 ET—we are over one hour past that threshold. Although we have 6 available position slots (pf.position_slots_free), the entry cutoff prevents any new BUY actions. Reviewing market conditions from the fact pack: broad indices show positive 5-day momentum (SPY +1.21% px.SPY.ret_5d, QQQ +2.44% px.QQQ.ret_5d, IWM +1.76% px.IWM.ret_5d). Within tech, semiconductors are particularly strong on a 5-day basis (SMH +3.09% px.SMH.ret_5d, NVDA +2.88% px.NVDA.ret_5d, AMD -1.28% px.AMD.ret_5d). Energy shows streng…

ProposalConvictionLifecycleCodes
HOLD SPY3PROPOSED→GATES PASSED→NO ORDER
HOLD is a decision not to trade — no order is created
—

Reading the lifecycle. PROPOSED and GATES PASSED are published facts. QUEUED is shown as reached only where a fill proves it — the payload publishes no order record. FILLED / EXPIRED stays undecided without a matching fill, because an accepted order can price on a later session under the T+1 rule, and calling that "expired" would be inventing the outcome. "Accepted" alone used to sit in this column and read as though the trade had happened.

fact pack 8467cd749ca4b0a3… · run run_cb5749de14244ff0
Model view at 2026-08-14 18:30Zfacts frozen when the run was committed, not updated — every figure the AI cites was true then and is never revised herefact pack 948811800ec4…
intradayabstainedclaude-sonnet-4-5

AI-generated. All quantitative claims traced to the published fact pack. The portfolio is at day one with zero positions and minimal historical fees (pf.fees_paid: 0.63 USD), effectively a fresh start with 100,000 USD in cash (pf.cash, pf.cash_pct). The mandate requires flat-by-close intraday trading with delayed (15+ minute) data and full transaction costs. Recent momentum diverges sharply across sectors: Energy (XLE) shows strong 5d (+4.99%, px.XLE.ret_5d) and 20d (+7.09%, px.XLE.ret_20d) gains. Technology shows mixed signals—semiconductors remain positive (SMH: +3.09% 5d, px.SMH.ret_5d; NVDA: +2.88% 5d, px.NVDA.ret_5d) while mega-cap tech is weaker (AAPL: -2.29% 5d, px.AAPL.ret_5d; GOOGL: -3.18% 5d, px.GOOGL.ret_5d). Gold (GLD) rallied +2.38% over 5d (px.GLD.ret_5d) and +9.32% over 20d (px.GLD.ret_20d), suggesting flight-to-safety or inflation hedging. Volatility metrics favor co…

ProposalConvictionLifecycleCodes
EXPLAIN SPY3PROPOSED→REFUSED AT GATES
no order was created
REJECT_ACTION_NOT_PERMITTED

Reading the lifecycle. PROPOSED and GATES PASSED are published facts. QUEUED is shown as reached only where a fill proves it — the payload publishes no order record. FILLED / EXPIRED stays undecided without a matching fill, because an accepted order can price on a later session under the T+1 rule, and calling that "expired" would be inventing the outcome. "Accepted" alone used to sit in this column and read as though the trade had happened.

fact pack 948811800ec44b7a… · run run_5c6105f913904e47

What the AI is allowed to do

This portfolio's AI ranks candidates and explains its reasoning. It proposes direction and conviction only. Every price, quantity, weight and risk limit is computed by deterministic code the model cannot see or influence.

It may propose

BUY · SELL · HOLD · TIGHTEN_STOP · FLATTEN

At most 2 proposals per run, each carrying a direction, a conviction from 1 to 5, a rationale, and references to the facts it used.

It cannot
  • set a price
  • set a quantity or share count
  • set a weight or position size
  • set or move a risk limit
  • execute anything

Model tier fast · prompt version P06-v1. Any change to the decider or the prompt is recorded as a MODEL_CHANGE event in the audit chain — without it the record would be a chimera of two systems presented as one.

Enforced limits

Every limit below names the code path that enforces it. This is not decoration: a limit that is published but never fires is worse than no limit, because a reader has no way to tell the difference. A test walks every mandate, drives the engine into the state each declared control claims to protect against, and fails the build if nothing stops it.

exposure
LimitValueEnforced by
Maximum gross exposure45.0%gate 2 — size_order
Maximum single sector100.0%gate 2 — size_order
permissions
LimitValueEnforced by
Shortingprohibitedgate 1 — proposal validation
Derivativesprohibitedgate 1 — proposal validation
Marginprohibitedgate 1 — proposal validation
sizing
LimitValueEnforced by
Maximum positions6gate 3 — BREACH_MAX_POSITIONS (portfolio limit check)
Minimum new position3.0%gate 2 — size_order
Maximum order as % of ADV0.05%gate 2 — size_order
loss limits
LimitValueEnforced by
Daily loss limit1.5%gate 3 — HALT_DAILY_LOSS_LIMIT (halts and flattens)
Weekly loss limit4.0%gate 3 — HALT_WEEKLY_LOSS_LIMIT
Monthly loss limit8.0%gate 3 — HALT_MONTHLY_LOSS_LIMIT
data integrity
LimitValueEnforced by
Stale-data halt180 minutesgate 3 — HALT_STALE_DATA
drawdown ladder
LimitValueEnforced by
At −5.0% drawdownalert, scale_risk_budget:0.6gate 3 — drawdown ladder
At −10.0% drawdownalert, scale_risk_budget:0.35, publish_commentarygate 3 — drawdown ladder
At −20.0% drawdownsuspend_portfolio, publish_post_mortemgate 3 — drawdown ladder
At −30.0% drawdowngraveyardgate 3 — drawdown ladder
turnover
LimitValueEnforced by
Max round trips per day6entry block — PAUSE_TURNOVER_CAP_REACHED (never blocks an exit)
Max round trips per week20entry block — PAUSE_TURNOVER_CAP_REACHED (never blocks an exit)
circuit breakers
LimitValueEnforced by
Halt trading if price gap unexplained pct10gate 3 — circuit breaker
Halt trading if vix above40gate 3 — circuit breaker
Halt trading if market wide circuit breakertruegate 3 — circuit breaker
Halt trading if factpack hash mismatchtruegate 3 — circuit breaker
Halt trading first n minutes of session15gate 3 — circuit breaker

Execution

Cost profile
intraday_punitive
Fill convention
vwap_window
Decision → order latency
90s
VWAP window
15 minutes

Fills are struck on a VWAP window that begins strictly after the decision timestamp plus a latency delay. No fill can use information from the bar in which the decision was made, so look-ahead is arithmetically impossible rather than merely avoided.

Philosophy

Intraday trading is where costs dominate and where an information disadvantage is largest. The model here sees data that is at minimum 15 minutes stale, pays the full spread on both sides, and pays every regulatory fee. If it still makes money, that is interesting. If it does not, that is a useful public result and the portfolio stays visible forever.

Review schedule

JobCronTimezoneMakes a decision
d094545 9 * * MON-FRIAmerica/New_Yorkyes
d11000 11 * * MON-FRIAmerica/New_Yorkyes
d13000 13 * * MON-FRIAmerica/New_Yorkyes
d143030 14 * * MON-FRIAmerica/New_Yorkyes
d154545 15 * * MON-FRIAmerica/New_Yorkyes
eod reconcile30 16 * * MON-FRIAmerica/New_Yorkno

Published on a fixed, regular schedule. Never event-triggered — no "market is crashing, sell now" alerts, deliberately. This table is the promise; the cadence panel at the top of the page is whether it was kept, instant by instant.

Machine-readable mandate: config/portfolios/P06_intraday_ai_lab.yaml · human rulebook: docs/portfolios/P06_intraday_ai_lab.md · effective from 2026-08-06 (wall clock) · record starts 2026-08-14 (pricing session) · payload 06ec491b8950…

Every trade, as it happens
What each portfolio bought, what it sold and what it lost. Free, on Telegram.
Join →
Or follow @AIPortfolios186 on X, where the same trades are posted.
Live public decision feed.Every decision, fill and refusal, as it is published — including the ones that lose money. Delivered on Telegram, free.Get the feed →or subscribe by RSS/Atom

The same decisions are posted on X as @AIPortfolios186.

Data provided for free by IEX. By accessing or using IEX Historical Data, you agree to the IEX Historical Data Terms of Use. · Powered by CoinGecko · Logos provided by Logo.dev · Company logos identify holdings only and imply no endorsement.