Arena run #1025

meanrev-v1anthropicanthropic/claude-opus-4.6EUsuccess
Arena
Run status
as_of: 2026-04-03T10:08:21.824313+00:00
started_at: 2026-04-03T12:30:20.678547+00:00
finished_at: 2026-04-03T12:31:15.101340+00:00
duration_ms: 54421
Inputs
{
  "as_of": "2026-04-03T10:08:21.824313+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "KGF_CFD.UK",
      "selection_reason": "-19.7% 1d drop but only -1.6% from MA200; sharp overshoot below MA50 (-11%) suggests snap-back; moderate volatility (108%)",
      "mean_reversion_score": 82
    },
    {
      "symbol": "STJ_CFD.UK",
      "selection_reason": "-14.8% 1d drop while still +4.6% above MA200; MA200 acts as support anchor; -6.7% below MA50 provides reversion target",
      "mean_reversion_score": 78
    },
    {
      "symbol": "ICG_CFD.UK",
      "selection_reason": "-15.2% 1d drop, -16.2% from MA200, -12.3% from MA50; moderate vol (73%); oversold on multiple timeframes",
      "mean_reversion_score": 75
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "-26.8% 1d drop, -22.1% below MA50; extreme single-day dislocation in mid-cap with 154% vol suggests bounce potential",
      "mean_reversion_score": 73
    },
    {
      "symbol": "UTG_CFD.UK",
      "selection_reason": "-8.3% 1d drop, -32.1% from MA200, -13.5% from MA50; deeply oversold on longer timeframe; moderate vol (99%) supports reversion",
      "mean_reversion_score": 70
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "CRST_CFD.UK",
    "FUTR_CFD.UK",
    "MSLH_CFD.UK",
    "BOY_CFD.UK",
    "PHP_CFD.UK",
    "SPX_CFD.UK",
    "PAGE_CFD.UK",
    "ICG_CFD.UK",
    "JDW_CFD.UK",
    "MCG_CFD.UK",
    "SHC_CFD.UK",
    "PAG_CFD.UK",
    "SAFE_CFD.UK",
    "UTG_CFD.UK",
    "DLN_CFD.UK",
    "DOM_CFD.UK",
    "HWDN_CFD.UK",
    "STJ_CFD.UK",
    "BBY_CFD.UK",
    "IEP_CFD.BE",
    "IPO_CFD.UK",
    "CMCX_CFD.UK",
    "IWG_CFD.UK",
    "SRP_CFD.UK",
    "VIRI_CFD.FR",
    "WKP_CFD.UK",
    "UKW_CFD.UK",
    "ATG_CFD.UK",
    "BTRW_CFD.UK",
    "CO_CFD.FR",
    "HMSO_CFD.UK",
    "ADJ_CFD.DE",
    "ITV_CFD.UK",
    "DOCS_CFD.UK",
    "AUTO_CFD.UK",
    "EEFT_CFD.US",
    "ABDN_CFD.UK",
    "ALTR_CFD.PT",
    "KGF_CFD.UK",
    "UBI_CFD.FR",
    "WTB_CFD.UK",
    "AMCX_CFD.US",
    "BP_CFD.UK",
    "MNDI_CFD.UK",
    "MSM_CFD.US",
    "AMT_CFD.US",
    "SBS_CFD.DE",
    "BRBY_CFD.UK",
    "HFG_CFD.DE"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "Mean-reversion score 75; -15.2% 1d drop, oversold on multiple timeframes (-16.2% from MA200, -12.3% from MA50); moderate vol (73%) supports controlled reversion.",
        "symbol": "ICG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Flat at entry; no signal to exit; hold for reversion.",
        "symbol": "BOY_CFD.UK"
      },
      {
        "reason": "Flat at entry; hold for mean-reversion thesis to play out.",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Flat at entry; hold for reversion.",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Candidate score 82 confirms holding; sharp 1d drop suggests snap-back potential.",
        "symbol": "KGF_CFD.UK"
      },
      {
        "reason": "Flat at entry; no signal to exit.",
        "symbol": "PAG_CFD.UK"
      },
      {
        "reason": "Flat at entry; hold for reversion.",
        "symbol": "PZC_CFD.UK"
      },
      {
        "reason": "Flat at entry; hold for reversion.",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "Flat at entry; hold for reversion.",
        "symbol": "ROR_CFD.UK"
      },
      {
        "reason": "Candidate score 78 supports holding; -14.8% 1d drop with MA200 support.",
        "symbol": "STJ_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Taking profit (+2.95% gain, +88.54 unrealized PnL) to free a slot for a higher mean-reversion candidate (ICG) with deeper oversold signals.",
        "symbol": "LRE_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Portfolio is at max 10 positions. Took profit on LRE (+2.95%) to rotate into ICG which shows deeper oversold conditions across multiple timeframes. KGF and STJ already held align with top candidate scores (82, 78). Remaining positions are flat at entry with no deterioration signals — holding per anti-overtrading rules. New ICG position adds exposure to a multi-timeframe oversold name with moderate volatility, fitting the mean-reversion strategy. Gross leverage remains well within 3.0x limit (~30k notional vs 10k equity = 3.0x)."
}
Prompts & responses
#1988openrouteranthropic/claude-opus-4.62026-04-03T12:30:20.734428+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": "EU", "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": "FUTR_CFD.UK", "name": "FUTURE PLC", "sector": "", "last_price": 368.42, "change_1d_pct": -30.74812030075188, "distance_from_ma200_pct": -45.17933560634293, "distance_from_ma50_pct": -32.26659626501075, "volatility_20d_pct": 170.38116786538166, "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": 179.0, "change_1d_pct": 2.052451539338662, "distance_from_ma200_pct": -18.41965657865713, "distance_from_ma50_pct": 4.539832012082234, "volatility_20d_pct": 102.90810964969117, "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": "BOY_CFD.UK", "name": "BODYCOTE PLC", "sector": "", "last_price": 721.0, "change_1d_pct": -6.666666666666665, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -3.9396725155548484, "volatility_20d_pct": 2835.238795438552, "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": "PHP_CFD.UK", "name": "PRIMARY HEALTH PROPERTIES", "sector": "", "last_price": 91.7, "change_1d_pct": -14.856081708449398, "distance_from_ma200_pct": -4.711135496193131, "distance_from_ma50_pct": -6.104920839383099, "volatility_20d_pct": 6010.672107732524, "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": "PAGE_CFD.UK", "name": "PAGEGROUP PLC", "sector": "", "last_price": 152.7, "change_1d_pct": -36.79635761589404, "distance_from_ma200_pct": -40.61156091058385, "distance_from_ma50_pct": -31.72721647345812, "volatility_20d_pct": 193.22753953431183, "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": "ICG_CFD.UK", "name": "ICG Plc", "sector": "", "last_price": 1693.0, "change_1d_pct": -15.18545979199647, "distance_from_ma200_pct": -16.18296530905513, "distance_from_ma50_pct": -12.256151916578562, "volatility_20d_pct": 73.10253575454833, "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": "MCG_CFD.UK", "name": "MOBICO GROUP PLC", "sector": "", "last_price": 19.51, "change_1d_pct": -21.646586345381515, "distance_from_ma200_pct": -29.294942649537013, "distance_from_ma50_pct": -17.188746837807088, "volatility_20d_pct": 260.52106739031456, "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": "SHC_CFD.UK", "name": "SHAFTESBURY CAPITAL PLC", "sector": "", "last_price": 140.4, "change_1d_pct": -2.9045643153526868, "distance_from_ma200_pct": 0.26963533347688085, "distance_from_ma50_pct": -0.771073778544229, "volatility_20d_pct": 63.75522821252001, "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": "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": "UTG_CFD.UK", "name": "UNITE GROUP PLC/THE", "sector": "", "last_price": 505.0, "change_1d_pct": -8.265213442325159, "distance_from_ma200_pct": -32.12786599325862, "distance_from_ma50_pct": -13.548388422126267, "volatility_20d_pct": 98.87339279796446, "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": "DOM_CFD.UK", "name": "DOMINO'S PIZZA GROUP PLC", "sector": "", "last_price": 183.13, "change_1d_pct": -0.3102885138813294, "distance_from_ma200_pct": -15.070952368916624, "distance_from_ma50_pct": 1.0777282376278619, "volatility_20d_pct": 87.92203351330001, "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": "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": "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": "IEP_CFD.BE", "name": "IEP Invest NV", "sector": "", "last_price": 5.4, "change_1d_pct": 0.0, "distance_from_ma200_pct": 0.9951765451794659, "distance_from_ma50_pct": 0.5657756042326989, "volatility_20d_pct": 138.39532879660115, "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": "CMCX_CFD.UK", "name": "CMC MARKETS PLC", "sector": "", "last_price": 336.5, "change_1d_pct": 6.487341772151889, "distance_from_ma200_pct": 33.727269096422944, "distance_from_ma50_pct": 13.399699398122245, "volatility_20d_pct": 207.2492443353413, "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": 177.0, "change_1d_pct": -26.786896095301127, "distance_from_ma200_pct": -17.645939421376646, "distance_from_ma50_pct": -22.14236071400294, "volatility_20d_pct": 154.02502086657427, "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": "SRP_CFD.UK", "name": "SERCO GROUP PLC", "sector": "", "last_price": 300.0, "change_1d_pct": -0.3984063745019917, "distance_from_ma200_pct": 34.11120814305375, "distance_from_ma50_pct": 6.89280433272168, "volatility_20d_pct": 77.89780733903845, "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": "VIRI_CFD.FR", "name": "VIRIDIEN", "sector": "", "last_price": 127.1, "change_1d_pct": 32.258064516129025, "distance_from_ma200_pct": 86.88026988392838, "distance_from_ma50_pct": 29.097132641971314, "volatility_20d_pct": 297.97668648307325, "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": "UKW_CFD.UK", "name": "GREENCOAT UK WIND PLC", "sector": "", "last_price": 98.75, "change_1d_pct": -0.05060728744938903, "distance_from_ma200_pct": -11.408996180942744, "distance_from_ma50_pct": -4.589556348683388, "volatility_20d_pct": 64.15684506219812, "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": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 326.5, "change_1d_pct": 12.006861063464846, "distance_from_ma200_pct": -24.987260470422935, "distance_from_ma50_pct": 5.84429056770146, "volatility_20d_pct": 172.45012969704524, "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": "BTRW_CFD.UK", "name": "Barratt Redrow Plc", "sector": "", "last_price": 265.0, "change_1d_pct": -24.458380843785633, "distance_from_ma200_pct": -31.60081201451096, "distance_from_ma50_pct": -26.246873145735073, "volatility_20d_pct": 135.16950343577923, "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.161, "change_1d_pct": 0.6250000000000089, "distance_from_ma200_pct": -54.63319103371514, "distance_from_ma50_pct": -21.973441892022873, "volatility_20d_pct": 159.06564182763353, "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": "HMSO_CFD.UK", "name": "HAMMERSON PLC", "sector": "", "last_price": 355.4, "change_1d_pct": 14.129736673089276, "distance_from_ma200_pct": 22.516025502913806, "distance_from_ma50_pct": 10.006914897239172, "volatility_20d_pct": 87.54938293511039, "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": "ADJ_CFD.DE", "name": "ADLER GROUP SA", "sector": "", "last_price": 0.174, "change_1d_pct": 0.5780346820809301, "distance_from_ma200_pct": -13.818722139673124, "distance_from_ma50_pct": -5.793178126691922, "volatility_20d_pct": 294.59302160430366, "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": "ITV_CFD.UK", "name": "ITV PLC", "sector": "", "last_price": 77.2, "change_1d_pct": -8.313539192399045, "distance_from_ma200_pct": -3.1613066700786008, "distance_from_ma50_pct": -5.057064147973234, "volatility_20d_pct": 145.60286782433963, "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": 64.4, "change_1d_pct": -3.7369207772795177, "distance_from_ma200_pct": -14.81943439575366, "distance_from_ma50_pct": -12.617301774248702, "volatility_20d_pct": 126.3056770096304, "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": "AUTO_CFD.UK", "name": "AUTOTRADER GROUP PLC", "sector": "", "last_price": 490.4, "change_1d_pct": -38.63326367424575, "distance_from_ma200_pct": -37.426260695289436, "distance_from_ma50_pct": -31.896720766000808, "volatility_20d_pct": 130.06763966702516, "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": "EEFT_CFD.US", "name": "Euronet Worldwide Inc", "sector": "", "last_price": 67.96, "change_1d_pct": 0.08836524300439574, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -8.600877948011732, "volatility_20d_pct": 4641.720940536395, "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": "ABDN_CFD.UK", "name": "Aberdeen Group Plc", "sector": "", "last_price": 206.2, "change_1d_pct": 0.4873294346978474, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -3.567353199768042, "volatility_20d_pct": 5122.525857900045, "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": "ALTR_CFD.PT", "name": "Altri SGPS SA", "sector": "", "last_price": 4.615, "change_1d_pct": 0.654307524536546, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 0.7136154332976874, "volatility_20d_pct": 2215.5809254008673, "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": "KGF_CFD.UK", "name": "KINGFISHER PLC", "sector": "", "last_price": 288.9, "change_1d_pct": -19.683069224353634, "distance_from_ma200_pct": -1.601320156743069, "distance_from_ma50_pct": -11.033453146133033, "volatility_20d_pct": 108.51503014907387, "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": "UBI_CFD.FR", "name": "UBISoft Entertainment", "sector": "", "last_price": 3.902, "change_1d_pct": -2.47438140464884, "distance_from_ma200_pct": -45.5889694255188, "distance_from_ma50_pct": -5.704605539793994, "volatility_20d_pct": 100.74121862668639, "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": "WTB_CFD.UK", "name": "WHITBREAD PLC", "sector": "", "last_price": 2327.0, "change_1d_pct": -2.472757753562449, "distance_from_ma200_pct": -18.59489684456923, "distance_from_ma50_pct": -16.233663944578723, "volatility_20d_pct": 117.15948435652328, "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": "AMCX_CFD.US", "name": "AMC Networks Inc", "sector": "", "last_price": 7.25, "change_1d_pct": 6.932153392330376, "distance_from_ma200_pct": -5.0612191448962225, "distance_from_ma50_pct": -4.019275577208226, "volatility_20d_pct": 95.18204163977562, "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": "BP_CFD.UK", "name": "BP PLC", "sector": "", "last_price": 599.9, "change_1d_pct": -0.024997916840263645, "distance_from_ma200_pct": 34.942946171845875, "distance_from_ma50_pct": 19.418351608713902, "volatility_20d_pct": 57.450503642923834, "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": 850.0, "change_1d_pct": -8.58249085824908, "distance_from_ma200_pct": -13.160753441822449, "distance_from_ma50_pct": -3.5043803335115586, "volatility_20d_pct": 114.67736271483679, "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": "MSM_CFD.US", "name": "", "sector": "", "last_price": 91.29, "change_1d_pct": 1.0403984504704145, "distance_from_ma200_pct": 3.495187456777815, "distance_from_ma50_pct": 0.6101189820182595, "volatility_20d_pct": 67.00050721439972, "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": "AMT_CFD.US", "name": "American Tower Corp", "sector": "", "last_price": 187.64, "change_1d_pct": -1.65618448637318, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 4.457727796489652, "volatility_20d_pct": 3486.0850782269963, "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": "SBS_CFD.DE", "name": "Stratec SE", "sector": "", "last_price": 17.74, "change_1d_pct": 4.004221140880571, "distance_from_ma200_pct": -26.531612941700722, "distance_from_ma50_pct": -11.33635209564079, "volatility_20d_pct": 86.48165309892673, "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": "BRBY_CFD.UK", "name": "BURBERRY GROUP PLC", "sector": "", "last_price": 1106.0, "change_1d_pct": 5.786704925872788, "distance_from_ma200_pct": -7.436242527422432, "distance_from_ma50_pct": -2.755466927626671, "volatility_20d_pct": 136.53537118978804, "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": "HFG_CFD.DE", "name": "", "sector": "", "last_price": 3.943, "change_1d_pct": -1.6708229426433796, "distance_from_ma200_pct": -40.677328599154464, "distance_from_ma50_pct": -19.373307923213446, "volatility_20d_pct": 118.7315796797711, "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": "KGF_CFD.UK",
      "selection_reason": "-19.7% 1d drop but only -1.6% from MA200; sharp overshoot below MA50 (-11%) suggests snap-back; moderate volatility (108%)",
      "mean_reversion_score": 82
    },
    {
      "symbol": "STJ_CFD.UK",
      "selection_reason": "-14.8% 1d drop while still +4.6% above MA200; MA200 acts as support anchor; -6.7% below MA50 provides reversion target",
      "mean_reversion_score": 78
    },
    {
      "symbol": "ICG_CFD.UK",
      "selection_reason": "-15.2% 1d drop, -16.2% from MA200, -12.3% from MA50; moderate vol (73%); oversold on multiple timeframes",
      "mean_reversion_score": 75
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "-26.8% 1d drop, -22.1% below MA50; extreme single-day dislocation in mid-cap with 154% vol suggests bounce potential",
      "mean_reversion_score": 73
    },
    {
      "symbol": "UTG_CFD.UK",
      "selection_reason": "-8.3% 1d drop, -32.1% from MA200, -13.5% from MA50; deeply oversold on longer timeframe; moderate vol (99%) supports reversion",
      "mean_reversion_score": 70
    }
  ],
  "rejected_common_reasons": [
    "Extreme volatility (>1000% 20d) indicating unreliable price data or illiquidity (BOY, PHP, EEFT, ABDN, ALTR, AMT)",
    "Penny stocks with high binary risk and poor liquidity (CO, ADJ)",
    "Large 1d gains already — momentum overshoot, not reversion candidates (CRST, VIRI, DLN, HMSO, SPX)",
    "PAGE/AUTO/FUTR: -30%+ 1d drops likely event/earnings-driven (binary); too risky for mean-reversion without clarity on catalyst",
    "Stocks near MAs with minimal dislocation offer insufficient reversion edge (IEP, SAFE, HWDN, SHC, DOM, MSM)"
  ]
}
#1989openrouteranthropic/claude-opus-4.62026-04-03T12:30:44.115128+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": "EU", "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": "BOY_CFD.UK", "qty": 4.73186119873817, "avg_price": 634.0, "last_price": 634.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-31T17:54:15.044829+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": 0.0, "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": 0.0, "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": 0.0, "avg_price": 62.5, "last_price": 64.4, "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": "FUTR_CFD.UK", "qty": 10.55594651653765, "avg_price": 284.2, "last_price": 284.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-31T17:54:15.044829+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": 0.0, "avg_price": 1693.0, "last_price": 1496.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "INF_CFD.UK", "qty": 0.0, "avg_price": 741.2, "last_price": 766.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": "JMAT_CFD.UK", "qty": 0.0, "avg_price": 1815.0, "last_price": 1815.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T17:59:11.913241+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": "KGF_CFD.UK", "qty": 10.384215991692628, "avg_price": 288.9, "last_price": 285.0, "unrealized_pnl": -40.498442367601015, "opened_at": "2026-03-22T18:18:31.438015+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": 593.0, "unrealized_pnl": 88.54166666666666, "opened_at": "2026-03-21T10:00:02.317290+00:00"}, {"symbol": "LSEG_CFD.UK", "qty": 0.0, "avg_price": 8510.0, "last_price": 8694.0, "unrealized_pnl": 0.0, "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": "MKS_CFD.UK", "qty": 0.0, "avg_price": 346.1, "last_price": 330.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-24T10:08:31.727705+00:00"}, {"symbol": "MNDI_CFD.UK", "qty": 0.0, "avg_price": 820.0, "last_price": 808.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T10:12:30.296045+00:00"}, {"symbol": "MNG_CFD.UK", "qty": 0.0, "avg_price": 263.0, "last_price": 278.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-23T18:04:09.108429+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": "NRG_CFD.US", "qty": 0.0, "avg_price": 145.86, "last_price": 152.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-22T18:18:31.438015+00:00"}, {"symbol": "NXT_CFD.UK", "qty": 0.0, "avg_price": 12327.27, "last_price": 12695.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-07T10:14:47.113218+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 0.0, "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": 515.0, "last_price": 513.55, "unrealized_pnl": -8.446601941747838, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 0.0, "avg_price": 132.9, "last_price": 132.9, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "PAG_CFD.UK", "qty": 3.9190071848465053, "avg_price": 765.5, "last_price": 765.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-26T17:55:26.602359+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": 41.03967168262654, "avg_price": 73.1, "last_price": 73.1, "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.0, "avg_price": 3790.0000000000005, "last_price": 3790.0, "unrealized_pnl": 0.0, "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": 2.459016393442623, "avg_price": 1220.0, "last_price": 1220.0, "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": "UAL_CFD.US", "qty": 0.0, "avg_price": 91.79, "last_price": 92.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-26T17:55:26.602359+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": 461.2, "last_price": 461.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "VSVS_CFD.UK", "qty": 0.0, "avg_price": 394.2, "last_price": 404.25, "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": "KGF_CFD.UK", "mean_reversion_score": 82, "selection_reason": "-19.7% 1d drop but only -1.6% from MA200; sharp overshoot below MA50 (-11%) suggests snap-back; moderate volatility (108%)"}, {"symbol": "STJ_CFD.UK", "mean_reversion_score": 78, "selection_reason": "-14.8% 1d drop while still +4.6% above MA200; MA200 acts as support anchor; -6.7% below MA50 provides reversion target"}, {"symbol": "ICG_CFD.UK", "mean_reversion_score": 75, "selection_reason": "-15.2% 1d drop, -16.2% from MA200, -12.3% from MA50; moderate vol (73%); oversold on multiple timeframes"}, {"symbol": "IWG_CFD.UK", "mean_reversion_score": 73, "selection_reason": "-26.8% 1d drop, -22.1% below MA50; extreme single-day dislocation in mid-cap with 154% vol suggests bounce potential"}, {"symbol": "UTG_CFD.UK", "mean_reversion_score": 70, "selection_reason": "-8.3% 1d drop, -32.1% from MA200, -13.5% from MA50; deeply oversold on longer timeframe; moderate vol (99%) supports reversion"}], "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": "Mean-reversion score 75; -15.2% 1d drop, oversold on multiple timeframes (-16.2% from MA200, -12.3% from MA50); moderate vol (73%) supports controlled reversion.",
        "symbol": "ICG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Flat at entry; no signal to exit; hold for reversion.",
        "symbol": "BOY_CFD.UK"
      },
      {
        "reason": "Flat at entry; hold for mean-reversion thesis to play out.",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Flat at entry; hold for reversion.",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Candidate score 82 confirms holding; sharp 1d drop suggests snap-back potential.",
        "symbol": "KGF_CFD.UK"
      },
      {
        "reason": "Flat at entry; no signal to exit.",
        "symbol": "PAG_CFD.UK"
      },
      {
        "reason": "Flat at entry; hold for reversion.",
        "symbol": "PZC_CFD.UK"
      },
      {
        "reason": "Flat at entry; hold for reversion.",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "Flat at entry; hold for reversion.",
        "symbol": "ROR_CFD.UK"
      },
      {
        "reason": "Candidate score 78 supports holding; -14.8% 1d drop with MA200 support.",
        "symbol": "STJ_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Taking profit (+2.95% gain, +88.54 unrealized PnL) to free a slot for a higher mean-reversion candidate (ICG) with deeper oversold signals.",
        "symbol": "LRE_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Portfolio is at max 10 positions. Took profit on LRE (+2.95%) to rotate into ICG which shows deeper oversold conditions across multiple timeframes. KGF and STJ already held align with top candidate scores (82, 78). Remaining positions are flat at entry with no deterioration signals — holding per anti-overtrading rules. New ICG position adds exposure to a multi-timeframe oversold name with moderate volatility, fitting the mean-reversion strategy. Gross leverage remains well within 3.0x limit (~30k notional vs 10k equity = 3.0x)."
}
Selection logs
#968stage12026-04-03T12:30:44.111774+00:00
{
  "selected_stocks": [
    {
      "symbol": "KGF_CFD.UK",
      "selection_reason": "-19.7% 1d drop but only -1.6% from MA200; sharp overshoot below MA50 (-11%) suggests snap-back; moderate volatility (108%)",
      "mean_reversion_score": 82
    },
    {
      "symbol": "STJ_CFD.UK",
      "selection_reason": "-14.8% 1d drop while still +4.6% above MA200; MA200 acts as support anchor; -6.7% below MA50 provides reversion target",
      "mean_reversion_score": 78
    },
    {
      "symbol": "ICG_CFD.UK",
      "selection_reason": "-15.2% 1d drop, -16.2% from MA200, -12.3% from MA50; moderate vol (73%); oversold on multiple timeframes",
      "mean_reversion_score": 75
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "-26.8% 1d drop, -22.1% below MA50; extreme single-day dislocation in mid-cap with 154% vol suggests bounce potential",
      "mean_reversion_score": 73
    },
    {
      "symbol": "UTG_CFD.UK",
      "selection_reason": "-8.3% 1d drop, -32.1% from MA200, -13.5% from MA50; deeply oversold on longer timeframe; moderate vol (99%) supports reversion",
      "mean_reversion_score": 70
    }
  ],
  "rejected_common_reasons": [
    "Extreme volatility (>1000% 20d) indicating unreliable price data or illiquidity (BOY, PHP, EEFT, ABDN, ALTR, AMT)",
    "Penny stocks with high binary risk and poor liquidity (CO, ADJ)",
    "Large 1d gains already — momentum overshoot, not reversion candidates (CRST, VIRI, DLN, HMSO, SPX)",
    "PAGE/AUTO/FUTR: -30%+ 1d drops likely event/earnings-driven (binary); too risky for mean-reversion without clarity on catalyst",
    "Stocks near MAs with minimal dislocation offer insufficient reversion edge (IEP, SAFE, HWDN, SHC, DOM, MSM)"
  ]
}