Arena run #775

meanrev-v1anthropicanthropic/claude-opus-4.6USsuccess
Arena
Run status
as_of: 2026-03-21T17:59:11.913241+00:00
started_at: 2026-03-21T19:03:56.135761+00:00
finished_at: 2026-03-21T19:04:34.033874+00:00
duration_ms: 37897
Inputs
{
  "as_of": "2026-03-21T17:59:11.913241+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "JMAT_CFD.UK",
      "selection_reason": "1d drop -15.5% but still +2.6% above MA200, suggesting oversold dip within longer-term fair value zone; MA50 distance -10.7% indicates short-term overshoot to downside; moderate volatility supports reversion.",
      "mean_reversion_score": 78
    },
    {
      "symbol": "OSB_CFD.UK",
      "selection_reason": "1d drop -10.6% with price still near MA200 (+4%); MA50 distance -6% signals short-term oversold; lower volatility (85%) vs peers improves mean-reversion reliability.",
      "mean_reversion_score": 74
    },
    {
      "symbol": "STJ_CFD.UK",
      "selection_reason": "1d drop -14.8% while still +4.6% above MA200; MA50 distance -6.7% shows short-term overshoot below trend; price near long-term anchor supports bounce setup.",
      "mean_reversion_score": 72
    },
    {
      "symbol": "MNDI_CFD.UK",
      "selection_reason": "1d drop -11.7% with MA200 distance -14.6% and MA50 distance -5%; already depressed base limits further downside; short-term snap-back toward MA50 is plausible within 2-10 days.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "PAG_CFD.UK",
      "selection_reason": "1d drop -3.4% with price nearly flat to both MA200 (-1.3%) and MA50 (+0.7%); tight mean-anchoring and lowest volatility tier (71%) make this a clean, low-risk reversion candidate.",
      "mean_reversion_score": 65
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "CRST_CFD.UK",
    "MSLH_CFD.UK",
    "SPX_CFD.UK",
    "JDW_CFD.UK",
    "UTG_CFD.UK",
    "PAG_CFD.UK",
    "INVP_CFD.UK",
    "SAFE_CFD.UK",
    "RHIM_CFD.UK",
    "SVT_CFD.UK",
    "RSW_CFD.UK",
    "DLN_CFD.UK",
    "MCG_CFD.UK",
    "PSN_CFD.UK",
    "IWG_CFD.UK",
    "EMG_CFD.UK",
    "OCDO_CFD.UK",
    "HWDN_CFD.UK",
    "JMAT_CFD.UK",
    "IMI_CFD.UK",
    "DCC_CFD.UK",
    "DOCS_CFD.UK",
    "STJ_CFD.UK",
    "OPTU_CFD.US",
    "SMIN_CFD.UK",
    "BBY_CFD.UK",
    "XRX_CFD.US",
    "MNDI_CFD.UK",
    "MKS_CFD.UK",
    "MAB_CFD.UK",
    "RMV_CFD.UK",
    "SSE_CFD.UK",
    "HAIN_CFD.US",
    "DOM_CFD.UK",
    "IPR_CFD.PT",
    "XFAB_CFD.FR",
    "IPO_CFD.UK",
    "CO_CFD.FR",
    "BME_CFD.UK",
    "HPP_CFD.US",
    "GROW_CFD.UK",
    "WIZZ_CFD.UK",
    "OSB_CFD.UK",
    "WKP_CFD.UK",
    "EXM_CFD.BE",
    "AML_CFD.UK",
    "AAF_CFD.UK",
    "NXST_CFD.US",
    "SFM_CFD.US",
    "III_CFD.UK"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "Highest mean-reversion score (78). 1d drop of -15.5% is extreme while still +2.6% above MA200, indicating an oversold dip within a fair-value zone. MA50 distance -10.7% suggests strong snap-back potential. Classic mean-reversion setup.",
        "symbol": "JMAT_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Strong mean-reversion score (74). 1d drop -10.6% with price near MA200 (+4%). Lower volatility (85%) vs peers improves reversion reliability. MA50 distance -6% signals short-term oversold. Previously held and familiar name.",
        "symbol": "OSB_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Flat at entry price 292.6. No clear signal to exit; hold for reversion.",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Flat at entry price 342.92. Recently opened, allow time for mean-reversion thesis to play out.",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Flat at entry 1812. Small position, hold for reversion signal.",
        "symbol": "DLN_CFD.UK"
      },
      {
        "reason": "Flat at entry 62.5. Recently opened, hold for reversion.",
        "symbol": "DOCS_CFD.UK"
      },
      {
        "reason": "Flat at entry 1693. Long-held position, hold for continued reversion.",
        "symbol": "ICG_CFD.UK"
      },
      {
        "reason": "Flat at entry 741.2. Just opened, hold.",
        "symbol": "INF_CFD.UK"
      },
      {
        "reason": "Flat at entry 576. Just opened, hold.",
        "symbol": "LRE_CFD.UK"
      },
      {
        "reason": "Flat at entry 204.3. Hold for reversion.",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Small unrealized gain +15.6. Price near entry, hold.",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Flat at entry 2325. Recently opened, hold.",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "Flat at entry 309.4. Hold for reversion.",
        "symbol": "ROR_CFD.UK"
      },
      {
        "reason": "Flat at entry 3790. Hold for reversion.",
        "symbol": "RSW_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Already holding MNDI with unrealized loss of -41.7. Price dropped from 820 avg to 808.6 and candidate data shows further 11.7% 1d drop with MA200 distance -14.6%, indicating deeper structural weakness rather than clean mean-reversion. Cut loss to free capital for stronger candidates.",
        "symbol": "MNDI_CFD.UK"
      },
      {
        "reason": "Small position (0.35 shares) with +64.86 unrealized gain. Price moved from 8510 to 8694, a solid +2.2% gain. Take profit on this winner as it has reverted above entry and position is too small to be meaningful going forward.",
        "symbol": "LSEG_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Selling MNDI (structural weakness with -14.6% below MA200 makes it a poor mean-reversion candidate despite the dip) and LSEG (taking profit on small winning position). Buying JMAT and OSB which both show sharp 1-day drops while remaining anchored near long-term moving averages - the ideal mean-reversion setup. Retaining 12 existing positions that are near entry with no clear exit signal. After trades, portfolio will have ~14 active positions with gross exposure well within the 3x leverage limit. Focus remains on UK names where the strongest mean-reversion signals are concentrated today."
}
Prompts & responses
#1534openrouteranthropic/claude-opus-4.62026-03-21T19:03:56.176750+00:00
System prompt
You are an Arena strategy executor. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices, fundamentals, earnings dates, or sentiment. If a field is null/empty, treat it as unknown. You are a constrained selector (no narrative).
User prompt
{"task": "stage1_universe_scan", "region": "US", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "selection_rules": {"horizon": "2-10 trading days", "target": "short-term mean reversion in liquid equities", "constraints": ["Select exactly 5 candidates", "Avoid earnings within 5 trading days (if known)", "Avoid highly binary/event-driven moves (if known)", "Avoid sector concentration: max 1 per sector unless clearly justified (sector may be unknown)"]}, "universe": [{"symbol": "CRST_CFD.UK", "name": "CREST NICHOLSON HOLDINGS", "sector": "", "last_price": 167.8, "change_1d_pct": 24.85119047619049, "distance_from_ma200_pct": 1.2720261375977815, "distance_from_ma50_pct": 17.82963155418549, "volatility_20d_pct": 158.46878099582966, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MSLH_CFD.UK", "name": "MARSHALLS PLC", "sector": "", "last_price": 140.8, "change_1d_pct": -21.340782122905022, "distance_from_ma200_pct": -35.829539923323594, "distance_from_ma50_pct": -17.769785769267145, "volatility_20d_pct": 8964.436666790389, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SPX_CFD.UK", "name": "SPIRAX-SARCO ENGINEERING PLC", "sector": "", "last_price": 7608.71, "change_1d_pct": 10.91413994169097, "distance_from_ma200_pct": 15.905097055024719, "distance_from_ma50_pct": 8.459177525660632, "volatility_20d_pct": 84.71063298478786, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "JDW_CFD.UK", "name": "WETHERSPOON (J.D.) PLC", "sector": "", "last_price": 748.5, "change_1d_pct": 9.750733137829904, "distance_from_ma200_pct": 6.242631058659898, "distance_from_ma50_pct": 5.290077328071208, "volatility_20d_pct": 98.2373545531062, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "UTG_CFD.UK", "name": "UNITE GROUP PLC/THE", "sector": "", "last_price": 567.5, "change_1d_pct": 3.4639927073837784, "distance_from_ma200_pct": -23.929923575376698, "distance_from_ma50_pct": -3.6875042216270137, "volatility_20d_pct": 73.84223442053181, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "PAG_CFD.UK", "name": "PARAGON BANKING GROUP PLC", "sector": "", "last_price": 852.5, "change_1d_pct": -3.399433427762044, "distance_from_ma200_pct": -1.3404962254783492, "distance_from_ma50_pct": 0.699141440891915, "volatility_20d_pct": 71.52779356208148, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "INVP_CFD.UK", "name": "INVESTEC PLC", "sector": "", "last_price": 623.5, "change_1d_pct": 8.529155787641418, "distance_from_ma200_pct": 17.34715626999408, "distance_from_ma50_pct": 9.569618971869698, "volatility_20d_pct": 76.97154585310399, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SAFE_CFD.UK", "name": "SAFESTORE HOLDINGS PLC", "sector": "", "last_price": 708.0, "change_1d_pct": 0.14144271570013522, "distance_from_ma200_pct": 7.079918522466522, "distance_from_ma50_pct": -2.535991476029087, "volatility_20d_pct": 107.99712610776675, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "RHIM_CFD.UK", "name": "RHI MAGNESITA NV", "sector": "", "last_price": 2550.0, "change_1d_pct": -6.764168190127973, "distance_from_ma200_pct": -2.35709026809392, "distance_from_ma50_pct": 0.9429816244979738, "volatility_20d_pct": 151.25590362229855, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SVT_CFD.UK", "name": "SEVERN TRENT PLC", "sector": "", "last_price": 3199.0, "change_1d_pct": 11.65794066317627, "distance_from_ma200_pct": 18.3531603549544, "distance_from_ma50_pct": 10.61991274616647, "volatility_20d_pct": 78.40757769219009, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "RSW_CFD.UK", "name": "RENISHAW PLC", "sector": "", "last_price": 4100.0, "change_1d_pct": 18.155619596541793, "distance_from_ma200_pct": 36.779911314574385, "distance_from_ma50_pct": 14.333028240759926, "volatility_20d_pct": 92.61568245477878, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DLN_CFD.UK", "name": "DERWENT LONDON PLC", "sector": "", "last_price": 1953.0, "change_1d_pct": 10.401356698699837, "distance_from_ma200_pct": 5.069478604951705, "distance_from_ma50_pct": 12.150447212111025, "volatility_20d_pct": 115.39088732649292, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MCG_CFD.UK", "name": "MOBICO GROUP PLC", "sector": "", "last_price": 25.72, "change_1d_pct": 2.9623698959167166, "distance_from_ma200_pct": -7.132760074308242, "distance_from_ma50_pct": 8.327577202351844, "volatility_20d_pct": 232.19808875565576, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "PSN_CFD.UK", "name": "PERSIMMON PLC", "sector": "", "last_price": 1194.5, "change_1d_pct": -22.131681877444585, "distance_from_ma200_pct": -5.28811838057509, "distance_from_ma50_pct": -13.815159383151753, "volatility_20d_pct": 113.02371981460591, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IWG_CFD.UK", "name": "IWG PLC", "sector": "", "last_price": 189.6, "change_1d_pct": -24.09927942353883, "distance_from_ma200_pct": -11.798015594910993, "distance_from_ma50_pct": -17.03351041019402, "volatility_20d_pct": 148.96998448946707, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "EMG_CFD.UK", "name": "MAN GROUP PLC/JERSEY", "sector": "", "last_price": 269.6, "change_1d_pct": 2.353834472285521, "distance_from_ma200_pct": 42.186331073171914, "distance_from_ma50_pct": 15.516783354614262, "volatility_20d_pct": 86.92367167139048, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OCDO_CFD.UK", "name": "OCADO GROUP PLC", "sector": "", "last_price": 217.0, "change_1d_pct": -21.148255813953487, "distance_from_ma200_pct": -15.81606625159202, "distance_from_ma50_pct": -5.48311196636071, "volatility_20d_pct": 241.3119670937803, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HWDN_CFD.UK", "name": "HOWDEN JOINERY GROUP PLC", "sector": "", "last_price": 843.0, "change_1d_pct": -2.686229466563539, "distance_from_ma200_pct": 2.9144756901175572, "distance_from_ma50_pct": 0.6796292983215046, "volatility_20d_pct": 44.16384759940265, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "JMAT_CFD.UK", "name": "JOHNSON MATTHEY PLC", "sector": "", "last_price": 1921.0, "change_1d_pct": -15.523306948109061, "distance_from_ma200_pct": 2.5989307920274207, "distance_from_ma50_pct": -10.67077367201248, "volatility_20d_pct": 123.66479524785584, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IMI_CFD.UK", "name": "IMI PLC", "sector": "", "last_price": 2676.0, "change_1d_pct": 1.5945330296127658, "distance_from_ma200_pct": 20.655603593859716, "distance_from_ma50_pct": 2.743599661176499, "volatility_20d_pct": 90.40898907393799, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DCC_CFD.UK", "name": "DCC PLC", "sector": "", "last_price": 4738.0, "change_1d_pct": 4.131868131868122, "distance_from_ma200_pct": -1.2358165497191043, "distance_from_ma50_pct": -1.6950365081147445, "volatility_20d_pct": 101.79870451788292, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DOCS_CFD.UK", "name": "DR. MARTENS PLC", "sector": "", "last_price": 65.6, "change_1d_pct": -1.501501501501501, "distance_from_ma200_pct": -13.08259339811949, "distance_from_ma50_pct": -12.14348468939509, "volatility_20d_pct": 121.2025974369199, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "STJ_CFD.UK", "name": "ST JAMES'S PLACE PLC", "sector": "", "last_price": 1280.0, "change_1d_pct": -14.836992681304062, "distance_from_ma200_pct": 4.633703562254432, "distance_from_ma50_pct": -6.669417974449299, "volatility_20d_pct": 125.87476157380789, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OPTU_CFD.US", "name": "Optimum Communications Inc.", "sector": "", "last_price": 1.3, "change_1d_pct": -9.090909090909083, "distance_from_ma200_pct": -36.95288440553844, "distance_from_ma50_pct": -18.709354677338663, "volatility_20d_pct": 127.6568567850477, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SMIN_CFD.UK", "name": "SMITHS GROUP PLC", "sector": "", "last_price": 2544.0, "change_1d_pct": 1.4333845019038671, "distance_from_ma200_pct": 14.948150770494873, "distance_from_ma50_pct": 4.167383226889343, "volatility_20d_pct": 72.718462979927, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BBY_CFD.UK", "name": "BALFOUR BEATTY PLC", "sector": "", "last_price": 759.18, "change_1d_pct": 5.222453222453205, "distance_from_ma200_pct": 33.313724414201815, "distance_from_ma50_pct": 8.832962232591, "volatility_20d_pct": 54.25956465831767, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "XRX_CFD.US", "name": "Xerox Corp", "sector": "", "last_price": 1.41, "change_1d_pct": -7.843137254901967, "distance_from_ma200_pct": -58.53185106758426, "distance_from_ma50_pct": -30.2739590544951, "volatility_20d_pct": 131.04334057422258, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MNDI_CFD.UK", "name": "MONDI PLC", "sector": "", "last_price": 843.4, "change_1d_pct": -11.741314357471754, "distance_from_ma200_pct": -14.64977338017106, "distance_from_ma50_pct": -5.047009273509417, "volatility_20d_pct": 107.77469967844657, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MKS_CFD.UK", "name": "MARKS & SPENCER GROUP PLC", "sector": "", "last_price": 360.7, "change_1d_pct": -2.592492573588989, "distance_from_ma200_pct": 0.16685682262786994, "distance_from_ma50_pct": 1.2088381382512114, "volatility_20d_pct": 111.18292243780117, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MAB_CFD.UK", "name": "MITCHELLS & BUTLERS PLC", "sector": "", "last_price": 292.81, "change_1d_pct": 14.37890625, "distance_from_ma200_pct": 11.595067041457764, "distance_from_ma50_pct": 10.935906392690597, "volatility_20d_pct": 118.87119977937589, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "RMV_CFD.UK", "name": "RIGHTMOVE PLC", "sector": "", "last_price": 450.28, "change_1d_pct": 0.6054918783653829, "distance_from_ma200_pct": -33.48983045652627, "distance_from_ma50_pct": -8.109535523374445, "volatility_20d_pct": 143.04954184666826, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SSE_CFD.UK", "name": "SSE PLC", "sector": "", "last_price": 2684.0, "change_1d_pct": 0.18663680477790656, "distance_from_ma200_pct": 31.063227728388853, "distance_from_ma50_pct": 6.809869359272902, "volatility_20d_pct": 73.61489335463473, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HAIN_CFD.US", "name": "The Hain Celestial Group Inc", "sector": "", "last_price": 0.62, "change_1d_pct": -8.823529411764708, "distance_from_ma200_pct": -54.170824555567876, "distance_from_ma50_pct": -35.06493506493508, "volatility_20d_pct": 139.0890190428703, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DOM_CFD.UK", "name": "DOMINO'S PIZZA GROUP PLC", "sector": "", "last_price": 189.21, "change_1d_pct": 4.190528634361246, "distance_from_ma200_pct": -12.46581454882838, "distance_from_ma50_pct": 4.428944053991102, "volatility_20d_pct": 85.812071272284, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IPR_CFD.PT", "name": "Impresa SGPS SA", "sector": "", "last_price": 0.191, "change_1d_pct": -0.520833333333337, "distance_from_ma200_pct": 22.353544088914525, "distance_from_ma50_pct": -0.27151211361738925, "volatility_20d_pct": 210.8594986289793, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "XFAB_CFD.FR", "name": "X-FAB Silicon Foundries SE", "sector": "", "last_price": 4.71, "change_1d_pct": 1.7718236819360467, "distance_from_ma200_pct": -19.040031352650278, "distance_from_ma50_pct": -2.6312307743194485, "volatility_20d_pct": 90.28253651370139, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IPO_CFD.UK", "name": "IP GROUP PLC", "sector": "", "last_price": 57.6, "change_1d_pct": -1.873935264054516, "distance_from_ma200_pct": 10.233643652522883, "distance_from_ma50_pct": -2.027486732888828, "volatility_20d_pct": 89.82123635439407, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CO_CFD.FR", "name": "Casino Guichard Perrachon", "sector": "", "last_price": 0.173, "change_1d_pct": 0.0, "distance_from_ma200_pct": -52.95589275031273, "distance_from_ma50_pct": -21.691109904037653, "volatility_20d_pct": 159.59390138580153, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BME_CFD.UK", "name": "B&M EUROPEAN VALUE RETAIL SA", "sector": "", "last_price": 180.0, "change_1d_pct": -0.5799502899751507, "distance_from_ma200_pct": -17.510144533683704, "distance_from_ma50_pct": 3.6906975618860693, "volatility_20d_pct": 107.67302074828436, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HPP_CFD.US", "name": "HUDSON PACIFIC PROPERTIES IN", "sector": "", "last_price": 5.8100000000000005, "change_1d_pct": -6.441223832528175, "distance_from_ma200_pct": -60.13899894687372, "distance_from_ma50_pct": -24.445369190356047, "volatility_20d_pct": 186.94316081293476, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GROW_CFD.UK", "name": "MOLTEN VENTURES PLC", "sector": "", "last_price": 465.0, "change_1d_pct": 1.572739187418093, "distance_from_ma200_pct": 22.569628774815076, "distance_from_ma50_pct": -4.275686024250158, "volatility_20d_pct": 115.72658030340939, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "WIZZ_CFD.UK", "name": "WIZZ AIR HOLDINGS PLC", "sector": "", "last_price": 900.0, "change_1d_pct": -11.725761365308218, "distance_from_ma200_pct": -24.904481629612807, "distance_from_ma50_pct": -26.44633475547983, "volatility_20d_pct": 182.30110592007236, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OSB_CFD.UK", "name": "OSB GROUP PLC", "sector": "", "last_price": 558.5, "change_1d_pct": -10.568454763811053, "distance_from_ma200_pct": 3.9920567571329224, "distance_from_ma50_pct": -6.032210509384505, "volatility_20d_pct": 85.69536040288594, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "WKP_CFD.UK", "name": "WORKSPACE GROUP PLC", "sector": "", "last_price": 423.0, "change_1d_pct": 3.6764705882353033, "distance_from_ma200_pct": 1.8640028868691871, "distance_from_ma50_pct": 5.808194506978848, "volatility_20d_pct": 70.2233148398582, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "EXM_CFD.BE", "name": "EXMAR NV", "sector": "", "last_price": 10.16, "change_1d_pct": 1.8036072144288484, "distance_from_ma200_pct": -7.441865337935116, "distance_from_ma50_pct": 0.5021148968666234, "volatility_20d_pct": 117.76491535356226, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "AML_CFD.UK", "name": "ASTON MARTIN LAGONDA GLOBAL", "sector": "", "last_price": 37.85, "change_1d_pct": -16.2054460925393, "distance_from_ma200_pct": -44.07096854749276, "distance_from_ma50_pct": -31.890405634471907, "volatility_20d_pct": 138.17359169788418, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "AAF_CFD.UK", "name": "AIRTEL AFRICA PLC", "sector": "", "last_price": 358.8, "change_1d_pct": 8.137432188065109, "distance_from_ma200_pct": 32.952065740868704, "distance_from_ma50_pct": 2.969883318017952, "volatility_20d_pct": 110.00587025546741, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "NXST_CFD.US", "name": "", "sector": "", "last_price": 231.93, "change_1d_pct": -3.281901584653879, "distance_from_ma200_pct": 15.160688958144085, "distance_from_ma50_pct": 1.9676014466183611, "volatility_20d_pct": 70.08244923574242, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SFM_CFD.US", "name": "", "sector": "", "last_price": 83.72, "change_1d_pct": 1.2701100762066098, "distance_from_ma200_pct": -23.9500897483413, "distance_from_ma50_pct": 13.109456231558237, "volatility_20d_pct": 88.8143851993528, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "III_CFD.UK", "name": "3I GROUP PLC", "sector": "", "last_price": 2800.0, "change_1d_pct": -6.35451505016722, "distance_from_ma200_pct": -24.977669469349117, "distance_from_ma50_pct": -12.581042836974943, "volatility_20d_pct": 114.0404105556969, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}], "output_schema": {"selected_stocks": [{"symbol": "string", "mean_reversion_score": "integer 0-100", "selection_reason": "short, concrete, indicator-based"}], "rejected_common_reasons": ["string"]}}
Output JSON
{
  "selected_stocks": [
    {
      "symbol": "JMAT_CFD.UK",
      "selection_reason": "1d drop -15.5% but still +2.6% above MA200, suggesting oversold dip within longer-term fair value zone; MA50 distance -10.7% indicates short-term overshoot to downside; moderate volatility supports reversion.",
      "mean_reversion_score": 78
    },
    {
      "symbol": "OSB_CFD.UK",
      "selection_reason": "1d drop -10.6% with price still near MA200 (+4%); MA50 distance -6% signals short-term oversold; lower volatility (85%) vs peers improves mean-reversion reliability.",
      "mean_reversion_score": 74
    },
    {
      "symbol": "STJ_CFD.UK",
      "selection_reason": "1d drop -14.8% while still +4.6% above MA200; MA50 distance -6.7% shows short-term overshoot below trend; price near long-term anchor supports bounce setup.",
      "mean_reversion_score": 72
    },
    {
      "symbol": "MNDI_CFD.UK",
      "selection_reason": "1d drop -11.7% with MA200 distance -14.6% and MA50 distance -5%; already depressed base limits further downside; short-term snap-back toward MA50 is plausible within 2-10 days.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "PAG_CFD.UK",
      "selection_reason": "1d drop -3.4% with price nearly flat to both MA200 (-1.3%) and MA50 (+0.7%); tight mean-anchoring and lowest volatility tier (71%) make this a clean, low-risk reversion candidate.",
      "mean_reversion_score": 65
    }
  ],
  "rejected_common_reasons": [
    "Extreme 1d gains >10% (CRST, RSW, SVT, MAB, DLN, SPX) — momentum overshoot, not mean-reversion buy candidates",
    "Extreme distance from MA200 >30% (RSW, EMG, BBY, SSE, AAF, HPP, XRX, HAIN, AML, CO) — structural trend or distress, not clean reversion",
    "Ultra-high volatility >150% (MSLH, CRST, MCG, OCDO, WIZZ, HPP, AML, CO, IPR) — too noisy for reliable 2-10 day reversion",
    "Very low price / micro-cap indicators (HAIN $0.62, CO €0.173, IPR €0.191, XRX $1.41, OPTU $1.30) — liquidity and binary risk concerns",
    "Large 1d drops >20% (PSN, IWG, MSLH, OCDO) — potential event-driven/binary moves with unknown catalysts"
  ]
}
#1535openrouteranthropic/claude-opus-4.62026-03-21T19:04:13.562703+00:00
System prompt
You are an Arena portfolio manager. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices/fundamentals/news/earnings. If a field is null/empty, treat it as unknown. Avoid overtrading: if changes are marginal, prefer HOLD. Do not churn.
User prompt
{"task": "stage2_portfolio_management", "region": "US", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "portfolio_constraints": {"initial_equity": 10000.0, "max_positions": 10, "fixed_position_size": 3000.0, "max_gross_leverage": 3.0, "overtrading_rules": ["Max 2 SELL actions per run unless risk event forces more", "Max 2 BUY actions per run", "If no clear improvement vs current holdings, output HOLD for everything"]}, "current_portfolio": [{"symbol": "AAL_CFD.UK", "qty": 0.0, "avg_price": 2913.0, "last_price": 2900.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "ABF_CFD.UK", "qty": 0.0, "avg_price": 1868.5, "last_price": 1846.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "ADBE_CFD.US", "qty": 0.0, "avg_price": 249.47, "last_price": 245.96, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "ADS_CFD.DE", "qty": 0.0, "avg_price": 137.15, "last_price": 142.35, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "AMCX_CFD.US", "qty": 0.0, "avg_price": 7.07, "last_price": 6.93, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "AMH_CFD.US", "qty": 0.0, "avg_price": 29.63, "last_price": 29.16, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "AML_CFD.UK", "qty": 0.0, "avg_price": 59.0, "last_price": 58.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "ARCAD_CFD.NL", "qty": 0.0, "avg_price": 28.6, "last_price": 27.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "BEKB_CFD.BE", "qty": 0.0, "avg_price": 38.9, "last_price": 40.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "BLND_CFD.UK", "qty": 0.0, "avg_price": 364.2, "last_price": 373.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "BTRW_CFD.UK", "qty": 0.0, "avg_price": 310.3, "last_price": 295.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "BXP_CFD.US", "qty": 0.0, "avg_price": 60.835, "last_price": 57.754999999999995, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 10.252904989747094, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "CABO_CFD.US", "qty": 0.0, "avg_price": 94.6, "last_price": 108.935, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "CAR_CFD.US", "qty": 0.0, "avg_price": 92.285, "last_price": 95.88499999999999, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "CBG_CFD.UK", "qty": 17.496792254753295, "avg_price": 342.92, "last_price": 342.92, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "CCC_CFD.UK", "qty": 0.0, "avg_price": 2978.0, "last_price": 3218.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "CCL_CFD.UK", "qty": 0.0, "avg_price": 1945.9999999999998, "last_price": 1858.65, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T10:27:11.178069+00:00"}, {"symbol": "CPAY_CFD.US", "qty": 0.0, "avg_price": 321.845, "last_price": 317.015, "unrealized_pnl": -45.02167192282037, "opened_at": "2026-03-09T18:18:45.954380+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 423.05499999999995, "last_price": 388.21500000000003, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "CTT_CFD.PT", "qty": 0.0, "avg_price": 6.74, "last_price": 6.76, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T10:07:39.444598+00:00"}, {"symbol": "DLN_CFD.UK", "qty": 1.6556291390728477, "avg_price": 1812.0, "last_price": 1812.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "DOCS_CFD.UK", "qty": 48.0, "avg_price": 62.5, "last_price": 62.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-17T18:12:35.221859+00:00"}, {"symbol": "DPLM_CFD.UK", "qty": 0.0, "avg_price": 5110.0, "last_price": 5940.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T10:03:26.036362+00:00"}, {"symbol": "ELIOR_CFD.FR", "qty": 0.0, "avg_price": 2.4, "last_price": 2.378, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T10:12:30.296045+00:00"}, {"symbol": "ERA_CFD.FR", "qty": 0.0, "avg_price": 55.55, "last_price": 53.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-07T10:14:47.113218+00:00"}, {"symbol": "ETSY_CFD.US", "qty": 0.0, "avg_price": 44.13, "last_price": 50.905, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 0.0, "avg_price": 405.2, "last_price": 395.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T10:05:58.226220+00:00"}, {"symbol": "FICO_CFD.US", "qty": 0.0, "avg_price": 1127.4099999999999, "last_price": 1199.4650000000001, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "FME_CFD.DE", "qty": 0.0, "avg_price": 38.38, "last_price": 38.14, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "FRE_CFD.DE", "qty": 0.0, "avg_price": 49.156, "last_price": 47.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1408.0, "last_price": 1342.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "HO_CFD.FR", "qty": 0.0, "avg_price": 254.566, "last_price": 251.7, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "ICG_CFD.UK", "qty": 1.772002362669817, "avg_price": 1693.0, "last_price": 1693.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "INF_CFD.UK", "qty": 4.0474905558553695, "avg_price": 741.2, "last_price": 741.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T10:00:02.317290+00:00"}, {"symbol": "ITRK_CFD.UK", "qty": 0.0, "avg_price": 3942.0, "last_price": 3760.0, "unrealized_pnl": -138.5083713850837, "opened_at": "2026-03-13T10:07:39.444598+00:00"}, {"symbol": "IWG_CFD.UK", "qty": 0.0, "avg_price": 185.0, "last_price": 177.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T18:18:58.833148+00:00"}, {"symbol": "JBLU_CFD.US", "qty": 0.0, "avg_price": 4.57, "last_price": 4.5600000000000005, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "JMT_CFD.PT", "qty": 0.0, "avg_price": 20.76, "last_price": 20.159, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "LAND_CFD.UK", "qty": 0.0, "avg_price": 586.0, "last_price": 573.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T10:21:39.078796+00:00"}, {"symbol": "LOPE_CFD.US", "qty": 0.0, "avg_price": 157.02, "last_price": 152.77, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T17:33:48.338981+00:00"}, {"symbol": "LPX_CFD.US", "qty": 0.0, "avg_price": 86.45, "last_price": 82.99, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "LRE_CFD.UK", "qty": 5.208333333333333, "avg_price": 576.0, "last_price": 576.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T10:00:02.317290+00:00"}, {"symbol": "LSEG_CFD.UK", "qty": 0.3525264394829612, "avg_price": 8510.0, "last_price": 8694.0, "unrealized_pnl": 64.86486486486486, "opened_at": "2026-03-12T10:21:39.078796+00:00"}, {"symbol": "LSS_CFD.FR", "qty": 0.0, "avg_price": 20.15, "last_price": 19.78, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "LTA_CFD.FR", "qty": 0.0, "avg_price": 26.0, "last_price": 25.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T10:03:26.036362+00:00"}, {"symbol": "LXS_CFD.DE", "qty": 0.0, "avg_price": 13.14, "last_price": 13.64, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "MNDI_CFD.UK", "qty": 3.658536585365854, "avg_price": 820.0, "last_price": 808.6, "unrealized_pnl": -41.70731707317065, "opened_at": "2026-03-16T10:12:30.296045+00:00"}, {"symbol": "MTG_CFD.US", "qty": 0.0, "avg_price": 26.27, "last_price": 25.98, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "NXT_CFD.UK", "qty": 0.0, "avg_price": 12990.0, "last_price": 12770.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-07T10:14:47.113218+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 14.684287812041115, "avg_price": 204.3, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "OKTA_CFD.US", "qty": 0.0, "avg_price": 70.18, "last_price": 78.38, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "ORCL_CFD.US", "qty": 0.0, "avg_price": 153.02, "last_price": 150.49, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "OSB_CFD.UK", "qty": 0.0, "avg_price": 558.5, "last_price": 544.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 19.74853531696399, "avg_price": 151.91, "last_price": 152.7, "unrealized_pnl": 15.601342900401397, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "PROX_CFD.BE", "qty": 0.0, "avg_price": 6.98, "last_price": 7.55, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "PRU_CFD.UK", "qty": 0.0, "avg_price": 1030.0, "last_price": 1101.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "PZC_CFD.UK", "qty": 0.0, "avg_price": 80.0, "last_price": 77.7, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "RHIM_CFD.UK", "qty": 1.2903225806451613, "avg_price": 2325.0, "last_price": 2325.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-20T10:26:40.341409+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 0.0, "avg_price": 424.3, "last_price": 417.16, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "ROR_CFD.UK", "qty": 9.696186166774403, "avg_price": 309.4, "last_price": 309.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-18T10:06:24.210601+00:00"}, {"symbol": "RSW_CFD.UK", "qty": 0.7915567282321899, "avg_price": 3790.0000000000005, "last_price": 3790.0, "unrealized_pnl": -3.599583252399452e-13, "opened_at": "2026-03-17T18:12:35.221859+00:00"}, {"symbol": "RVTY_CFD.US", "qty": 0.0, "avg_price": 91.28, "last_price": 89.93, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T10:05:58.226220+00:00"}, {"symbol": "SAFE_CFD.UK", "qty": 0.0, "avg_price": 708.0, "last_price": 708.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T18:17:31.188931+00:00"}, {"symbol": "SGE_CFD.UK", "qty": 0.0, "avg_price": 795.4, "last_price": 783.4, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "STAN_CFD.UK", "qty": 0.0, "avg_price": 1615.0, "last_price": 1634.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "STJ_CFD.UK", "qty": 0.0, "avg_price": 1282.0, "last_price": 1318.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "STM_CFD.DE", "qty": 0.0, "avg_price": 18.436, "last_price": 17.66, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "STZ_CFD.US", "qty": 0.0, "avg_price": 149.07, "last_price": 156.44, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "TCAP_CFD.UK", "qty": 0.0, "avg_price": 257.0, "last_price": 248.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-01T10:30:13.622938+00:00"}, {"symbol": "TMV_CFD.DE", "qty": 0.0, "avg_price": 4.781, "last_price": 4.769, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 0.0, "avg_price": 184.5, "last_price": 184.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "TUI1_CFD.DE", "qty": 0.0, "avg_price": 7.398000000000001, "last_price": 7.132, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 0.0, "avg_price": 92.35, "last_price": 94.79, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 0.0, "avg_price": 505.0, "last_price": 505.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "VSVS_CFD.UK", "qty": 0.0, "avg_price": 410.4, "last_price": 398.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-17T10:04:29.123574+00:00"}, {"symbol": "WEIR_CFD.UK", "qty": 0.0, "avg_price": 2890.0, "last_price": 2808.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T10:35:48.762746+00:00"}, {"symbol": "WIX_CFD.UK", "qty": 0.0, "avg_price": 224.5, "last_price": 215.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T18:17:31.188931+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 1299.0, "last_price": 1080.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "ZAL_CFD.DE", "qty": 0.0, "avg_price": 21.078, "last_price": 20.775, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "ZION_CFD.US", "qty": 0.0, "avg_price": 58.99, "last_price": 57.21, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}], "candidates": [{"symbol": "JMAT_CFD.UK", "mean_reversion_score": 78, "selection_reason": "1d drop -15.5% but still +2.6% above MA200, suggesting oversold dip within longer-term fair value zone; MA50 distance -10.7% indicates short-term overshoot to downside; moderate volatility supports reversion."}, {"symbol": "OSB_CFD.UK", "mean_reversion_score": 74, "selection_reason": "1d drop -10.6% with price still near MA200 (+4%); MA50 distance -6% signals short-term oversold; lower volatility (85%) vs peers improves mean-reversion reliability."}, {"symbol": "STJ_CFD.UK", "mean_reversion_score": 72, "selection_reason": "1d drop -14.8% while still +4.6% above MA200; MA50 distance -6.7% shows short-term overshoot below trend; price near long-term anchor supports bounce setup."}, {"symbol": "MNDI_CFD.UK", "mean_reversion_score": 70, "selection_reason": "1d drop -11.7% with MA200 distance -14.6% and MA50 distance -5%; already depressed base limits further downside; short-term snap-back toward MA50 is plausible within 2-10 days."}, {"symbol": "PAG_CFD.UK", "mean_reversion_score": 65, "selection_reason": "1d drop -3.4% with price nearly flat to both MA200 (-1.3%) and MA50 (+0.7%); tight mean-anchoring and lowest volatility tier (71%) make this a clean, low-risk reversion candidate."}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}
Output JSON
{
  "actions": {
    "buy": [
      {
        "reason": "Highest mean-reversion score (78). 1d drop of -15.5% is extreme while still +2.6% above MA200, indicating an oversold dip within a fair-value zone. MA50 distance -10.7% suggests strong snap-back potential. Classic mean-reversion setup.",
        "symbol": "JMAT_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Strong mean-reversion score (74). 1d drop -10.6% with price near MA200 (+4%). Lower volatility (85%) vs peers improves reversion reliability. MA50 distance -6% signals short-term oversold. Previously held and familiar name.",
        "symbol": "OSB_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Flat at entry price 292.6. No clear signal to exit; hold for reversion.",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Flat at entry price 342.92. Recently opened, allow time for mean-reversion thesis to play out.",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Flat at entry 1812. Small position, hold for reversion signal.",
        "symbol": "DLN_CFD.UK"
      },
      {
        "reason": "Flat at entry 62.5. Recently opened, hold for reversion.",
        "symbol": "DOCS_CFD.UK"
      },
      {
        "reason": "Flat at entry 1693. Long-held position, hold for continued reversion.",
        "symbol": "ICG_CFD.UK"
      },
      {
        "reason": "Flat at entry 741.2. Just opened, hold.",
        "symbol": "INF_CFD.UK"
      },
      {
        "reason": "Flat at entry 576. Just opened, hold.",
        "symbol": "LRE_CFD.UK"
      },
      {
        "reason": "Flat at entry 204.3. Hold for reversion.",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Small unrealized gain +15.6. Price near entry, hold.",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Flat at entry 2325. Recently opened, hold.",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "Flat at entry 309.4. Hold for reversion.",
        "symbol": "ROR_CFD.UK"
      },
      {
        "reason": "Flat at entry 3790. Hold for reversion.",
        "symbol": "RSW_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Already holding MNDI with unrealized loss of -41.7. Price dropped from 820 avg to 808.6 and candidate data shows further 11.7% 1d drop with MA200 distance -14.6%, indicating deeper structural weakness rather than clean mean-reversion. Cut loss to free capital for stronger candidates.",
        "symbol": "MNDI_CFD.UK"
      },
      {
        "reason": "Small position (0.35 shares) with +64.86 unrealized gain. Price moved from 8510 to 8694, a solid +2.2% gain. Take profit on this winner as it has reverted above entry and position is too small to be meaningful going forward.",
        "symbol": "LSEG_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Selling MNDI (structural weakness with -14.6% below MA200 makes it a poor mean-reversion candidate despite the dip) and LSEG (taking profit on small winning position). Buying JMAT and OSB which both show sharp 1-day drops while remaining anchored near long-term moving averages - the ideal mean-reversion setup. Retaining 12 existing positions that are near entry with no clear exit signal. After trades, portfolio will have ~14 active positions with gross exposure well within the 3x leverage limit. Focus remains on UK names where the strongest mean-reversion signals are concentrated today."
}
Selection logs
#764stage12026-03-21T19:04:13.560028+00:00
{
  "selected_stocks": [
    {
      "symbol": "JMAT_CFD.UK",
      "selection_reason": "1d drop -15.5% but still +2.6% above MA200, suggesting oversold dip within longer-term fair value zone; MA50 distance -10.7% indicates short-term overshoot to downside; moderate volatility supports reversion.",
      "mean_reversion_score": 78
    },
    {
      "symbol": "OSB_CFD.UK",
      "selection_reason": "1d drop -10.6% with price still near MA200 (+4%); MA50 distance -6% signals short-term oversold; lower volatility (85%) vs peers improves mean-reversion reliability.",
      "mean_reversion_score": 74
    },
    {
      "symbol": "STJ_CFD.UK",
      "selection_reason": "1d drop -14.8% while still +4.6% above MA200; MA50 distance -6.7% shows short-term overshoot below trend; price near long-term anchor supports bounce setup.",
      "mean_reversion_score": 72
    },
    {
      "symbol": "MNDI_CFD.UK",
      "selection_reason": "1d drop -11.7% with MA200 distance -14.6% and MA50 distance -5%; already depressed base limits further downside; short-term snap-back toward MA50 is plausible within 2-10 days.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "PAG_CFD.UK",
      "selection_reason": "1d drop -3.4% with price nearly flat to both MA200 (-1.3%) and MA50 (+0.7%); tight mean-anchoring and lowest volatility tier (71%) make this a clean, low-risk reversion candidate.",
      "mean_reversion_score": 65
    }
  ],
  "rejected_common_reasons": [
    "Extreme 1d gains >10% (CRST, RSW, SVT, MAB, DLN, SPX) — momentum overshoot, not mean-reversion buy candidates",
    "Extreme distance from MA200 >30% (RSW, EMG, BBY, SSE, AAF, HPP, XRX, HAIN, AML, CO) — structural trend or distress, not clean reversion",
    "Ultra-high volatility >150% (MSLH, CRST, MCG, OCDO, WIZZ, HPP, AML, CO, IPR) — too noisy for reliable 2-10 day reversion",
    "Very low price / micro-cap indicators (HAIN $0.62, CO €0.173, IPR €0.191, XRX $1.41, OPTU $1.30) — liquidity and binary risk concerns",
    "Large 1d drops >20% (PSN, IWG, MSLH, OCDO) — potential event-driven/binary moves with unknown catalysts"
  ]
}