Auto-Research Arena

Switch to Backtest Arena →

Track the evolution of our autonomous trading prompts. Watch the meta-researcher hypothesize, experiment, and ratchet its way to better market performance.

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.

Unified Risk-Adjusted Z-Score Formula
[0.4 × (Portfolio% - SPY%) + 0.4 × (Portfolio% - Do-Nothing%) + 0.2 × (Portfolio% - 10Y Bond%) - (Max Drawdown% × 0.3)] / Weekly Effective Volatility%

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 peak-to-trough drawdowns, ensuring the AI prioritizes capital preservation.

Volatility Normalizer

Divides net excess return by weekly effective volatility max(SPY Vol, Port Vol, 10%) / √52. Grounded in standard deviation (σ) units so volatile market weeks and meme spikes never distort scores.

The "Ratchet"

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

History

27 Experiments
VariantTrackTypeScorePeriodStatus
v20261109-011814🛠️ Pull
Default Track (Combined)
incrementalN/ANov 9, 2026 - Nov 15, 2026Active
v20261102-010624🛠️ Pull
Default Track (Combined)From 0
radical-0.6212Nov 2, 2026 - Nov 8, 2026Discarded
v20261025-234057🛠️ Pull
Default Track (Combined)
incremental0.5925Oct 26, 2026 - Nov 1, 2026Discarded
v20261018-234641🛠️ Pull
Default Track (Combined)
incremental0.4547Oct 19, 2026 - Oct 25, 2026Discarded
v20261012-004842🛠️ Pull
Default Track (Combined)From 0
radical0.9974Oct 12, 2026 - Oct 18, 2026Discarded
v20261005-001759🛠️ Pull
Default Track (Combined)
incremental0.364Oct 5, 2026 - Oct 11, 2026Discarded
v20260928-000543🛠️ Pull
Default Track (Combined)From 0
radical0.1322Sep 28, 2026 - Oct 4, 2026Discarded
v20260920-233957🛠️ Pull
Default Track (Combined)
incremental-0.3946Sep 21, 2026 - Sep 27, 2026Discarded
v20260913-234409🛠️ Pull
Default Track (Combined)
incremental-0.0724Sep 14, 2026 - Sep 20, 2026Discarded
v20260906-232058🛠️ Pull
Default Track (Combined)
incremental0.5368Sep 7, 2026 - Sep 13, 2026Discarded
v20260831-000122🛠️ Pull
Default Track (Combined)
incremental-0.2272Aug 31, 2026 - Sep 6, 2026Discarded
v20260823-221041🛠️ Pull
Default Track (Combined)
incremental-2.2234Aug 24, 2026 - Aug 30, 2026Discarded
v20260816-220952🛠️ Pull
Default Track (Combined)
incremental0.1527Aug 17, 2026 - Aug 23, 2026Discarded
v20260809-221804🛠️ Pull
Default Track (Combined)
incremental0.2297Aug 10, 2026 - Aug 16, 2026Saved
v20260802-224434🛠️ Pull
Default Track (Combined)
incremental-1.6043Aug 3, 2026 - Aug 9, 2026Discarded
v20260726-224747🛠️ Pull
Default Track (Combined)
incremental-6.2278Jul 27, 2026 - Aug 2, 2026Discarded
v20260719-223956🛠️ Pull
Default Track (Combined)
incremental2.5246Jul 20, 2026 - Jul 26, 2026Baseline
v20260712-223711🛠️ Pull
Default Track (Combined)
incremental-0.3775Jul 13, 2026 - Jul 19, 2026Saved
v20260705-221937
Default Track (Combined)
incremental0.3607Jul 6, 2026 - Jul 12, 2026Saved
v20260628-222037
Default Track (Combined)
incremental-0.6878Jun 29, 2026 - Jul 5, 2026Discarded
v20260614-222430
Default Track (Combined)
incrementalN/AJun 15, 2026 - Jun 21, 2026Crashed
v20260607-222143
Default Track (Combined)
incremental-0.4266Jun 8, 2026 - Jun 14, 2026Discarded
v20260531-222012
Default Track (Combined)
incremental-0.7378Jun 1, 2026 - Jun 7, 2026Discarded
v20260524-221848
Default Track (Combined)
incremental-2.3541May 25, 2026 - May 31, 2026Discarded
v20260519-221104
Default Track (Combined)
baseline-0.8109May 12, 2026 - May 19, 2026Saved
v20260517-221731
Default Track (Combined)
incrementalN/AMay 11, 2026 - May 17, 2026Saved
v20260511-174517
Default Track (Combined)
baselineN/AMay 4, 2026 - May 11, 2026Saved

Experiment Details

v20261109-011814
Optimization Track:Default Track (Combined)
Experiment Type:incremental
Excess Return
N/A
📊Volatility
N/A
📉Max Drawdown
N/A

Daily Autoresearch Score

LIVE TRACKING
Day 1 In Progress (First Close 4:00 PM ET)

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

Running Score
Pending
⚡Daily Excess Return
Pending EOD Close
⏳Risk-Free Excess (vs 10Y Bond)
Pending EOD Close
🛡️Daily Risk Penalty
0.00%

Day-by-Day Score Progression

Score Breakdown

This experiment variant is currently active. Performance metrics and the risk-adjusted scoring breakdown will be computed automatically at the close of the trading week.

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.

20 / 54 Tools Enabled

Cognitive Tool Evolution (Pivot Delta)

+ get_thematic_flows(added)
+ get_ticker_news(added)
+ get_verifier_rejections(added)
+ get_market_moving_news(added)
+ get_sector_bellwethers(added)
+ web_search(added)
- get_market_feeling(removed)
- get_earnings_history(removed)
- search_prediction_markets(removed)
- get_prediction_market_odds(removed)
- audit_financial_valuation(removed)
get_portfolio_ledger✓

Pull portfolio ledger XML, cash, buying power & 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✓ new

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✓ new

Past trade compliance rejection logs and verifier feedback

get_macro_economic_series✗

Macroeconomic time series from FRED

get_thematic_flows✓ new

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✓ new

Sector bellwether reports, margin surprises, and unannounced peers

get_treasury_yield_curve✗

Live US Treasury benchmark yields (3M, 2Y, 5Y, 10Y, 30Y) with 1d basis point changes and slope spreads

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✓ new

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

get_insider_trades✗

Corporate insider trading disclosures (SEC Form 4) for C-suite executives, directors, and 10%+ owners with transaction types, amounts, and filing dates

get_whale_holdings✗

13F institutional whale holdings and Schedule 13D/13G beneficial ownership disclosures with co-ownership clusters and top fund positions

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

get_system_portfolios✗

Inspect mechanical system portfolios (mean reversion, momentum trends, sector long/short, intraday SPY) for positions, signals, and benchmark returns

get_market_moving_news✓ new

Retrieve real-time intraday market-moving events, macro prints, and breaking catalysts vetted by TypeSafe Jev

get_government_fiscal_and_spending✗

Retrieve sovereign money creation, TGA cash, fiscal deficits, US/Canadian/EU/Global government budgets & defense/infrastructure priorities, and federal contract awards

get_corporate_spending✗

Retrieve corporate CapEx, R&D, SG&A, buybacks, dividends, M&A cash spend, ROIC, and matched government contract awards for a ticker or hyperscaler basket

Meta-Researcher Rationale & Conviction

Conviction:
68%

Change Summary

"Reverted to the all-time-best opportunity-capture engine and replaced the failed high-beta volatility-budget mandate with a momentum DIRECTION rule (buy strength in rising 50d-MA uptrends, never buy dips in falling trends) plus a compact 10-20%-of-equity sizing/buying-power pre-check that kills the 10%-dust margin rejections."

incremental

Meta-Researcher Analytical Reasoning

The radical volatility-budget prompt produced the worst result in the track's history: -3.15% vs do-nothing +0.67% and SPY -1.90%, with a -3.40% drawdown on a ~$10k equity base. Two distinct failures are visible in the record. First, the forced 85-100% deployment / beta 1.05-1.35 mandate concentrated the book in the AI-infrastructure complex (VRT, DLR, MSFT, AMZN, APP) exactly as it repriced; the 'free risk capacity' argument in the denominator is one-sided — extra beta only helps the numerator when the week is up, and the 0.3x drawdown penalty plus the 0.4-weight do-nothing term punished the loss twice. Second, the audit log shows the anti-chase arithmetic was applied asymmetrically in spirit: the book refused the names that were working (BRK-B at +1.56 sigma, GD +1.99 sigma, LMT, RTX at fresh 20-day highs — all driven by defense/flow catalysts and all passed) while it accumulated names sitting below their 20-day means inside downtrending high-beta themes. That is textbook anti-momentum dip-buying, and it is the actual selection leak. The 30-day meta leaderboard confirms every restraint-flavored block (let_winners_run, cut_losers_fast, disconfirming_evidence_gate, catalyst_expiry_timer, macro_regime_routing, five_whys_causal) has a 0% beat rate with mean deltas of -5 to -15, so I enabled NO modular blocks and instead returned to the baseline's philosophy: OPPORTUNITY CAPTURE (5 Whys, calendar/seasonal, chain-of-events, uncrowded/country-ETF mapping) as the load-bearing engine. The one NEW hypothesis layered on top is a directional quality rule rather than another restraint gate: momentum with confirmation (price above a rising 50d MA, entry within 3 ATR, catalyst carve-out) is a green light at 20-day highs, and a broken 50d MA is a hard no regardless of how cheap it looks. Mechanically this restores the latitude the baseline used to earn its 2.52 while removing the specific behavior that cost -3.8pts of active return this week. I also kept one compressed, purely mechanical module from the failed prompt: the 10-20%-of-equity sizing and buying-power ledger, because 11 of 15 rejections were 'trade value below the $1,000 (10% of equity) minimum' or 'insufficient cash' — on a ~$10k book, a 6-9 name / 10-18% structure sat exactly on the verifier's dust threshold, so re-sizing before proposing converts rejected alpha into executed alpha without restricting any trade idea. I deliberately dropped the three-bucket engine, the Edge Score 0-10 gate, the expectancy formula, and the 85-100% deployment mandate — all four were load-bearing in the losing week and all four are complexity that degrades reasoning quality on both Gemini Flash and DeepSeek Flash. Risk considered: the direction rule can keep the book in cash in a broad downtrend, which underperforms the do-nothing term; I mitigated that by allowing catalyst-within-10-sessions as an alternative confirmation and by keeping the calendar/seasonal and uncrowded-idea engines intact so qualified candidates are always being sourced.
💾Durable Memory Saved for this Track

"On this track the durable leak is anti-momentum dip-buying: the book repeatedly refused catalysts-confirmed leaders at fresh 20-day highs (BRK-B, GD, LMT, RTX) while accumulating high-beta names below their 20-day mean inside broken trends, so the correct fix is a DIRECTION rule (buy strength above a rising 50d MA, never fund a falling one) rather than any additional restraint gate — and on a ~$10k equity base, every order must be pre-sized to 10-20% of equity because sub-10% 'dust' orders are auto-rejected and burn decision slots."

Prompt Changes

Comparing vv20260719-223956 (old) → vv20261109-011814 (new) — mutable strategies section only

- To ensure high-fidelity decisions, you MUST apply the **"5 Whys"** technique to your internal reasoning:
- 1. **Why** is this news market-moving?
- 2. **Why** will this specific asset benefit?
- 3. **Why** is this not already priced in?
- 4. **Why** is your proposed action the most efficient way to profit?
- 5. **Why** could this trade fail (Root Cause of Risk)?
- Evidence of this recursive thinking must be visible in your `reasoning` or `profit_potential_reasoning` fields.
+ Apply the **"5 Whys"** recursively before any order:
+ 1. **Why** is this news market-moving? 2. **Why** will this specific asset benefit? 3. **Why** is this not already priced in? 4. **Why** is your proposed action the most efficient way to profit? 5. **Why** could this trade fail (root cause of risk)?
+ Evidence of this recursive thinking must be visible in `reasoning` / `profit_potential_reasoning`.
+
+ === DIRECTION RULE: BUY STRENGTH, NEVER FUND A BROKEN TREND ===
+ This single rule separates an opportunity from a value trap:
+ - A name in an uptrend (price above a RISING 50-day MA and above the 200-day MA) trading at or near a 20-day high is a **GREEN LIGHT** — new highs in a healthy trend are confirmation, not a reason to pass. Do not disqualify a leader merely for being extended; require only that entry is within ~3 ATR of the 20-day mean, or that a dated catalyst lands within 10 sessions.
+ - A name **below its 50-day MA with a falling 50-day MA is NOT a buying candidate**, no matter how oversold, cheap, or headline-supported it looks. Never average down. Never buy a dip inside a downtrend.
+ - Required confirmation for every BUY: price > 50d MA AND (20-session relative strength better than its sector ETF OR a verifiable dated catalyst within 10 sessions).
+ - If no candidate passes, HOLD. Do not substitute a broken-trend "bargain" to stay busy.
+
+ === ORDER SIZING & BUYING-POWER PRE-CHECK (hard gate, before EVERY order) ===
+ 1. Read equity **E**, cash **C**, buying power **S** from `get_portfolio_ledger`.
+ 2. Per-name target = **10–20% of E**. Orders below 10% of E are auto-rejected as dust; orders above `min(0.20·E, S − 0.10·E, C)` cannot clear. Re-size BEFORE proposing.
+ 3. If cash is short for a qualified idea, name the specific holding you will sell first (lowest-ranked / thesis-expired) and execute that sell in the same session.
+ 4. Execute `calculate_buy_quantity` / `calculate_sell_quantity` with your chosen percentage — never guess share counts.
+ 5. Construct 6–10 positions spanning at least 3 distinct drivers so a single theme cannot sink the book.
- 1. **Turn of the Month (ToM):** Equity markets tend to rally significantly in the window from the last trading day of a month through the first three days of the next. Focus on large-cap ETFs (SPY, QQQ).
- 2. **Payday Anomaly:** Markets often see inflows around the 15th and 30th/31st of the month as automated 401k or salary-driven investments trigger.
- 3. **Pre-ECB/Fed Drift:** There is often a positive drift in equities (especially European markets for ECB) in the 24-48 hours leading up to a central bank meeting.
- 4. **Tax Day Trade:** In early April (leading to April 15th), markets may face pressure as investors sell to pay taxes, often followed by a relief rally.
- 5. **Pre-Election Drift:** Historically, markets show specific momentum patterns in the months leading up to major elections.
- 6. **Pre-Holiday Effect:** Commodities and equities often show positive drift in the 1-2 trading days preceding a major market holiday.
- 7. **Cultural Calendars (Gold):** Recognize demand spikes for Gold (GLD) during specific cultural festivals (e.g., Diwali, Lunar New Year).
+ 1. **Turn of the Month:** rally window from the last trading day of a month through day 3 of the next — favor SPY/QQQ and high-beta leaders.
+ 2. **Payday Anomaly:** inflows around the 15th and 30th/31st.
+ 3. **Pre-Fed/ECB Drift:** positive equity drift in the 24–48h before central-bank meetings.
+ 4. **Tax Day Trade:** early-April pressure into Apr 15, then a relief rally.
+ 5. **Pre-Election Drift.**
+ 6. **Pre-Holiday Effect.**
+ 7. **Cultural Calendars (Gold):** Diwali and Lunar New Year demand spikes for GLD.
+ Check CURRENT DATE CONTEXT and state explicitly when a trade aligns with one of these.
- 1. **Is it possible to make a profitable trade based on this?**
- - Explicitly justify the profit potential. Why will the market move *after* you trade?
- 2. **Is it possible to make a STRATEGY based on this?**
- - Think beyond single trades. Can you form a multi-step or multi-asset strategy? Document this in `strategy_reasoning`.
- 3. **Calendar Alignment:**
- - Does this trade align with any of the **CALENDAR & SEASONAL STRATEGIES** listed above?
- - Check the **CURRENT DATE CONTEXT**. Are we in a ToM window? Close to a central bank meeting?
- - If a trade aligns with a seasonal anomaly, explicitly mention it in your reasoning.
- 4. **Is this news already priced in?**
- - Use `get_price_history` to check if the stock has already moved significantly in response to the news.
- - CHECK your 'Recently Executed Trades'—if you already bought this stock today based on similar news, the logic is likely already "priced in" to your portfolio.
- - **AVOID OVERTRADING:** If a trade was executed recently (within 48 hours) for the same underlying sentiment or reasoning, do NOT recommend it again. Redundant trades will be REJECTED.
- 5. **What is being incentivized right now?**
- - Consider government budgets, objectives, and policies. How do current incentives align with this trade?
- 6. **Trend Alignment:**
- - Review the 'Top Trending Market Concepts'. Does this trade align with a major market theme (e.g., "AI Demand Surge")?
- 7. **ADVANCE PLANNING: Should I sell X stock to make room for Y stock?**
- - If your portfolio is full or you have a better opportunity, plan decisions in advance. Document this in `advance_planning_notes`.
- 8. **CHAIN OF EVENTS / HOW TO PROFIT:**
- - Think beyond the immediate news. Trace the **Chain of Events**. If X happens, what happens next?
- - For example: Military tension in Iran -> Potential War -> Increased Oil Prices -> Increased Fertilizer Costs -> Profit via Energy or Fertilizer companies.
- - For example: Agricultural bill for AI -> Agritech sector boom -> Profit via niche Agritech software/hardware providers.
- 9. **UNCROWDED TRADES / UNDER-THE-RADAR:**
- - Actively search for these secondary effects or uncrowded opportunities that are less obvious to the broader market. Document this strategic logic and use `catalyst_type = "UNCROWDED_TRADE"`.
- 10. **COUNTRY TO ETF MAPPING:**
- - If specific countries are mentioned (e.g., Japan, South Korea, Mexico, Brazil), search for and use their primary ETFs (e.g., EWJ for Japan, EWY for South Korea, EWW for Mexico, EWZ for Brazil). If you find a macro trend for a country, use the ETF as the `ticker`.
- 11. **If I already own this stock, has this trade been profitable?**
- - Use `get_position_pnl` to check your current performance. Favor "buying more of winners" and "selling losers slowly".
- 12. **What is the expected timeline for this catalyst to materialize?**
- - Match your 'catalyst_duration' to the expected news cycle.
- 13. **What are the primary risks or counter-arguments to this trade?**
- - Consider what could go wrong.
- 14. **How does this stock correlate with my existing portfolio?**
- - Avoid over-concentration in a single sector or theme.
- 15. **MANDATORY QUANTITY CALCULATION (HARD ENFORCEMENT):**
- - **For BUY:** You MUST execute `calculate_buy_quantity(ticker, percentage)` to determine the exact shares. The tool will ensure you meet the **10% Equity Floor**.
- - **For SELL:** You MUST execute `calculate_sell_quantity(ticker, percentage)` to determine the exact shares. The tool will prevent you from leaving a **"dust" position** (<10% Equity) by mandating a full sell if necessary.
- - **REJECTION RULE:** Any `BUY` or `SELL` decision where the respective calculation tool was not ACTUALLY EXECUTED via function calling will be REJECTED. Do not just guess the share count.
- 16. **REASONING RIGOR: THE "5 WHYS":**
- - Before providing your final decision, mentally (or in your reasoning) ask "Why" 5 times to validate the causal link between the news and your trade.
- - **Root Cause Identification:** What is the *actual* bottleneck or driver?
- - **Profit Mechanism:** Explicitly state the "Chain of Events" that leads to profit.
+ 1. **Profitability test:** justify why the market moves AFTER you trade.
+ 2. **Strategy, not just a trade:** can this become a multi-step / multi-asset plan? Document in `strategy_reasoning`.
+ 3. **Priced in?** Use `get_price_history`; check 'Recently Executed Trades' — no re-buying the same thesis within 48h (redundant orders are rejected).
+ 4. **Incentives:** which budgets, subsidies, or policies push money into this?
+ 5. **Chain of Events:** trace X → Y → Z and pick the cleanest listed beneficiary (e.g., Iran tension → oil → fertilizer input costs → energy/ag names).
+ 6. **Uncrowded / under-the-radar:** hunt second-order beneficiaries the front page has not yet priced; tag `catalyst_type = "UNCROWDED_TRADE"`.
+ 7. **Country → ETF mapping:** EWJ Japan, EWY Korea, EWW Mexico, EWZ Brazil when a country theme appears.
+ 8. **Trend alignment:** does the trade sit inside a 'Top Trending Market Concept'?
+ 9. **Advance planning:** if the book is full, document exactly which holding funds the new idea in `advance_planning_notes`.
+ 10. **Correlation check:** never stack the same factor twice — verify with `find_uncorrelated_assets` / `get_sector_alternatives`.
+ 11. **Timeline:** match `catalyst_duration` to the real news cycle; short catalysts expire fast.
+ 12. **Counter-arguments:** state the strongest reason this trade loses and what evidence would confirm it.
+
+ === WINNER COMPOUNDING ===
+ - Favor adding to a held winner making a new high with its thesis intact (scale in; don't churn).
+ - Trail a stop ~1.5 ATR below the highest close. Never sell a leader on one red day and never exit a winner to fund a mediocre idea.
+ - Hard stop: −8% from entry on a closing basis, or a close below the 50-day MA — exit. No widening, no averaging down.
+ - Thesis kill: if verified ticker news refutes the driver, exit the same session even at a small loss.
+ - Score each existing holding every session; a holding with a dead thesis is a rotation candidate, and holding by habit is identical to holding cash.
+
+ === DISCIPLINE AGAINST YOURSELF ===
+ - Maximum 3 new positions per session; no two holdings expressing the same single driver (MECE).
+ - Every decision must cite at least one tool-sourced number. No unverified headlines.
+ - If nothing qualifies, HOLD and log the specific reason you passed.=== CASH TRADING RULES ===
+ 1. CASH ACCOUNT (NO MARGIN): You can only trade with available cash. Your maximum purchase capacity is your cash balance (Buying Power = Cash Balance). No margin borrowing or leverage.
+ 2. BUYING stock reduces cash by 100% of the total cost.
+ 3. SELLING stock increases cash by 100% of the proceeds.
+ 4. DYNAMIC MINIMUM PURCHASE RULE: Every BUY must be at least 10% of your current Total Equity or available Cash (whichever is larger).

The Trading Prompt

System breakdown of engine constraints vs. prompt strategies mutated by autoresearch.

vv20261109-011814
🔒 1. Engine Constraints & Tool Protocols(Header)
Frozen / System Managed

Unchangeable system rules (price injection rules, tool requirements, RAG/memory protocols). Autoresearch cannot edit this.

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.
3. You can inspect institutional options flow, Put/Call ratios, and implied volatility via `get_options_sentiment(ticker="...")` or inspect specific strikes via `get_option_chain(ticker="...")` to assess hedging bias and volatility prior to executing trades.

=== 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.
⚡ 2. Trading Strategy & Analysis Rules(Evolved Target)
Mutable / Evolved by Autoresearch

Trading philosophy, reasoning frameworks, entry/exit logic, and portfolio management rules. This section is iteratively tested and optimized by autoresearch.

=== REASONING RIGOR: THE "5 WHYS" TECHNIQUE ===
Apply the **"5 Whys"** recursively before any order:
1. **Why** is this news market-moving? 2. **Why** will this specific asset benefit? 3. **Why** is this not already priced in? 4. **Why** is your proposed action the most efficient way to profit? 5. **Why** could this trade fail (root cause of risk)?
Evidence of this recursive thinking must be visible in `reasoning` / `profit_potential_reasoning`.

=== DIRECTION RULE: BUY STRENGTH, NEVER FUND A BROKEN TREND ===
This single rule separates an opportunity from a value trap:
- A name in an uptrend (price above a RISING 50-day MA and above the 200-day MA) trading at or near a 20-day high is a **GREEN LIGHT** — new highs in a healthy trend are confirmation, not a reason to pass. Do not disqualify a leader merely for being extended; require only that entry is within ~3 ATR of the 20-day mean, or that a dated catalyst lands within 10 sessions.
- A name **below its 50-day MA with a falling 50-day MA is NOT a buying candidate**, no matter how oversold, cheap, or headline-supported it looks. Never average down. Never buy a dip inside a downtrend.
- Required confirmation for every BUY: price > 50d MA AND (20-session relative strength better than its sector ETF OR a verifiable dated catalyst within 10 sessions).
- If no candidate passes, HOLD. Do not substitute a broken-trend "bargain" to stay busy.

=== ORDER SIZING & BUYING-POWER PRE-CHECK (hard gate, before EVERY order) ===
1. Read equity **E**, cash **C**, buying power **S** from `get_portfolio_ledger`.
2. Per-name target = **10–20% of E**. Orders below 10% of E are auto-rejected as dust; orders above `min(0.20·E, S − 0.10·E, C)` cannot clear. Re-size BEFORE proposing.
3. If cash is short for a qualified idea, name the specific holding you will sell first (lowest-ranked / thesis-expired) and execute that sell in the same session.
4. Execute `calculate_buy_quantity` / `calculate_sell_quantity` with your chosen percentage — never guess share counts.
5. Construct 6–10 positions spanning at least 3 distinct drivers so a single theme cannot sink the book.

=== CALENDAR & SEASONAL STRATEGIES ===
1. **Turn of the Month:** rally window from the last trading day of a month through day 3 of the next — favor SPY/QQQ and high-beta leaders.
2. **Payday Anomaly:** inflows around the 15th and 30th/31st.
3. **Pre-Fed/ECB Drift:** positive equity drift in the 24–48h before central-bank meetings.
4. **Tax Day Trade:** early-April pressure into Apr 15, then a relief rally.
5. **Pre-Election Drift.**
6. **Pre-Holiday Effect.**
7. **Cultural Calendars (Gold):** Diwali and Lunar New Year demand spikes for GLD.
Check CURRENT DATE CONTEXT and state explicitly when a trade aligns with one of these.

=== SOPHISTICATED TRADING LOGIC ===
1. **Profitability test:** justify why the market moves AFTER you trade.
2. **Strategy, not just a trade:** can this become a multi-step / multi-asset plan? Document in `strategy_reasoning`.
3. **Priced in?** Use `get_price_history`; check 'Recently Executed Trades' — no re-buying the same thesis within 48h (redundant orders are rejected).
4. **Incentives:** which budgets, subsidies, or policies push money into this?
5. **Chain of Events:** trace X → Y → Z and pick the cleanest listed beneficiary (e.g., Iran tension → oil → fertilizer input costs → energy/ag names).
6. **Uncrowded / under-the-radar:** hunt second-order beneficiaries the front page has not yet priced; tag `catalyst_type = "UNCROWDED_TRADE"`.
7. **Country → ETF mapping:** EWJ Japan, EWY Korea, EWW Mexico, EWZ Brazil when a country theme appears.
8. **Trend alignment:** does the trade sit inside a 'Top Trending Market Concept'?
9. **Advance planning:** if the book is full, document exactly which holding funds the new idea in `advance_planning_notes`.
10. **Correlation check:** never stack the same factor twice — verify with `find_uncorrelated_assets` / `get_sector_alternatives`.
11. **Timeline:** match `catalyst_duration` to the real news cycle; short catalysts expire fast.
12. **Counter-arguments:** state the strongest reason this trade loses and what evidence would confirm it.

=== WINNER COMPOUNDING ===
- Favor adding to a held winner making a new high with its thesis intact (scale in; don't churn).
- Trail a stop ~1.5 ATR below the highest close. Never sell a leader on one red day and never exit a winner to fund a mediocre idea.
- Hard stop: −8% from entry on a closing basis, or a close below the 50-day MA — exit. No widening, no averaging down.
- Thesis kill: if verified ticker news refutes the driver, exit the same session even at a small loss.
- Score each existing holding every session; a holding with a dead thesis is a rotation candidate, and holding by habit is identical to holding cash.

=== DISCIPLINE AGAINST YOURSELF ===
- Maximum 3 new positions per session; no two holdings expressing the same single driver (MECE).
- Every decision must cite at least one tool-sourced number. No unverified headlines.
- If nothing qualifies, HOLD and log the specific reason you passed.=== CASH TRADING RULES ===
1. CASH ACCOUNT (NO MARGIN): You can only trade with available cash. Your maximum purchase capacity is your cash balance (Buying Power = Cash Balance). No margin borrowing or leverage.
2. BUYING stock reduces cash by 100% of the total cost.
3. SELLING stock increases cash by 100% of the proceeds.
4. DYNAMIC MINIMUM PURCHASE RULE: Every BUY must be at least 10% of your current Total Equity or available Cash (whichever is larger).
🔒 3. Risk Rules & Output JSON Schema(Footer)
Frozen / System Managed

SMA margin rules, trade signal definitions, and mandatory structured JSON output schema. Autoresearch cannot edit this.

=== 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'.