Arena run #949

meanrev-v1minimaxminimax/minimax-m2.1USsuccess
Arena
Run status
as_of: 2026-03-30T17:49:05.858690+00:00
started_at: 2026-03-30T20:04:37.821531+00:00
finished_at: 2026-03-30T20:08:40.630927+00:00
duration_ms: 242808
Inputs
{
  "as_of": "2026-03-30T17:49:05.858690+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "PAGE_CFD.UK",
      "selection_reason": "Extreme oversold: -36.80% daily change; large distance below MA50 (-31.73%) and MA200 (-40.61%); volatility 193% acceptable for mean reversion",
      "mean_reversion_score": 95
    },
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "Very oversold: -26.63% daily change; significant distance below MA50 (-22.13%) and MA200 (-13.37%); volatility 169% acceptable",
      "mean_reversion_score": 90
    },
    {
      "symbol": "FUTR_CFD.UK",
      "selection_reason": "Oversold: -21.24% daily change; large distance below MA50 (-23.78%) and MA200 (-37.81%); volatility 154% acceptable",
      "mean_reversion_score": 88
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "Very oversold: -26.79% daily change; significant distance below MA50 (-22.14%) and MA200 (-17.65%); volatility 154% acceptable",
      "mean_reversion_score": 87
    },
    {
      "symbol": "UTG_CFD.UK",
      "selection_reason": "Moderately oversold: -8.27% daily change; large distance below MA200 (-32.13%); lower volatility 99% provides conservative exposure",
      "mean_reversion_score": 82
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "CRST_CFD.UK",
    "MSLH_CFD.UK",
    "BOY_CFD.UK",
    "LMP_CFD.UK",
    "SPX_CFD.UK",
    "PAGE_CFD.UK",
    "FUTR_CFD.UK",
    "ESNT_CFD.UK",
    "JDW_CFD.UK",
    "MCG_CFD.UK",
    "SHC_CFD.UK",
    "PAG_CFD.UK",
    "INVP_CFD.UK",
    "SAFE_CFD.UK",
    "RHIM_CFD.UK",
    "UTG_CFD.UK",
    "CBG_CFD.UK",
    "RSW_CFD.UK",
    "DLN_CFD.UK",
    "EMG_CFD.UK",
    "PZC_CFD.UK",
    "DOM_CFD.UK",
    "OCDO_CFD.UK",
    "HWDN_CFD.UK",
    "LRE_CFD.UK",
    "ABDN_CFD.UK",
    "LIO_CFD.UK",
    "BBY_CFD.UK",
    "MAB_CFD.UK",
    "KGF_CFD.UK",
    "PSN_CFD.UK",
    "RHK_CFD.DE",
    "IPO_CFD.UK",
    "CMCX_CFD.UK",
    "GRG_CFD.UK",
    "IWG_CFD.UK",
    "SRP_CFD.UK",
    "BYIT_CFD.UK",
    "HIK_CFD.UK",
    "UKW_CFD.UK",
    "TBCG_CFD.UK",
    "VIAV_CFD.US",
    "ATG_CFD.UK",
    "ROR_CFD.UK",
    "HMSO_CFD.UK",
    "GLO_CFD.FR"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "Top mean reversion candidate: score 95 extreme oversold (-36.80% daily), -31.73% below MA50, -40.61% below MA200; strong recovery potential",
        "symbol": "PAGE_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Strong mean reversion candidate: score 88 oversold (-21.24% daily), -23.78% below MA50, -37.81% below MA200; good recovery setup",
        "symbol": "FUTR_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Position flat at avg price; no clear mean reversion signal",
        "symbol": "AUTO_CFD.UK"
      },
      {
        "reason": "Position flat at avg price; no clear mean reversion signal",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Existing position; score 90 oversold but already held - maintaining for mean reversion potential",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Position flat at avg price; no clear mean reversion signal",
        "symbol": "CRST_CFD.UK"
      },
      {
        "reason": "Existing position; score 87 oversold but already held - maintaining for mean reversion potential",
        "symbol": "IWG_CFD.UK"
      },
      {
        "reason": "Existing position; score 95 extreme oversold - adding to position",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Existing position; score 82 moderately oversold but already held - maintaining for mean reversion potential",
        "symbol": "UTG_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "ABF_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "AEO_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "AGFB_CFD.BE"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "AML_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "ATG_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "ATO_CFD.FR"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "BIG_CFD.FR"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "BTRW_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "CCL_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "CRWD_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "DKNG_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "DSY_CFD.FR"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "DT_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "ERA_CFD.FR"
      },
      {
        "reason": "No position; score 88 oversold - initiating new position",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "GO_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "HAIN_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "HIK_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "HYQ_CFD.DE"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "INF_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "LIO_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "LMND_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "LMP_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "LPE_CFD.FR"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "LXS_CFD.DE"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "MAN_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "MDB_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "PBB_CFD.DE"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "PROX_CFD.BE"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "RCO_CFD.FR"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "RIVN_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "RMV_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "RSW_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "SGRO_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "SYNT_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "TCAP_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "TRN_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "TRST_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "VTY_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "WIZZ_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "WPP_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "WTB_CFD.UK"
      }
    ],
    "sell": []
  },
  "portfolio_rationale": "Mean reversion strategy targeting oversold securities with high mean reversion scores. Initiating BUY for PAGE_CFD.UK (score 95, extreme oversold conditions) and FUTR_CFD.UK (score 88, significant oversold conditions) at fixed $3,000 position size each. Existing positions in CBG_CFD.UK, IWG_CFD.UK, PAGE_CFD.UK, and UTG_CFD.UK are maintained as they already represent strong mean reversion candidates. All other holdings and non-positions are HELD as no clear improvement signals warrant additional action. Portfolio maintains 9 positions after trades (7 existing + 2 new), staying within max 10 positions constraint. Max 2 buys and 0 sells respected per run."
}
Prompts & responses
#1853openrouterminimax/minimax-m2.12026-03-30T20:04:37.866851+00:00
System prompt
You are an Arena strategy executor. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices, fundamentals, earnings dates, or sentiment. If a field is null/empty, treat it as unknown. You are a constrained selector (no narrative).
User prompt
{"task": "stage1_universe_scan", "region": "US", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "selection_rules": {"horizon": "2-10 trading days", "target": "short-term mean reversion in liquid equities", "constraints": ["Select exactly 5 candidates", "Avoid earnings within 5 trading days (if known)", "Avoid highly binary/event-driven moves (if known)", "Avoid sector concentration: max 1 per sector unless clearly justified (sector may be unknown)"]}, "universe": [{"symbol": "CRST_CFD.UK", "name": "CREST NICHOLSON HOLDINGS", "sector": "", "last_price": 167.8, "change_1d_pct": 24.85119047619049, "distance_from_ma200_pct": 1.2720261375977815, "distance_from_ma50_pct": 17.82963155418549, "volatility_20d_pct": 158.46878099582966, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MSLH_CFD.UK", "name": "MARSHALLS PLC", "sector": "", "last_price": 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": "LMP_CFD.UK", "name": "LONDONMETRIC PROPERTY PLC", "sector": "", "last_price": 214.0, "change_1d_pct": 11.57455683003128, "distance_from_ma200_pct": 12.507879494597773, "distance_from_ma50_pct": 10.77384329331672, "volatility_20d_pct": 54.89150861607771, "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": "FUTR_CFD.UK", "name": "FUTURE PLC", "sector": "", "last_price": 419.8, "change_1d_pct": -21.238273921200744, "distance_from_ma200_pct": -37.8057811437588, "distance_from_ma50_pct": -23.777028015845957, "volatility_20d_pct": 154.26286041137905, "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": "ESNT_CFD.UK", "name": "ESSENTRA PLC", "sector": "", "last_price": 108.4, "change_1d_pct": 4.230769230769238, "distance_from_ma200_pct": 7.40452119530135, "distance_from_ma50_pct": 9.771484932749797, "volatility_20d_pct": 98.9832071461764, "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": "INVP_CFD.UK", "name": "INVESTEC PLC", "sector": "", "last_price": 623.5, "change_1d_pct": 8.529155787641418, "distance_from_ma200_pct": 17.34715626999408, "distance_from_ma50_pct": 9.569618971869698, "volatility_20d_pct": 76.97154585310399, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SAFE_CFD.UK", "name": "SAFESTORE HOLDINGS PLC", "sector": "", "last_price": 708.0, "change_1d_pct": 0.14144271570013522, "distance_from_ma200_pct": 7.079918522466522, "distance_from_ma50_pct": -2.535991476029087, "volatility_20d_pct": 107.99712610776675, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "RHIM_CFD.UK", "name": "RHI MAGNESITA NV", "sector": "", "last_price": 2550.0, "change_1d_pct": -6.764168190127973, "distance_from_ma200_pct": -2.35709026809392, "distance_from_ma50_pct": 0.9429816244979738, "volatility_20d_pct": 151.25590362229855, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": "RSW_CFD.UK", "name": "RENISHAW PLC", "sector": "", "last_price": 4100.0, "change_1d_pct": 18.155619596541793, "distance_from_ma200_pct": 36.779911314574385, "distance_from_ma50_pct": 14.333028240759926, "volatility_20d_pct": 92.61568245477878, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DLN_CFD.UK", "name": "DERWENT LONDON PLC", "sector": "", "last_price": 1953.0, "change_1d_pct": 10.401356698699837, "distance_from_ma200_pct": 5.069478604951705, "distance_from_ma50_pct": 12.150447212111025, "volatility_20d_pct": 115.39088732649292, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "EMG_CFD.UK", "name": "MAN GROUP PLC/JERSEY", "sector": "", "last_price": 269.6, "change_1d_pct": 2.353834472285521, "distance_from_ma200_pct": 42.186331073171914, "distance_from_ma50_pct": 15.516783354614262, "volatility_20d_pct": 86.92367167139048, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "PZC_CFD.UK", "name": "PZ CUSSONS PLC", "sector": "", "last_price": 77.7, "change_1d_pct": -13.858093126385807, "distance_from_ma200_pct": 2.9808107121248817, "distance_from_ma50_pct": 2.5905093876257723, "volatility_20d_pct": 92.73478468401771, "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": "LRE_CFD.UK", "name": "LANCASHIRE HOLDINGS LTD", "sector": "", "last_price": 611.0, "change_1d_pct": -7.424242424242422, "distance_from_ma200_pct": 0.4068944205071867, "distance_from_ma50_pct": -6.396619125545266, "volatility_20d_pct": 86.32350801127552, "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": 202.6, "change_1d_pct": -7.741347905282336, "distance_from_ma200_pct": 6.460345885775287, "distance_from_ma50_pct": -2.3285905331046353, "volatility_20d_pct": 82.55854119558269, "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": "LIO_CFD.UK", "name": "LIONTRUST ASSET MANAGEMENT", "sector": "", "last_price": 270.0, "change_1d_pct": 7.784431137724557, "distance_from_ma200_pct": -17.148878096081223, "distance_from_ma50_pct": 4.440258238208905, "volatility_20d_pct": 138.52252179896075, "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": "MAB_CFD.UK", "name": "MITCHELLS & BUTLERS PLC", "sector": "", "last_price": 292.81, "change_1d_pct": 14.37890625, "distance_from_ma200_pct": 11.595067041457764, "distance_from_ma50_pct": 10.935906392690597, "volatility_20d_pct": 118.87119977937589, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "KGF_CFD.UK", "name": "KINGFISHER PLC", "sector": "", "last_price": 298.6, "change_1d_pct": -16.592178770949715, "distance_from_ma200_pct": 1.7661505198389493, "distance_from_ma50_pct": -8.10124743477527, "volatility_20d_pct": 106.76236046208503, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "PSN_CFD.UK", "name": "PERSIMMON PLC", "sector": "", "last_price": 1125.0, "change_1d_pct": -18.181818181818176, "distance_from_ma200_pct": -10.441765693528215, "distance_from_ma50_pct": -17.60321899687448, "volatility_20d_pct": 125.39714948121237, "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": "RHK_CFD.DE", "name": "Rhoen-Klinikum AG", "sector": "", "last_price": 12.6, "change_1d_pct": -0.7874015748031482, "distance_from_ma200_pct": 0.9608103787712929, "distance_from_ma50_pct": -2.533509907546072, "volatility_20d_pct": 111.99937384863638, "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": "GRG_CFD.UK", "name": "GREGGS PLC", "sector": "", "last_price": 1487.0, "change_1d_pct": -2.746893394375405, "distance_from_ma200_pct": -11.440882158395937, "distance_from_ma50_pct": -8.838105794389772, "volatility_20d_pct": 3782.806831632296, "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": "HIK_CFD.UK", "name": "HIKMA PHARMACEUTICALS PLC", "sector": "", "last_price": 1267.0, "change_1d_pct": -19.55555555555556, "distance_from_ma200_pct": -28.881851790845626, "distance_from_ma50_pct": -15.711709832205766, "volatility_20d_pct": 155.5956600941246, "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": "TBCG_CFD.UK", "name": "TBC BANK GROUP PLC", "sector": "", "last_price": 4125.0, "change_1d_pct": -3.169014084507038, "distance_from_ma200_pct": -6.5045509221490105, "distance_from_ma50_pct": -0.1025081463074895, "volatility_20d_pct": 110.62209591564869, "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": "VIAV_CFD.US", "name": "VIAVI SOLUTIONS INC", "sector": "", "last_price": 31.19, "change_1d_pct": -16.915290356952582, "distance_from_ma200_pct": 81.79433750564648, "distance_from_ma50_pct": 11.58653949354953, "volatility_20d_pct": 154.83519556948903, "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": 313.0, "change_1d_pct": 0.3205128205128194, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 0.8343803356850588, "volatility_20d_pct": 2871.9337920464413, "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": "ROR_CFD.UK", "name": "ROTORK PLC", "sector": "", "last_price": 315.64, "change_1d_pct": -7.815420560747666, "distance_from_ma200_pct": -3.440121571713639, "distance_from_ma50_pct": -7.465605958975752, "volatility_20d_pct": 114.53961834922319, "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": "GLO_CFD.FR", "name": "GL Events", "sector": "", "last_price": 29.25, "change_1d_pct": -5.797101449275366, "distance_from_ma200_pct": -2.880578639172615, "distance_from_ma50_pct": -9.170235163695416, "volatility_20d_pct": 91.53331872104411, "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": "PAGE_CFD.UK",
      "selection_reason": "Extreme oversold: -36.80% daily change; large distance below MA50 (-31.73%) and MA200 (-40.61%); volatility 193% acceptable for mean reversion",
      "mean_reversion_score": 95
    },
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "Very oversold: -26.63% daily change; significant distance below MA50 (-22.13%) and MA200 (-13.37%); volatility 169% acceptable",
      "mean_reversion_score": 90
    },
    {
      "symbol": "FUTR_CFD.UK",
      "selection_reason": "Oversold: -21.24% daily change; large distance below MA50 (-23.78%) and MA200 (-37.81%); volatility 154% acceptable",
      "mean_reversion_score": 88
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "Very oversold: -26.79% daily change; significant distance below MA50 (-22.14%) and MA200 (-17.65%); volatility 154% acceptable",
      "mean_reversion_score": 87
    },
    {
      "symbol": "UTG_CFD.UK",
      "selection_reason": "Moderately oversold: -8.27% daily change; large distance below MA200 (-32.13%); lower volatility 99% provides conservative exposure",
      "mean_reversion_score": 82
    }
  ],
  "rejected_common_reasons": [
    "Price above or near moving averages (not oversold)",
    "Extremely high volatility (>200%) indicating potential binary/event risk",
    "Insufficient distance from moving averages for mean reversion signal",
    "Minimal daily price change (<5%)"
  ]
}
#1854openrouterminimax/minimax-m2.12026-03-30T20:05:53.736292+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": "ABF_CFD.UK", "qty": 0.0, "avg_price": 1868.5, "last_price": 1849.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "AEO_CFD.US", "qty": 0.0, "avg_price": 22.265, "last_price": 18.64, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T21:11:27.888829+00:00"}, {"symbol": "AGFB_CFD.BE", "qty": 0.0, "avg_price": 0.465, "last_price": 0.452, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T21:11:27.888829+00:00"}, {"symbol": "AML_CFD.UK", "qty": 0.0, "avg_price": 36.92, "last_price": 36.04, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "ATG_CFD.UK", "qty": 0.0, "avg_price": 296.0, "last_price": 326.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "ATO_CFD.FR", "qty": 0.0, "avg_price": 40.34, "last_price": 39.505, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "AUTO_CFD.UK", "qty": 6.2137531068765535, "avg_price": 482.8, "last_price": 482.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T18:04:14.272849+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 0.0, "avg_price": 0.453, "last_price": 0.296, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "BTRW_CFD.UK", "qty": 0.0, "avg_price": 250.8, "last_price": 272.44, "unrealized_pnl": 0.0, "opened_at": "2026-03-23T18:04:09.108429+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 20.505809979494188, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "CBG_CFD.UK", "qty": 34.99358450950659, "avg_price": 342.92, "last_price": 342.92, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T18:17:31.188931+00:00"}, {"symbol": "CCL_CFD.UK", "qty": 0.0, "avg_price": 1945.9999999999998, "last_price": 1989.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "CRST_CFD.UK", "qty": 25.246149962130776, "avg_price": 118.83, "last_price": 118.83, "unrealized_pnl": 0.0, "opened_at": "2026-03-23T10:03:51.599067+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 349.265, "last_price": 365.38, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "DKNG_CFD.US", "qty": 0.0, "avg_price": 25.28, "last_price": 24.91, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "DSY_CFD.FR", "qty": 0.0, "avg_price": 17.881, "last_price": 17.133, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "DT_CFD.US", "qty": 0.0, "avg_price": 34.105000000000004, "last_price": 35.864999999999995, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "ERA_CFD.FR", "qty": 0.0, "avg_price": 47.4, "last_price": 48.88, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 0.0, "avg_price": 414.2, "last_price": 368.42, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "GO_CFD.US", "qty": 0.0, "avg_price": 6.53, "last_price": 6.34, "unrealized_pnl": -87.28943338437996, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "HAIN_CFD.US", "qty": 0.0, "avg_price": 0.63, "last_price": 0.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-20T18:25:08.105367+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1409.0, "last_price": 1244.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "HYQ_CFD.DE", "qty": 0.0, "avg_price": 82.3, "last_price": 77.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "INF_CFD.UK", "qty": 0.0, "avg_price": 795.2, "last_price": 785.85, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T18:21:09.503139+00:00"}, {"symbol": "IWG_CFD.UK", "qty": 34.84320557491289, "avg_price": 172.2, "last_price": 172.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-28T18:06:26.607078+00:00"}, {"symbol": "LIO_CFD.UK", "qty": 0.0, "avg_price": 250.0, "last_price": 250.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "LMND_CFD.US", "qty": 0.0, "avg_price": 48.96, "last_price": 52.07, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T11:23:36.694156+00:00"}, {"symbol": "LMP_CFD.UK", "qty": 0.0, "avg_price": 181.3, "last_price": 181.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-23T10:03:51.599067+00:00"}, {"symbol": "LPE_CFD.FR", "qty": 0.0, "avg_price": 88.414, "last_price": 86.679, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T18:21:09.503139+00:00"}, {"symbol": "LXS_CFD.DE", "qty": 0.0, "avg_price": 13.14, "last_price": 13.24, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "MAN_CFD.US", "qty": 0.0, "avg_price": 25.68, "last_price": 27.94, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "MDB_CFD.US", "qty": 0.0, "avg_price": 252.01, "last_price": 263.69, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+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-22T09:32:59.506254+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 22.57336343115124, "avg_price": 132.9, "last_price": 132.9, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "PBB_CFD.DE", "qty": 0.0, "avg_price": 2.826, "last_price": 2.7640000000000002, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "PROX_CFD.BE", "qty": 0.0, "avg_price": 6.98, "last_price": 7.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-01T10:30:13.622938+00:00"}, {"symbol": "RCO_CFD.FR", "qty": 0.0, "avg_price": 44.34, "last_price": 43.58, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "RIVN_CFD.US", "qty": 0.0, "avg_price": 15.62, "last_price": 15.1, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+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-19T00:47:27.070066+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-12T18:01:52.554929+00:00"}, {"symbol": "SGRO_CFD.UK", "qty": 0.0, "avg_price": 789.8, "last_price": 735.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 0.0, "avg_price": 27.2, "last_price": 34.9, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T10:00:02.317290+00:00"}, {"symbol": "TCAP_CFD.UK", "qty": 0.0, "avg_price": 247.99999999999997, "last_price": 255.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 0.0, "avg_price": 184.5, "last_price": 204.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "TRST_CFD.UK", "qty": 0.0, "avg_price": 151.8, "last_price": 224.82, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+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-25T17:57:28.313088+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 6.504770164787511, "avg_price": 461.2, "last_price": 461.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 0.0, "avg_price": 385.0, "last_price": 354.1, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 908.5, "last_price": 878.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 257.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "WTB_CFD.UK", "qty": 0.0, "avg_price": 2345.0, "last_price": 2308.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T18:17:31.188931+00:00"}], "candidates": [{"symbol": "PAGE_CFD.UK", "mean_reversion_score": 95, "selection_reason": "Extreme oversold: -36.80% daily change; large distance below MA50 (-31.73%) and MA200 (-40.61%); volatility 193% acceptable for mean reversion"}, {"symbol": "CBG_CFD.UK", "mean_reversion_score": 90, "selection_reason": "Very oversold: -26.63% daily change; significant distance below MA50 (-22.13%) and MA200 (-13.37%); volatility 169% acceptable"}, {"symbol": "FUTR_CFD.UK", "mean_reversion_score": 88, "selection_reason": "Oversold: -21.24% daily change; large distance below MA50 (-23.78%) and MA200 (-37.81%); volatility 154% acceptable"}, {"symbol": "IWG_CFD.UK", "mean_reversion_score": 87, "selection_reason": "Very oversold: -26.79% daily change; significant distance below MA50 (-22.14%) and MA200 (-17.65%); volatility 154% acceptable"}, {"symbol": "UTG_CFD.UK", "mean_reversion_score": 82, "selection_reason": "Moderately oversold: -8.27% daily change; large distance below MA200 (-32.13%); lower volatility 99% provides conservative exposure"}], "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": "Top mean reversion candidate: score 95 extreme oversold (-36.80% daily), -31.73% below MA50, -40.61% below MA200; strong recovery potential",
        "symbol": "PAGE_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Strong mean reversion candidate: score 88 oversold (-21.24% daily), -23.78% below MA50, -37.81% below MA200; good recovery setup",
        "symbol": "FUTR_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Position flat at avg price; no clear mean reversion signal",
        "symbol": "AUTO_CFD.UK"
      },
      {
        "reason": "Position flat at avg price; no clear mean reversion signal",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Existing position; score 90 oversold but already held - maintaining for mean reversion potential",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Position flat at avg price; no clear mean reversion signal",
        "symbol": "CRST_CFD.UK"
      },
      {
        "reason": "Existing position; score 87 oversold but already held - maintaining for mean reversion potential",
        "symbol": "IWG_CFD.UK"
      },
      {
        "reason": "Existing position; score 95 extreme oversold - adding to position",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Existing position; score 82 moderately oversold but already held - maintaining for mean reversion potential",
        "symbol": "UTG_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "ABF_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "AEO_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "AGFB_CFD.BE"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "AML_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "ATG_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "ATO_CFD.FR"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "BIG_CFD.FR"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "BTRW_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "CCL_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "CRWD_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "DKNG_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "DSY_CFD.FR"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "DT_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "ERA_CFD.FR"
      },
      {
        "reason": "No position; score 88 oversold - initiating new position",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "GO_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "HAIN_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "HIK_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "HYQ_CFD.DE"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "INF_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "LIO_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "LMND_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "LMP_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "LPE_CFD.FR"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "LXS_CFD.DE"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "MAN_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "MDB_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "PBB_CFD.DE"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "PROX_CFD.BE"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "RCO_CFD.FR"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "RIVN_CFD.US"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "RMV_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "RSW_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "SGRO_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "SYNT_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "TCAP_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "TRN_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "TRST_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "VTY_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "WIZZ_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "WPP_CFD.UK"
      },
      {
        "reason": "No position; not a top candidate this run",
        "symbol": "WTB_CFD.UK"
      }
    ],
    "sell": []
  },
  "portfolio_rationale": "Mean reversion strategy targeting oversold securities with high mean reversion scores. Initiating BUY for PAGE_CFD.UK (score 95, extreme oversold conditions) and FUTR_CFD.UK (score 88, significant oversold conditions) at fixed $3,000 position size each. Existing positions in CBG_CFD.UK, IWG_CFD.UK, PAGE_CFD.UK, and UTG_CFD.UK are maintained as they already represent strong mean reversion candidates. All other holdings and non-positions are HELD as no clear improvement signals warrant additional action. Portfolio maintains 9 positions after trades (7 existing + 2 new), staying within max 10 positions constraint. Max 2 buys and 0 sells respected per run."
}
Selection logs
#909stage12026-03-30T20:05:53.731002+00:00
{
  "selected_stocks": [
    {
      "symbol": "PAGE_CFD.UK",
      "selection_reason": "Extreme oversold: -36.80% daily change; large distance below MA50 (-31.73%) and MA200 (-40.61%); volatility 193% acceptable for mean reversion",
      "mean_reversion_score": 95
    },
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "Very oversold: -26.63% daily change; significant distance below MA50 (-22.13%) and MA200 (-13.37%); volatility 169% acceptable",
      "mean_reversion_score": 90
    },
    {
      "symbol": "FUTR_CFD.UK",
      "selection_reason": "Oversold: -21.24% daily change; large distance below MA50 (-23.78%) and MA200 (-37.81%); volatility 154% acceptable",
      "mean_reversion_score": 88
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "Very oversold: -26.79% daily change; significant distance below MA50 (-22.14%) and MA200 (-17.65%); volatility 154% acceptable",
      "mean_reversion_score": 87
    },
    {
      "symbol": "UTG_CFD.UK",
      "selection_reason": "Moderately oversold: -8.27% daily change; large distance below MA200 (-32.13%); lower volatility 99% provides conservative exposure",
      "mean_reversion_score": 82
    }
  ],
  "rejected_common_reasons": [
    "Price above or near moving averages (not oversold)",
    "Extremely high volatility (>200%) indicating potential binary/event risk",
    "Insufficient distance from moving averages for mean reversion signal",
    "Minimal daily price change (<5%)"
  ]
}