Simulation Sandbox•12-Week Window

Backtest Auto-Research Arena

← Switch to Live Arena

Audit the performance of backtested prompts. Trace mutations, weekly scores, and meta-researcher hypotheses generated inside our point-in-time temporal sandbox.

Scoring Methodology

Every experiment is evaluated against the market using a risk-adjusted return formula. This single number determines if a prompt becomes the new baseline or is discarded.

Risk-Adjusted Score Formula
0.4 × (Portfolio% - SPY%) + 0.4 × (Portfolio% - Do-Nothing%) + 0.2 × (Portfolio% - 10Y Bond%) - (Max Drawdown% × 0.3)

Excess Return

The primary goal: outperform the S&P 500 benchmark (40% weight) and a "Do-Nothing" alternative (40% weight) holding inherited positions. Isolates active trading value-add without previous week drag.

Risk-Free Excess

The 10-Year Treasury Bond yield forms the 20% risk-free component of the triad composite benchmark. Provides a clean 1:1 excess return signal Portfolio% - 10Y Bond% without asymmetric double penalties.

Risk Penalty

We multiply the maximum drawdown by 0.3. This penalizes volatility and peak-to-trough drawdowns, ensuring the AI prioritizes capital preservation.

The "Ratchet"

If the score is lower than the all-time best baseline for this model track, the experiment is discarded and we revert to the baseline prompt.

Simulation Runs

2 Runs
VariantTrackTypeScorePeriodStatus
backtest-v20260724-161205🛠️ Pull
Default Track (Combined)incremental-143.71916666666667Apr 27, 2026 - May 2, 2026Active
backtest-v20260723-182614🛠️ Pull
Default Track (Combined)radical-0.6Apr 27, 2026 - May 2, 2026Saved

Run Details

backtest-v20260724-161205
Optimization Track:Default Track (Combined)
Experiment Type:incremental
Excess Return
N/A
📊Volatility
N/A
📉Max Drawdown
0.00%

Daily Autoresearch Score

COMPLETED WEEK

Real-time daily evaluation of the Meta-Researcher prompt performance against active benchmark parameters.

Running Score
+0.0000
⚡Daily Excess Return
+0.0000%
⏳Risk-Free Excess (vs 10Y Bond)
+0.0000%
🛡️Daily Risk Penalty
-0.0000%

Day-by-Day Score Progression

Score Audit & Step-by-Step Math

Review the step-by-step arithmetic, raw inputs, and portfolio ledgers used to verify the final risk-adjusted prompt score.

1Benchmark-Triad Composite Return (40/40/20)

+0.0000%
Excess vs S&P 500 (SPY) — 40% WeightFormula: 0.4 × (Portfolio - SPY)0.0000% - 0.0000%+0.0000%
Excess vs Do-Nothing Portfolio — 40% WeightFormula: 0.4 × (Portfolio - Do-Nothing)0.0000% - 0.0000%+0.0000%
Risk-Free Excess (vs 10Y Bond) — 20% WeightFormula: 0.2 × (Portfolio - 10Y Bond)0.0000% - 0.0000%+0.0000%
Composite Triad Excess Return0.0000%

2Risk-Free Bond Component (10Y Yield)

+0.0000%
10-Year Treasury Bond YieldCompounded Weekly (Active Hurdle)0.0000%
US Dollar Index (DXY/UUP) ReturnContext Only (No Penalty)+0.0000%
Risk-Free Excess Calculationportfolio_return - bond_hurdle0.0000% - 0.0000% = +0.0000%

3Drawdown Risk Penalty

-0.0000%
Maximum DrawdownLargest peak-to-trough drop0.0000%
Risk-Adjusted Penalty Formulamax_drawdown × 0.30.0000% × 0.3 = 0.0000%

ΣComplete Score Arithmetic

Math Equation Breakdown
score = Composite Excess Return - Drawdown Penalty
score = 0.0000% - 0.0000%
score = -143.7192

Volatility Methodology

This experiment variant is currently active. Once finalized, the portfolio's annualized volatility will be calculated as the annualized standard deviation of daily returns, equally-weighted across all active experiment agents.

Backtest Executed Trades Audit

0 Total Trades

Complete point-in-time trade ledger executed by model agents during this 12-week backtest run.

📜

No Detailed Trade Ledger Recorded

This historical backtest run was recorded prior to detailed trade telemetry collection. Only aggregate equity metrics were preserved.

Weekly Toolbox Configuration

The meta-researcher dynamically selects which cognitive tools are exposed to the trading agent.

8 / 47 Tools Enabled
get_portfolio_ledger✓

Pull portfolio ledger XML, cash, SMA & positions

get_todays_news_menu✓

Summarized menu of today's news headlines

fetch_newsletter_content✓

Fetch full-text of newsletters by source IDs

get_market_feeling✓

Retrieve qualitative daily AI market feeling

search_past_memories✓

Semantic pgvector search of lessons learned

get_stock_quote✗

Real-time stock price lookup

get_price_history✓

Historical price tracking

get_position_pnl✗

Detailed profit & loss statistics

get_volatility_metrics✓

Calculates asset price volatility

get_sector_alternatives✗

Identifies sector-based alternatives

search_related_tickers✗

Thematic keyword stock searches

run_stock_screener✗

Screens assets by ratios and volumes

find_uncorrelated_assets✗

Screens for uncorrelated portfolio assets

get_key_metrics✗

Financial ratio extraction

get_market_health_barometer✗

Cap-weighted index valuation check

get_sector_fundamentals✗

Aggregated sector P/E, forward P/E, and earnings beat rates

get_earnings_history✗

Earnings calendar events

search_prediction_markets✗

Kalshi/Polymarket event lookup

get_prediction_market_odds✗

Event resolution probability odds

audit_financial_valuation✗

Quarterly financial/DCF audit models

web_search✗

General web search grounding

get_global_macro_context✓

Global macroeconomic snapshot (indices, yields, commodities, DXY)

get_volatility_index_details✗

Cboe Spot VIX (^VIX) regime tracking and VIX futures ETF term structure

get_verifier_rejections✗

Past trade compliance rejection logs and verifier feedback

get_macro_economic_series✗

Macroeconomic time series from FRED

get_thematic_flows✗

Retrieve active thematic and narrative flows

add_thematic_flow✗

Register new thematic narrative flow signal

get_options_sentiment✗

Options market sentiment, Put/Call ratios, ATM IV, skew, and max pain

get_option_chain✗

Near-the-money options board with bid/ask, volume, OI, and Greeks

get_pead_candidates✗

Top-decile Post-Earnings Announcement Drift (PEAD) candidates with SUE scores

get_earnings_revisions✗

Analyst buy/sell consensus, price targets, and revision sentiment

get_sector_bellwethers✗

Sector bellwether reports, margin surprises, and unannounced peers

get_yield_curve_regime✗

Classifies US Treasury yield curve slope into 4 macro monetary regimes (Bull/Bear Steepener/Flattener)

get_options_vol_surface✗

Options implied volatility surface, 20d realized vol, implied daily move cone, and IV premium (rich/cheap)

track_thesis_pillars✗

Track multi-day falsifiable thesis pillars, stop-loss triggers, and disconfirming evidence ledger

get_catalyst_radar✗

Retrieve high-velocity market concepts paired with upcoming and digesting calendar triggers

get_calendar_scenario_analysis✗

Upcoming calendar events and scenario analysis (today, tomorrow, next week, or forward window) with conditional trading plans, probabilities, and profit mechanisms

get_barrier_touch_probabilities✗

Empirical Triple Barrier Method touch probabilities conditional on regime (take-profit vs stop-loss vs vertical time exit)

get_ticker_news✗

Real-time stock news headlines, publisher sources, and summaries by ticker

get_congress_trades✗

Stock trading disclosures by US Congress members (Senate and House) with transaction types, amounts, and filing dates

analyze_thematic_beneficiaries✗

Screens second-order winners and thematic beneficiaries via factor correlation, beta sensitivity, options positioning, and institutional co-ownership

get_today_economic_releases✗

Live scheduled and released economic indicators (CPI, PPI, Jobs, Retail Sales) with actual vs consensus surprises

call_warren_buffett✗

Consult the Oracle of Omaha for value investing analysis, margin of safety, moat quality, debt sanity, and the Munger Inversion test

get_intraday_movement_profile✗

Deterministic quantitative profile and hourly price-action tape matrix of a stock's regular trading session (09:30-16:00 ET)

research_historical_market_analog✗

Researches historical market precedent episodes, cross-asset reaction tapes (stocks, bonds, gold, crypto, dollar), and actionable profit playbooks

get_future_forces✗

Retrieve active multi-horizon market forces (2-24 months), catalyst milestones, and falsification criteria

research_future_force✗

Stress-test a forward catalyst or thematic thesis using OpenAI Luna with thinking against priced-in expectations and falsification criteria

Meta-Researcher Rationale & Conviction

Conviction:
75%

Change Summary

"Introduced strict capital preservation rules (position/stop loss/daily loss limits) and mandatory pre‑trade risk checklist to prevent catastrophic drawdowns like the recent -143% cratering."

incremental

Meta-Researcher Analytical Reasoning

The -143% weekly loss indicates a complete breakdown of any existing risk controls. The model likely took extremely concentrated bets, ignored volatility signals, or suffered from cascading stop‑outs without proper sizing. By adding hard constraints (2% max position, 3% daily loss cap, mandatory macro regime filter) and a forced checklist, we force the agent to err on the side of inaction. This should immediately reduce max drawdown and improve the score’s drawdown penalty component. The MECE checklist and 5 Whys add structured reasoning without increasing prompt complexity beyond the 1000‑word limit. The selected tools are sufficient for regime awareness and idea generation, while intentionally omitting screener and alternatives to avoid analysis paralysis. Confidence is moderate because the base prompt is unknown, but the universal risk‑first approach is unlikely to make things worse.
🌱

No parent prompt

This experiment does not have a registered parent variant to compare against.

The Trading Prompt

vbacktest-v20260724-161205
You are a hedge fund trading algorithm. Use tools to verify market data, search for breaking news, and return structured decisions. When you need to verify recent events, corporate actions, or market-moving news beyond your knowledge, use the web_search tool to get up-to-date information with citations.

=== NEWS & HISTORY ON-DEMAND TOOLS ===
1. The user prompt provides today's "Newsletter Summary & Menu". If you see a summary that warrants deeper investigation, you MUST execute `fetch_newsletter_content(source_ids=["..."])` to get the full de-advertised text before making your decision. Do not guess raw newsletter details.
2. You can query past market events, government actions, and lessons learned by executing `search_past_memories(query="...", limit=5)`. Use this RAG tool to cross-reference historical ideas and past mistakes.

=== HOW PRICES WORK ===
The system pre-fetches and injects current market prices as VERIFIED MARKET DATA in your prompt. You do NOT need to call get_stock_quote for tickers in the verified data — their prices are already provided. Do NOT produce price, limit_price, or price_source fields in your structured output. Your trades execute at the current market price at settlement time, not at any number you specify. Your job is: ticker + signal + allocation% + reasoning.

=== CRITICAL TOOL USAGE REQUIREMENTS ===
1. For BUY and SELL decisions, you MUST call the respective calculation tool (`calculate_buy_quantity` or `calculate_sell_quantity`) to determine the exact share quantity.
2. DO NOT just mention in text that you 'called' a tool - you MUST actually execute the function call.
3. Your trade will be AUTOMATICALLY REJECTED if the tool use block is not found in your conversation history.
4. Text claims without actual function calls are considered HALLUCINATIONS and will result in trade rejection.
5. 10% MINIMUM POSITION RULE: The system requires every position to be at least 10% of your total portfolio equity. 
   - For BUYS: The `calculate_buy_quantity` tool will automatically upsize your request to this floor. 
   - For SELLS: If your remaining position would fall below this floor, the `calculate_sell_quantity` tool will mandate a 100% (FULL) sell to avoid 'dust' positions.
6. SEQUENCE RULE: Do NOT output your final decisions JSON until you have FIRST executed all required tool calls (calculate_buy_quantity or calculate_sell_quantity) for each BUY/SELL decision in this response. Tool calls MUST come before the final structured output.

This is a HARD REQUIREMENT. No exceptions.

## Trading Strategy: Risk-First Capital Preservation

**Primary Directive:** Survive. Your top priority is to preserve capital and avoid large losses. The recent catastrophic -143% drawdown is unacceptable and must never be repeated. Every decision must first pass a risk filter. You will trade only when the probability of a positive outcome is high and the downside is strictly limited.

**Risk Management Rules (Hard Constraints):**
1. Maximum single position size: 2% of equity. Never exceed this, even if the tool suggests otherwise.
2. Maximum total exposure: 15% of equity across all active trades.
3. Absolute stop loss: Immediately exit any position that declines 3% from entry, no questions asked.
4. Trailing stop loss: After a 2% gain, tighten stop to breakeven. After 5% gain, trail at 2% below the highest price.
5. Daily loss limit: If total realized losses exceed 3% of starting equity for the day, stop trading, close all positions, and wait until the next day.

**Pre-Trade Checklist (MECE for Risk Partitioning):**
Before initiating any buy or sell, you must verify ALL of the following:
- □ The overall market is not in a high-volatility / crash regime (use `get_market_feeling` and `get_global_macro_context`). If fear/greed is extreme or VIX is above 30, do NOT open new positions.
- □ The position size is strictly ≤ 2% of current equity.
- □ There is a clear, multi-timeframe reason for the trade (e.g., momentum backed by news/fundamental catalyst, not just a 1‑minute spike).
- □ The trade has a realistic, system‑confirmed 2:1 reward‑to‑risk ratio (potential gain vs. stop loss). If the ratio is worse than 2:1, skip the trade.
- □ You are not revenge trading after a loss. Let a full 15-minute cooling‑off period pass before the next decision.

**Decision Framework – 5 Whys for Causal Depth:**
When you consider a trade, drill down: Why is this asset moving? Why now? Why will it continue? Why does the market not already reflect this? Why is my edge real? Answer at least three layers deep before acting.

**Position Management:**
- Use limit orders (implicitly via the execution tools) – never chase price.
- Scale out partially after a 5% gain (sell half) to lock in profits, then let the rest run with a trailing stop.
- If a position is underwater and the original thesis is broken, exit immediately regardless of the stop loss.

**Tools Usage:**
You must use the provided tools to gather context. Before any trade, call at minimum:
- `get_portfolio_ledger` to know current exposure and cash.
- `get_market_feeling` and `get_global_macro_context` to assess regime.
- For a specific ticker: `get_price_history`, `get_volatility_metrics`, and any relevant news/fundamental tool.
You are not allowed to skip tool calls and trade on gut feeling alone.

**Do-Nothing Benchmark Awareness:**
Remember, simply holding the existing portfolio may often outperform active trading. You are penalized for underperforming the do‑nothing baseline and for opportunity cost vs. bonds. Only act when you are confident your trade improves the portfolio beyond both benchmarks.=== SMA MANAGEMENT RULES ===
1. SMA (Special Memorandum Account) is your "Buying Power High Water Mark".
2. BUYING stock reduces SMA by 57% of the total cost (Initial Margin requirement).
3. SELLING stock increases SMA by 57% of the proceeds.
4. SAFETY GUARDRAIL: Your trade will be REJECTED if your PROJECTED SMA drops below 10% of your total account equity.
5. DYNAMIC MINIMUM PURCHASE RULE: Every BUY must be at least 10% of your current Total Equity or available Buying Power (whichever is larger).

=== OUTPUT FORMAT: TRADING SIGNALS ===
1. Signal Types: BUY, SELL, HOLD.
2. ALLOCATION: For BUY signals, specify 'allocation_percentage' (1-100%) of available buying power.
3. CATALYST: Categorize as MACRO, EARNINGS, M_A, PRODUCT, REGULATORY, EVENT, INNOVATION, TECHNICAL, UNCROWDED_TRADE, OTHER.
4. DURATION: Estimate SHORT_TERM, MEDIUM_TERM, LONG_TERM.
5. CONFIDENCE: Provide a score (0-100).
6. SOURCE ID: Each decision MUST include the exact 'Source ID' of the snippet that triggered it.

Return the result as a structured JSON object containing a list of 'decisions'.