Arena run #1055

meanrev-v1anthropicanthropic/claude-opus-4.6USsuccess
Arena
Run status
as_of: 2026-04-04T18:08:49.555685+00:00
started_at: 2026-04-04T20:15:37.895426+00:00
finished_at: 2026-04-04T20:16:17.204472+00:00
duration_ms: 39307
Inputs
{
  "as_of": "2026-04-04T18:08:49.555685+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "ICG_CFD.UK",
      "selection_reason": "-15.2% 1d drop, -16.2% below MA200, -12.3% below MA50, moderate 73% vol suggests non-catastrophic selloff with reversion potential",
      "mean_reversion_score": 78
    },
    {
      "symbol": "KGF_CFD.UK",
      "selection_reason": "-19.7% 1d drop but only -1.6% from MA200 (nearby support), -11% from MA50, vol 109% manageable; sharp single-day overshoot likely to partially revert",
      "mean_reversion_score": 75
    },
    {
      "symbol": "EEFT_CFD.US",
      "selection_reason": "-21.6% below MA200, -8.3% below MA50, low 72% vol; steadily oversold with controlled selling — classic mean-reversion setup",
      "mean_reversion_score": 72
    },
    {
      "symbol": "BYIT_CFD.UK",
      "selection_reason": "-12.7% 1d drop, -28% below MA200, -14.3% below MA50, vol 88%; deeply oversold with moderate volatility supports bounce thesis",
      "mean_reversion_score": 70
    },
    {
      "symbol": "STJ_CFD.UK",
      "selection_reason": "-14.8% 1d drop, still +4.6% above MA200 (support floor), -6.7% below MA50; sharp intraday selloff from elevated base likely to partially recover",
      "mean_reversion_score": 65
    }
  ],
  "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",
    "SHC_CFD.UK",
    "PAG_CFD.UK",
    "UTG_CFD.UK",
    "CBG_CFD.UK",
    "DLN_CFD.UK",
    "DOM_CFD.UK",
    "OCDO_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",
    "BYIT_CFD.UK",
    "VIRI_CFD.FR",
    "WKP_CFD.UK",
    "UKW_CFD.UK",
    "CCI_CFD.US",
    "ATG_CFD.UK",
    "BTRW_CFD.UK",
    "CO_CFD.FR",
    "ERA_CFD.FR",
    "ADJ_CFD.DE",
    "ITV_CFD.UK",
    "DOCS_CFD.UK",
    "AUTO_CFD.UK",
    "PRU_CFD.UK",
    "EEFT_CFD.US",
    "ABDN_CFD.UK",
    "ALTR_CFD.PT",
    "THG_CFD.UK",
    "KGF_CFD.UK",
    "WTB_CFD.UK",
    "AMCX_CFD.US",
    "BP_CFD.UK",
    "MNDI_CFD.UK",
    "MSM_CFD.US",
    "SBS_CFD.DE",
    "BRBY_CFD.UK"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "New candidate with strong mean reversion score 72; -21.6% below MA200, -8.3% below MA50, low 72% vol — classic oversold setup with controlled selling, no existing position",
        "symbol": "EEFT_CFD.US",
        "position_size": 3000
      },
      {
        "reason": "Top mean reversion candidate (score 78); -15.2% 1d drop, -16.2% below MA200, moderate vol; adding to small existing position (~£3000 at 1496p) to reach meaningful size for reversion capture",
        "symbol": "ICG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Position at avg_price with 0 unrealized PnL; no clear signal to exit yet, hold for mean reversion upside",
        "symbol": "ABDN_CFD.UK"
      },
      {
        "reason": "Deeply oversold per candidate screen (-28% below MA200, -14.3% below MA50); candidate for further mean reversion bounce, hold existing position",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; no adverse signal, hold for potential reversion",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; hold for mean reversion thesis to play out",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Strong mean reversion candidate (score 78, -15.2% 1d drop, -16.2% below MA200); already hold small position, retain for bounce",
        "symbol": "ICG_CFD.UK"
      },
      {
        "reason": "High mean reversion score (75, -19.7% 1d drop near MA200 support); hold existing position for expected partial reversion",
        "symbol": "KGF_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; no deterioration signal, hold",
        "symbol": "PAG_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; hold for reversion",
        "symbol": "PZC_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; hold small position",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; hold for mean reversion",
        "symbol": "ROR_CFD.UK"
      },
      {
        "reason": "Mean reversion candidate (score 65, -14.8% 1d drop but still above MA200); hold existing position for recovery",
        "symbol": "STJ_CFD.UK"
      }
    ],
    "sell": []
  },
  "portfolio_rationale": "Portfolio currently holds 11 positions with non-zero qty but most are small. The top candidates overlap with existing holdings (ICG, KGF, BYIT, STJ) confirming the mean-reversion thesis is intact. Adding to ICG (highest score at 78 with sharp 1-day drop and moderate vol) and initiating EEFT (score 72, deeply oversold vs MA200 with low vol — no existing position). No sells warranted: existing positions are either flat or align with current candidate signals. Gross leverage remains well within 3.0x limit. Avoiding overtrading by not churning positions that show no clear deterioration."
}
Prompts & responses
#2044openrouteranthropic/claude-opus-4.62026-04-04T20:15:37.946103+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": "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": 775.4, "change_1d_pct": 24.163330664531625, "distance_from_ma200_pct": 28.652243313347768, "distance_from_ma50_pct": 18.63612217470385, "volatility_20d_pct": 103.46484337510964, "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": 107.7, "change_1d_pct": 10.518214468958442, "distance_from_ma200_pct": 11.915056783642308, "distance_from_ma50_pct": 10.278080977082226, "volatility_20d_pct": 53.84238650296991, "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": "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": "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": "CBG_CFD.UK", "name": "CLOSE BROTHERS GROUP PLC", "sector": "", "last_price": 372.74, "change_1d_pct": -26.625984251968504, "distance_from_ma200_pct": -13.365429078084645, "distance_from_ma50_pct": -22.129222788055436, "volatility_20d_pct": 169.0552301316783, "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": "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": "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": "BYIT_CFD.UK", "name": "BYTES TECHNOLOGY GROUP PLC", "sector": "", "last_price": 300.4, "change_1d_pct": -12.674418604651173, "distance_from_ma200_pct": -28.03446775272175, "distance_from_ma50_pct": -14.34777426817815, "volatility_20d_pct": 87.82535981934274, "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": "CCI_CFD.US", "name": "Crown Castle", "sector": "", "last_price": 86.64, "change_1d_pct": 7.533821521658202, "distance_from_ma200_pct": -7.285087120877709, "distance_from_ma50_pct": 1.1468918111177562, "volatility_20d_pct": 60.76128339441084, "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": "ERA_CFD.FR", "name": "Eramet", "sector": "", "last_price": 51.0, "change_1d_pct": -2.48565965583174, "distance_from_ma200_pct": -8.912346440281095, "distance_from_ma50_pct": -13.452237514212495, "volatility_20d_pct": 5407.090847691928, "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": "PRU_CFD.UK", "name": "PRUDENTIAL PLC", "sector": "", "last_price": 1083.5, "change_1d_pct": 1.5939990623534905, "distance_from_ma200_pct": 3.4579741725546453, "distance_from_ma50_pct": -3.3089489241012404, "volatility_20d_pct": 106.75001496511642, "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": 64.79, "change_1d_pct": -3.124999999999989, "distance_from_ma200_pct": -21.62251909989893, "distance_from_ma50_pct": -8.277791305431137, "volatility_20d_pct": 71.85042530060264, "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": "THG_CFD.UK", "name": "THG PLC", "sector": "", "last_price": 34.98, "change_1d_pct": -1.4092446448703444, "distance_from_ma200_pct": 2.565906951786978, "distance_from_ma50_pct": -19.407978103299726, "volatility_20d_pct": 5100.825736148672, "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": "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": "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"}], "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": "ICG_CFD.UK",
      "selection_reason": "-15.2% 1d drop, -16.2% below MA200, -12.3% below MA50, moderate 73% vol suggests non-catastrophic selloff with reversion potential",
      "mean_reversion_score": 78
    },
    {
      "symbol": "KGF_CFD.UK",
      "selection_reason": "-19.7% 1d drop but only -1.6% from MA200 (nearby support), -11% from MA50, vol 109% manageable; sharp single-day overshoot likely to partially revert",
      "mean_reversion_score": 75
    },
    {
      "symbol": "EEFT_CFD.US",
      "selection_reason": "-21.6% below MA200, -8.3% below MA50, low 72% vol; steadily oversold with controlled selling — classic mean-reversion setup",
      "mean_reversion_score": 72
    },
    {
      "symbol": "BYIT_CFD.UK",
      "selection_reason": "-12.7% 1d drop, -28% below MA200, -14.3% below MA50, vol 88%; deeply oversold with moderate volatility supports bounce thesis",
      "mean_reversion_score": 70
    },
    {
      "symbol": "STJ_CFD.UK",
      "selection_reason": "-14.8% 1d drop, still +4.6% above MA200 (support floor), -6.7% below MA50; sharp intraday selloff from elevated base likely to partially recover",
      "mean_reversion_score": 65
    }
  ],
  "rejected_common_reasons": [
    "Volatility >200% (VIRI, OCDO, CMCX, ERA, ABDN, ALTR, THG, ADJ) — likely binary/event-driven or data quality issues",
    "Extreme 1d moves >25% with very high vol (PAGE, AUTO, FUTR, BTRW, IWG, CBG) — likely fundamental catalyst, not mean-reversion friendly",
    "Penny stocks under 1.00 (CO_CFD.FR, ADJ_CFD.DE) — illiquid, unreliable for mean reversion",
    "Stocks near or above MAs with positive 1d moves (BOY, CRST, BBY, BP, DLN) — no oversold signal",
    "Minimal deviation from MAs (SHC, PAG, HWDN, MSM, DOM) — insufficient mean-reversion setup"
  ]
}
#2045openrouteranthropic/claude-opus-4.62026-04-04T20:16:00.378271+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": "ABDN_CFD.UK", "qty": 15.756302521008402, "avg_price": 190.4, "last_price": 190.4, "unrealized_pnl": 0.0, "opened_at": "2026-04-04T10:04:54.381536+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": 0.0, "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": 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": 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": 2.0053475935828877, "avg_price": 1496.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.526315789473685, "avg_price": 285.0, "last_price": 285.0, "unrealized_pnl": 0.0, "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": 0.0, "avg_price": 576.0, "last_price": 593.0, "unrealized_pnl": 0.0, "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": "ICG_CFD.UK", "mean_reversion_score": 78, "selection_reason": "-15.2% 1d drop, -16.2% below MA200, -12.3% below MA50, moderate 73% vol suggests non-catastrophic selloff with reversion potential"}, {"symbol": "KGF_CFD.UK", "mean_reversion_score": 75, "selection_reason": "-19.7% 1d drop but only -1.6% from MA200 (nearby support), -11% from MA50, vol 109% manageable; sharp single-day overshoot likely to partially revert"}, {"symbol": "EEFT_CFD.US", "mean_reversion_score": 72, "selection_reason": "-21.6% below MA200, -8.3% below MA50, low 72% vol; steadily oversold with controlled selling — classic mean-reversion setup"}, {"symbol": "BYIT_CFD.UK", "mean_reversion_score": 70, "selection_reason": "-12.7% 1d drop, -28% below MA200, -14.3% below MA50, vol 88%; deeply oversold with moderate volatility supports bounce thesis"}, {"symbol": "STJ_CFD.UK", "mean_reversion_score": 65, "selection_reason": "-14.8% 1d drop, still +4.6% above MA200 (support floor), -6.7% below MA50; sharp intraday selloff from elevated base likely to partially recover"}], "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": "New candidate with strong mean reversion score 72; -21.6% below MA200, -8.3% below MA50, low 72% vol — classic oversold setup with controlled selling, no existing position",
        "symbol": "EEFT_CFD.US",
        "position_size": 3000
      },
      {
        "reason": "Top mean reversion candidate (score 78); -15.2% 1d drop, -16.2% below MA200, moderate vol; adding to small existing position (~£3000 at 1496p) to reach meaningful size for reversion capture",
        "symbol": "ICG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Position at avg_price with 0 unrealized PnL; no clear signal to exit yet, hold for mean reversion upside",
        "symbol": "ABDN_CFD.UK"
      },
      {
        "reason": "Deeply oversold per candidate screen (-28% below MA200, -14.3% below MA50); candidate for further mean reversion bounce, hold existing position",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; no adverse signal, hold for potential reversion",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; hold for mean reversion thesis to play out",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Strong mean reversion candidate (score 78, -15.2% 1d drop, -16.2% below MA200); already hold small position, retain for bounce",
        "symbol": "ICG_CFD.UK"
      },
      {
        "reason": "High mean reversion score (75, -19.7% 1d drop near MA200 support); hold existing position for expected partial reversion",
        "symbol": "KGF_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; no deterioration signal, hold",
        "symbol": "PAG_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; hold for reversion",
        "symbol": "PZC_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; hold small position",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "Flat PnL at entry; hold for mean reversion",
        "symbol": "ROR_CFD.UK"
      },
      {
        "reason": "Mean reversion candidate (score 65, -14.8% 1d drop but still above MA200); hold existing position for recovery",
        "symbol": "STJ_CFD.UK"
      }
    ],
    "sell": []
  },
  "portfolio_rationale": "Portfolio currently holds 11 positions with non-zero qty but most are small. The top candidates overlap with existing holdings (ICG, KGF, BYIT, STJ) confirming the mean-reversion thesis is intact. Adding to ICG (highest score at 78 with sharp 1-day drop and moderate vol) and initiating EEFT (score 72, deeply oversold vs MA200 with low vol — no existing position). No sells warranted: existing positions are either flat or align with current candidate signals. Gross leverage remains well within 3.0x limit. Avoiding overtrading by not churning positions that show no clear deterioration."
}
Selection logs
#994stage12026-04-04T20:16:00.374095+00:00
{
  "selected_stocks": [
    {
      "symbol": "ICG_CFD.UK",
      "selection_reason": "-15.2% 1d drop, -16.2% below MA200, -12.3% below MA50, moderate 73% vol suggests non-catastrophic selloff with reversion potential",
      "mean_reversion_score": 78
    },
    {
      "symbol": "KGF_CFD.UK",
      "selection_reason": "-19.7% 1d drop but only -1.6% from MA200 (nearby support), -11% from MA50, vol 109% manageable; sharp single-day overshoot likely to partially revert",
      "mean_reversion_score": 75
    },
    {
      "symbol": "EEFT_CFD.US",
      "selection_reason": "-21.6% below MA200, -8.3% below MA50, low 72% vol; steadily oversold with controlled selling — classic mean-reversion setup",
      "mean_reversion_score": 72
    },
    {
      "symbol": "BYIT_CFD.UK",
      "selection_reason": "-12.7% 1d drop, -28% below MA200, -14.3% below MA50, vol 88%; deeply oversold with moderate volatility supports bounce thesis",
      "mean_reversion_score": 70
    },
    {
      "symbol": "STJ_CFD.UK",
      "selection_reason": "-14.8% 1d drop, still +4.6% above MA200 (support floor), -6.7% below MA50; sharp intraday selloff from elevated base likely to partially recover",
      "mean_reversion_score": 65
    }
  ],
  "rejected_common_reasons": [
    "Volatility >200% (VIRI, OCDO, CMCX, ERA, ABDN, ALTR, THG, ADJ) — likely binary/event-driven or data quality issues",
    "Extreme 1d moves >25% with very high vol (PAGE, AUTO, FUTR, BTRW, IWG, CBG) — likely fundamental catalyst, not mean-reversion friendly",
    "Penny stocks under 1.00 (CO_CFD.FR, ADJ_CFD.DE) — illiquid, unreliable for mean reversion",
    "Stocks near or above MAs with positive 1d moves (BOY, CRST, BBY, BP, DLN) — no oversold signal",
    "Minimal deviation from MAs (SHC, PAG, HWDN, MSM, DOM) — insufficient mean-reversion setup"
  ]
}