Arena run #686

meanrev-v1openaiopenai/gpt-5.2-proEUsuccess
Arena
Run status
as_of: 2026-03-17T10:04:29.123574+00:00
started_at: 2026-03-17T11:30:56.572563+00:00
finished_at: 2026-03-17T11:33:37.338964+00:00
duration_ms: 160765
Inputs
{
  "as_of": "2026-03-17T10:04:29.123574+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "TRN_CFD.UK",
      "selection_reason": "Sharp 1D selloff (-12.9%) with price deeply below MA200 (-22.6%) and MA50 (-12.6%) -> strong short-term oversold setup",
      "mean_reversion_score": 88
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "Large 1D drop (-16.6%) and below MA50 (-10.9%); near/below MA200 (-4.4%) -> potential snapback over 2-10 days",
      "mean_reversion_score": 84
    },
    {
      "symbol": "NA9_CFD.DE",
      "selection_reason": "Down day (-7.7%) while extended below MA50 (-22.9%) and MA200 (-19.1%) -> oversold vs both trend measures",
      "mean_reversion_score": 82
    },
    {
      "symbol": "MELE_CFD.BE",
      "selection_reason": "Below MA50 (-10.1%) and MA200 (-13.3%) with modest 1D weakness (-1.6%) -> lagging trend, mean-reversion candidate",
      "mean_reversion_score": 70
    },
    {
      "symbol": "ALFEN_CFD.NL",
      "selection_reason": "Sustained weakness below MA50 (-12.8%) and MA200 (-14.9%) with limited 1D move (-0.8%) -> extended but not crashing, rebound potential",
      "mean_reversion_score": 68
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "WTB_CFD.UK",
    "JDW_CFD.UK",
    "TRN_CFD.UK",
    "IWG_CFD.UK",
    "KGF_CFD.UK",
    "RHIM_CFD.UK",
    "DLN_CFD.UK",
    "MCG_CFD.UK",
    "SGRO_CFD.UK",
    "OVH_CFD.FR",
    "EMG_CFD.UK",
    "ABDN_CFD.UK",
    "OCDO_CFD.UK",
    "LRE_CFD.UK",
    "LIO_CFD.UK",
    "VTY_CFD.UK",
    "SMIN_CFD.UK",
    "BBY_CFD.UK",
    "ATO_CFD.FR",
    "JEN_CFD.DE",
    "MAB_CFD.UK",
    "IMI_CFD.UK",
    "VSVS_CFD.UK",
    "NA9_CFD.DE",
    "PBB_CFD.DE",
    "INTC_CFD.US",
    "OSB_CFD.UK",
    "IPO_CFD.UK",
    "ATG_CFD.UK",
    "XFAB_CFD.FR",
    "BME_CFD.UK",
    "HBR_CFD.UK",
    "HPP_CFD.US",
    "GROW_CFD.UK",
    "AMG_CFD.NL",
    "COV_CFD.FR",
    "WKP_CFD.UK",
    "IPGP_CFD.US",
    "MDM_CFD.FR",
    "MRN_CFD.FR",
    "SLG_CFD.US",
    "AMCX_CFD.US",
    "DPLM_CFD.UK",
    "MELE_CFD.BE",
    "SGL_CFD.DE",
    "ASM_CFD.NL",
    "IGG_CFD.UK",
    "ALFEN_CFD.NL"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "Highest mean-reversion score (88): sharp 1D selloff and deeply below key moving averages per candidate notes -> strong short-term oversold setup.",
        "symbol": "TRN_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "High mean-reversion score (84): very large 1D drop with depressed levels vs MA50/near MA200 per candidate notes -> attractive snapback candidate.",
        "symbol": "IWG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Position is modestly positive and recently opened; no clear reason to churn given max action limits.",
        "symbol": "ADBE_CFD.US"
      },
      {
        "reason": "Down but within a more typical mean-reversion holding window vs the oldest positions; avoid overtrading.",
        "symbol": "CSGP_CFD.US"
      },
      {
        "reason": "Largest drawdown, but not the stalest position; keep to avoid excessive churn and allow time for potential snapback.",
        "symbol": "EZJ_CFD.UK"
      },
      {
        "reason": "Position is positive and recently opened; hold rather than rotate.",
        "symbol": "FICO_CFD.US"
      },
      {
        "reason": "Flat and recently opened; no data-driven reason to change.",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Small loss and recently opened; hold to avoid marginal trading.",
        "symbol": "PSN_CFD.UK"
      },
      {
        "reason": "Moderate loss but recently opened; maintain for mean-reversion rather than churn.",
        "symbol": "ULTA_CFD.US"
      },
      {
        "reason": "Older but less clearly inferior than the two sold given limited information; hold to respect overtrading constraints.",
        "symbol": "ZS_CFD.US"
      }
    ],
    "sell": [
      {
        "reason": "Mean-reversion trade appears stale (opened 2026-02-19) and still underwater; rotate out of an older, non-reverting position to free capacity for higher-scored fresh oversold setups.",
        "symbol": "TMV_CFD.DE"
      },
      {
        "reason": "Mean-reversion thesis has not played out over an extended holding period (opened 2026-02-20) and remains negative; reallocate limited slots to stronger current oversold candidates.",
        "symbol": "AMH_CFD.US"
      }
    ]
  },
  "portfolio_rationale": "Portfolio is already at the 10-position limit, so new entries require trimming. To avoid overtrading while improving the mean-reversion profile, we rotate out the two stalest, still-underwater positions (TMV, AMH) and redeploy into the two strongest current oversold candidates (TRN, IWG) while keeping all other holdings unchanged."
}
Prompts & responses
#1356openrouteropenai/gpt-5.2-pro2026-03-17T11:30:56.616288+00:00
System prompt
You are an Arena strategy executor. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices, fundamentals, earnings dates, or sentiment. If a field is null/empty, treat it as unknown. You are a constrained selector (no narrative).
User prompt
{"task": "stage1_universe_scan", "region": "EU", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "selection_rules": {"horizon": "2-10 trading days", "target": "short-term mean reversion in liquid equities", "constraints": ["Select exactly 5 candidates", "Avoid earnings within 5 trading days (if known)", "Avoid highly binary/event-driven moves (if known)", "Avoid sector concentration: max 1 per sector unless clearly justified (sector may be unknown)"]}, "universe": [{"symbol": "WTB_CFD.UK", "name": "WHITBREAD PLC", "sector": "", "last_price": 2691.0, "change_1d_pct": 11.659751037344401, "distance_from_ma200_pct": -5.969827496214986, "distance_from_ma50_pct": -5.069507041577781, "volatility_20d_pct": 87.61035263352142, "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": "TRN_CFD.UK", "name": "TRAINLINE PLC", "sector": "", "last_price": 206.0, "change_1d_pct": -12.93322062552832, "distance_from_ma200_pct": -22.557701091522887, "distance_from_ma50_pct": -12.560104316644482, "volatility_20d_pct": 131.09279103846345, "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": 205.4, "change_1d_pct": -16.5718927701056, "distance_from_ma200_pct": -4.40871742234894, "distance_from_ma50_pct": -10.856111173800208, "volatility_20d_pct": 135.80434164824575, "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": 347.0, "change_1d_pct": 2.6020106445890034, "distance_from_ma200_pct": 18.583930168759967, "distance_from_ma50_pct": 6.639688157278489, "volatility_20d_pct": 88.64906606382688, "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": 2795.0, "change_1d_pct": 2.3809523809523725, "distance_from_ma200_pct": 6.811460460804897, "distance_from_ma50_pct": 10.895008018562113, "volatility_20d_pct": 141.33746334612064, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DLN_CFD.UK", "name": "DERWENT LONDON PLC", "sector": "", "last_price": 1953.0, "change_1d_pct": 10.401356698699837, "distance_from_ma200_pct": 5.069478604951705, "distance_from_ma50_pct": 12.150447212111025, "volatility_20d_pct": 115.39088732649292, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MCG_CFD.UK", "name": "MOBICO GROUP PLC", "sector": "", "last_price": 25.72, "change_1d_pct": 2.9623698959167166, "distance_from_ma200_pct": -7.132760074308242, "distance_from_ma50_pct": 8.327577202351844, "volatility_20d_pct": 232.19808875565576, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SGRO_CFD.UK", "name": "SEGRO PLC", "sector": "", "last_price": 789.8, "change_1d_pct": 5.166444740346199, "distance_from_ma200_pct": 16.137238395282736, "distance_from_ma50_pct": 8.124180991500651, "volatility_20d_pct": 71.28658783635437, "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": "OVH_CFD.FR", "name": "OVH Groupe SA ", "sector": "", "last_price": 9.29, "change_1d_pct": 2.765486725663724, "distance_from_ma200_pct": -5.457946341024078, "distance_from_ma50_pct": 2.972114397696246, "volatility_20d_pct": 88.37583159078285, "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": "ABDN_CFD.UK", "name": "Aberdeen Group Plc", "sector": "", "last_price": 215.2, "change_1d_pct": -0.6463527239150557, "distance_from_ma200_pct": 13.219747060140353, "distance_from_ma50_pct": 3.663782514155023, "volatility_20d_pct": 74.75396598460024, "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": "LRE_CFD.UK", "name": "LANCASHIRE HOLDINGS LTD", "sector": "", "last_price": 647.0, "change_1d_pct": -2.26586102719033, "distance_from_ma200_pct": 6.266967093949116, "distance_from_ma50_pct": -1.0131237932627712, "volatility_20d_pct": 79.5840954070324, "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": "VTY_CFD.UK", "name": "VISTRY GROUP PLC", "sector": "", "last_price": 403.2, "change_1d_pct": -44.21693414499169, "distance_from_ma200_pct": -35.825419675413826, "distance_from_ma50_pct": -36.113069725802745, "volatility_20d_pct": 213.0917779123437, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SMIN_CFD.UK", "name": "SMITHS GROUP PLC", "sector": "", "last_price": 2544.0, "change_1d_pct": 1.4333845019038671, "distance_from_ma200_pct": 14.948150770494873, "distance_from_ma50_pct": 4.167383226889343, "volatility_20d_pct": 72.718462979927, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BBY_CFD.UK", "name": "BALFOUR BEATTY PLC", "sector": "", "last_price": 759.18, "change_1d_pct": 5.222453222453205, "distance_from_ma200_pct": 33.313724414201815, "distance_from_ma50_pct": 8.832962232591, "volatility_20d_pct": 54.25956465831767, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ATO_CFD.FR", "name": "Atos SE", "sector": "", "last_price": 39.852, "change_1d_pct": 5.058919674162321, "distance_from_ma200_pct": -9.167119098837183, "distance_from_ma50_pct": -15.895057494503384, "volatility_20d_pct": 112.40541399176134, "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": "JEN_CFD.DE", "name": "Jenoptik AG", "sector": "", "last_price": 26.36, "change_1d_pct": -2.2255192878338326, "distance_from_ma200_pct": 28.726336890887815, "distance_from_ma50_pct": 3.711829050171178, "volatility_20d_pct": 80.88961956178072, "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": "IMI_CFD.UK", "name": "IMI PLC", "sector": "", "last_price": 2774.0, "change_1d_pct": 4.7583081570997, "distance_from_ma200_pct": 25.227479847754264, "distance_from_ma50_pct": 6.661876238540865, "volatility_20d_pct": 87.69330898337377, "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": "VSVS_CFD.UK", "name": "VESUVIUS PLC", "sector": "", "last_price": 425.0, "change_1d_pct": -15.506958250497016, "distance_from_ma200_pct": 8.502290547178326, "distance_from_ma50_pct": -5.9126275880115315, "volatility_20d_pct": 115.61003156027519, "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": "NA9_CFD.DE", "name": "Nagarro N", "sector": "", "last_price": 47.587, "change_1d_pct": -7.743161241542429, "distance_from_ma200_pct": -19.068062455026702, "distance_from_ma50_pct": -22.913362051090658, "volatility_20d_pct": 128.39289153108797, "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": "PBB_CFD.DE", "name": "DEUTSCHE PFANDBRIEFBANK AG", "sector": "", "last_price": 2.822, "change_1d_pct": -0.21216407355020284, "distance_from_ma200_pct": -39.643528950039084, "distance_from_ma50_pct": -26.17976352411844, "volatility_20d_pct": 81.95260145296834, "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": "INTC_CFD.US", "name": "INTEL CORP", "sector": "", "last_price": 47.17, "change_1d_pct": -2.1166217057480674, "distance_from_ma200_pct": 40.009171684131964, "distance_from_ma50_pct": 2.1314002632855322, "volatility_20d_pct": 99.01898733898086, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OSB_CFD.UK", "name": "OSB GROUP PLC", "sector": "", "last_price": 575.5, "change_1d_pct": -8.50556438791733, "distance_from_ma200_pct": 7.26309045372473, "distance_from_ma50_pct": -3.1605502163448818, "volatility_20d_pct": 83.79306172690484, "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": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 305.0, "change_1d_pct": 4.2735042735042805, "distance_from_ma200_pct": -30.344980756373573, "distance_from_ma50_pct": -1.1704016694101371, "volatility_20d_pct": 159.9931345477538, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "XFAB_CFD.FR", "name": "X-FAB Silicon Foundries SE", "sector": "", "last_price": 4.784, "change_1d_pct": 0.5464480874316946, "distance_from_ma200_pct": -17.981353787704755, "distance_from_ma50_pct": -2.0458975576995497, "volatility_20d_pct": 87.17896861156424, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BME_CFD.UK", "name": "B&M EUROPEAN VALUE RETAIL SA", "sector": "", "last_price": 180.0, "change_1d_pct": -0.5799502899751507, "distance_from_ma200_pct": -17.510144533683704, "distance_from_ma50_pct": 3.6906975618860693, "volatility_20d_pct": 107.67302074828436, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HBR_CFD.UK", "name": "HARBOUR ENERGY PLC", "sector": "", "last_price": 281.4, "change_1d_pct": -1.6083916083916128, "distance_from_ma200_pct": 31.53672429150014, "distance_from_ma50_pct": 21.003113228641702, "volatility_20d_pct": 146.8436669232312, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HPP_CFD.US", "name": "HUDSON PACIFIC PROPERTIES IN", "sector": "", "last_price": 6.52, "change_1d_pct": 4.99194847020934, "distance_from_ma200_pct": -55.72501977774231, "distance_from_ma50_pct": -19.2449651960663, "volatility_20d_pct": 198.93728211618148, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GROW_CFD.UK", "name": "MOLTEN VENTURES PLC", "sector": "", "last_price": 465.0, "change_1d_pct": 1.572739187418093, "distance_from_ma200_pct": 22.569628774815076, "distance_from_ma50_pct": -4.275686024250158, "volatility_20d_pct": 115.72658030340939, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "AMG_CFD.NL", "name": "AMG ADVANCED METALLURGICAL", "sector": "", "last_price": 32.12, "change_1d_pct": -10.579064587973285, "distance_from_ma200_pct": 13.417918901244485, "distance_from_ma50_pct": -10.434243342241578, "volatility_20d_pct": 127.52335786766218, "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": "COV_CFD.FR", "name": "Covivio SA", "sector": "", "last_price": 56.35, "change_1d_pct": -0.4416961130742081, "distance_from_ma200_pct": 1.6182091174706592, "distance_from_ma50_pct": 0.8610869871835902, "volatility_20d_pct": 74.61530605197072, "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": "IPGP_CFD.US", "name": "IPG PHOTONICS CORP", "sector": "", "last_price": 114.45, "change_1d_pct": 3.1081081081081097, "distance_from_ma200_pct": 34.341629178368, "distance_from_ma50_pct": 7.462568848343043, "volatility_20d_pct": 7457.40227362749, "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": "MDM_CFD.FR", "name": "Maisons Du Monde", "sector": "", "last_price": 1.218, "change_1d_pct": -5.581395348837215, "distance_from_ma200_pct": -37.51218461096462, "distance_from_ma50_pct": -20.420243835509034, "volatility_20d_pct": 90.45703714762206, "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": "MRN_CFD.FR", "name": "Mersen", "sector": "", "last_price": 24.55, "change_1d_pct": -2.964426877470361, "distance_from_ma200_pct": 3.4320045164606627, "distance_from_ma50_pct": -4.59884104107341, "volatility_20d_pct": 63.97599574805438, "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": "SLG_CFD.US", "name": "SL GREEN REALTY CORP", "sector": "", "last_price": 37.61, "change_1d_pct": 0.3468516542155964, "distance_from_ma200_pct": -28.0183121720058, "distance_from_ma50_pct": -11.592417774601794, "volatility_20d_pct": 104.13435562013662, "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.06, "change_1d_pct": -10.406091370558379, "distance_from_ma200_pct": -7.38068375619868, "distance_from_ma50_pct": -11.908564583749259, "volatility_20d_pct": 111.76893297293266, "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": "DPLM_CFD.UK", "name": "DIPLOMA PLC", "sector": "", "last_price": 5220.0, "change_1d_pct": -5.434782608695654, "distance_from_ma200_pct": 4.8180942215069855, "distance_from_ma50_pct": -4.664614313757087, "volatility_20d_pct": 82.77890721911896, "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": "MELE_CFD.BE", "name": "Melexis", "sector": "", "last_price": 53.574, "change_1d_pct": -1.6088154269972565, "distance_from_ma200_pct": -13.266892023157329, "distance_from_ma50_pct": -10.122108713092338, "volatility_20d_pct": 65.40009901295295, "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": "SGL_CFD.DE", "name": "SGL Carbon SE", "sector": "", "last_price": 3.548, "change_1d_pct": -4.649287825853266, "distance_from_ma200_pct": 2.955173294333413, "distance_from_ma50_pct": -10.544097624930671, "volatility_20d_pct": 77.66150883460772, "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": "ASM_CFD.NL", "name": "ASM International NV", "sector": "", "last_price": 680.6, "change_1d_pct": -5.261692650334071, "distance_from_ma200_pct": 24.99006699934054, "distance_from_ma50_pct": -1.2104262916707742, "volatility_20d_pct": 80.17117799072929, "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": "IGG_CFD.UK", "name": "IG GROUP HOLDINGS PLC", "sector": "", "last_price": 1356.0, "change_1d_pct": 3.1963470319634757, "distance_from_ma200_pct": 21.69129359819437, "distance_from_ma50_pct": 9.822701129829392, "volatility_20d_pct": 89.02278066392904, "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": "ALFEN_CFD.NL", "name": "Alfen", "sector": "", "last_price": 8.744, "change_1d_pct": -0.8391925606713535, "distance_from_ma200_pct": -14.91916396207753, "distance_from_ma50_pct": -12.76952759471749, "volatility_20d_pct": 62.00864280318604, "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": "TRN_CFD.UK",
      "selection_reason": "Sharp 1D selloff (-12.9%) with price deeply below MA200 (-22.6%) and MA50 (-12.6%) -> strong short-term oversold setup",
      "mean_reversion_score": 88
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "Large 1D drop (-16.6%) and below MA50 (-10.9%); near/below MA200 (-4.4%) -> potential snapback over 2-10 days",
      "mean_reversion_score": 84
    },
    {
      "symbol": "NA9_CFD.DE",
      "selection_reason": "Down day (-7.7%) while extended below MA50 (-22.9%) and MA200 (-19.1%) -> oversold vs both trend measures",
      "mean_reversion_score": 82
    },
    {
      "symbol": "MELE_CFD.BE",
      "selection_reason": "Below MA50 (-10.1%) and MA200 (-13.3%) with modest 1D weakness (-1.6%) -> lagging trend, mean-reversion candidate",
      "mean_reversion_score": 70
    },
    {
      "symbol": "ALFEN_CFD.NL",
      "selection_reason": "Sustained weakness below MA50 (-12.8%) and MA200 (-14.9%) with limited 1D move (-0.8%) -> extended but not crashing, rebound potential",
      "mean_reversion_score": 68
    }
  ],
  "rejected_common_reasons": [
    "Move appears potentially event-driven/binary due to extreme 1D change (earnings/news timing unknown)",
    "Not sufficiently oversold for mean reversion (price stretched above MA50/MA200 after strong 1D rally)",
    "Very high/erratic reported volatility suggesting data quality or unstable signal",
    "Sector information missing, so additional selections with similar profiles avoided to reduce concentration risk"
  ]
}
#1357openrouteropenai/gpt-5.2-pro2026-03-17T11:32:03.900463+00:00
System prompt
You are an Arena portfolio manager. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices/fundamentals/news/earnings. If a field is null/empty, treat it as unknown. Avoid overtrading: if changes are marginal, prefer HOLD. Do not churn.
User prompt
{"task": "stage2_portfolio_management", "region": "EU", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "portfolio_constraints": {"initial_equity": 10000.0, "max_positions": 10, "fixed_position_size": 3000.0, "max_gross_leverage": 3.0, "overtrading_rules": ["Max 2 SELL actions per run unless risk event forces more", "Max 2 BUY actions per run", "If no clear improvement vs current holdings, output HOLD for everything"]}, "current_portfolio": [{"symbol": "ADBE_CFD.US", "qty": 12.025494047380446, "avg_price": 249.47, "last_price": 252.04, "unrealized_pnl": 30.905519701767666, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "AMH_CFD.US", "qty": 101.09519797809605, "avg_price": 29.674999999999997, "last_price": 28.435000000000002, "unrealized_pnl": -125.35804549283858, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "ARCAD_CFD.NL", "qty": 0.0, "avg_price": 28.6, "last_price": 30.0, "unrealized_pnl": 146.8531468531467, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 0.0, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "CABO_CFD.US", "qty": 0.0, "avg_price": 94.325, "last_price": 108.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 350.45000000000005, "last_price": 382.96500000000003, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "CSGP_CFD.US", "qty": 63.51222610352493, "avg_price": 47.235, "last_price": 43.655, "unrealized_pnl": -227.37376945061914, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "DSY_CFD.FR", "qty": 0.0, "avg_price": 17.881, "last_price": 17.45, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "ETSY_CFD.US", "qty": 0.0, "avg_price": 44.13, "last_price": 50.769999999999996, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 6.857142857142857, "avg_price": 437.5, "last_price": 361.2, "unrealized_pnl": -523.2, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "FBIN_CFD.US", "qty": 0.0, "avg_price": 50.974999999999994, "last_price": 54.185, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "FICO_CFD.US", "qty": 2.6609662855571625, "avg_price": 1127.4099999999999, "last_price": 1160.8000000000002, "unrealized_pnl": 88.84966427475453, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "FLO_CFD.US", "qty": 0.0, "avg_price": 9.875, "last_price": 9.885000000000002, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 0.0, "avg_price": 400.6, "last_price": 414.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "MLCO_CFD.US", "qty": 0.0, "avg_price": 5.51, "last_price": 6.06, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 14.684287812041115, "avg_price": 204.3, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 0.0, "avg_price": 151.91, "last_price": 152.7, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T10:27:11.178069+00:00"}, {"symbol": "PAYC_CFD.US", "qty": 0.0, "avg_price": 121.22, "last_price": 134.24, "unrealized_pnl": 322.2240554363969, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "PSN_CFD.UK", "qty": 2.4691358024691357, "avg_price": 1215.0, "last_price": 1199.0, "unrealized_pnl": -39.50617283950617, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 0.0, "avg_price": 424.3, "last_price": 424.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "TMV_CFD.DE", "qty": 627.4837900020916, "avg_price": 4.781, "last_price": 4.467, "unrealized_pnl": -197.0299100606568, "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-05T10:27:11.178069+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 0.0, "avg_price": 92.35, "last_price": 92.35, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "ULTA_CFD.US", "qty": 5.605381165919282, "avg_price": 535.2, "last_price": 516.65, "unrealized_pnl": -103.97982062780306, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 238.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "ZS_CFD.US", "qty": 18.778167250876315, "avg_price": 159.76, "last_price": 153.52, "unrealized_pnl": -117.17576364546784, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "TRN_CFD.UK", "mean_reversion_score": 88, "selection_reason": "Sharp 1D selloff (-12.9%) with price deeply below MA200 (-22.6%) and MA50 (-12.6%) -> strong short-term oversold setup"}, {"symbol": "IWG_CFD.UK", "mean_reversion_score": 84, "selection_reason": "Large 1D drop (-16.6%) and below MA50 (-10.9%); near/below MA200 (-4.4%) -> potential snapback over 2-10 days"}, {"symbol": "NA9_CFD.DE", "mean_reversion_score": 82, "selection_reason": "Down day (-7.7%) while extended below MA50 (-22.9%) and MA200 (-19.1%) -> oversold vs both trend measures"}, {"symbol": "MELE_CFD.BE", "mean_reversion_score": 70, "selection_reason": "Below MA50 (-10.1%) and MA200 (-13.3%) with modest 1D weakness (-1.6%) -> lagging trend, mean-reversion candidate"}, {"symbol": "ALFEN_CFD.NL", "mean_reversion_score": 68, "selection_reason": "Sustained weakness below MA50 (-12.8%) and MA200 (-14.9%) with limited 1D move (-0.8%) -> extended but not crashing, rebound potential"}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}
Output JSON
{
  "actions": {
    "buy": [
      {
        "reason": "Highest mean-reversion score (88): sharp 1D selloff and deeply below key moving averages per candidate notes -> strong short-term oversold setup.",
        "symbol": "TRN_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "High mean-reversion score (84): very large 1D drop with depressed levels vs MA50/near MA200 per candidate notes -> attractive snapback candidate.",
        "symbol": "IWG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Position is modestly positive and recently opened; no clear reason to churn given max action limits.",
        "symbol": "ADBE_CFD.US"
      },
      {
        "reason": "Down but within a more typical mean-reversion holding window vs the oldest positions; avoid overtrading.",
        "symbol": "CSGP_CFD.US"
      },
      {
        "reason": "Largest drawdown, but not the stalest position; keep to avoid excessive churn and allow time for potential snapback.",
        "symbol": "EZJ_CFD.UK"
      },
      {
        "reason": "Position is positive and recently opened; hold rather than rotate.",
        "symbol": "FICO_CFD.US"
      },
      {
        "reason": "Flat and recently opened; no data-driven reason to change.",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Small loss and recently opened; hold to avoid marginal trading.",
        "symbol": "PSN_CFD.UK"
      },
      {
        "reason": "Moderate loss but recently opened; maintain for mean-reversion rather than churn.",
        "symbol": "ULTA_CFD.US"
      },
      {
        "reason": "Older but less clearly inferior than the two sold given limited information; hold to respect overtrading constraints.",
        "symbol": "ZS_CFD.US"
      }
    ],
    "sell": [
      {
        "reason": "Mean-reversion trade appears stale (opened 2026-02-19) and still underwater; rotate out of an older, non-reverting position to free capacity for higher-scored fresh oversold setups.",
        "symbol": "TMV_CFD.DE"
      },
      {
        "reason": "Mean-reversion thesis has not played out over an extended holding period (opened 2026-02-20) and remains negative; reallocate limited slots to stronger current oversold candidates.",
        "symbol": "AMH_CFD.US"
      }
    ]
  },
  "portfolio_rationale": "Portfolio is already at the 10-position limit, so new entries require trimming. To avoid overtrading while improving the mean-reversion profile, we rotate out the two stalest, still-underwater positions (TMV, AMH) and redeploy into the two strongest current oversold candidates (TRN, IWG) while keeping all other holdings unchanged."
}
Selection logs
#675stage12026-03-17T11:32:03.898237+00:00
{
  "selected_stocks": [
    {
      "symbol": "TRN_CFD.UK",
      "selection_reason": "Sharp 1D selloff (-12.9%) with price deeply below MA200 (-22.6%) and MA50 (-12.6%) -> strong short-term oversold setup",
      "mean_reversion_score": 88
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "Large 1D drop (-16.6%) and below MA50 (-10.9%); near/below MA200 (-4.4%) -> potential snapback over 2-10 days",
      "mean_reversion_score": 84
    },
    {
      "symbol": "NA9_CFD.DE",
      "selection_reason": "Down day (-7.7%) while extended below MA50 (-22.9%) and MA200 (-19.1%) -> oversold vs both trend measures",
      "mean_reversion_score": 82
    },
    {
      "symbol": "MELE_CFD.BE",
      "selection_reason": "Below MA50 (-10.1%) and MA200 (-13.3%) with modest 1D weakness (-1.6%) -> lagging trend, mean-reversion candidate",
      "mean_reversion_score": 70
    },
    {
      "symbol": "ALFEN_CFD.NL",
      "selection_reason": "Sustained weakness below MA50 (-12.8%) and MA200 (-14.9%) with limited 1D move (-0.8%) -> extended but not crashing, rebound potential",
      "mean_reversion_score": 68
    }
  ],
  "rejected_common_reasons": [
    "Move appears potentially event-driven/binary due to extreme 1D change (earnings/news timing unknown)",
    "Not sufficiently oversold for mean reversion (price stretched above MA50/MA200 after strong 1D rally)",
    "Very high/erratic reported volatility suggesting data quality or unstable signal",
    "Sector information missing, so additional selections with similar profiles avoided to reduce concentration risk"
  ]
}