Arena run #726

meanrev-v1openaiopenai/gpt-5.2-proEUsuccess
Arena
Run status
as_of: 2026-03-19T10:09:24.325041+00:00
started_at: 2026-03-19T12:03:37.334104+00:00
finished_at: 2026-03-19T12:06:32.856313+00:00
duration_ms: 175521
Inputs
{
  "as_of": "2026-03-19T10:09:24.325041+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "AAL_CFD.UK",
      "selection_reason": "Sharp 1D selloff (-9.41%) with price stretched below MA50 (-14.65%) while still near/above MA200 (+5.59%)—classic pullback setup for 2-10d bounce.",
      "mean_reversion_score": 78
    },
    {
      "symbol": "IFX_CFD.DE",
      "selection_reason": "Down day (-4.72%) with meaningful oversold vs MA50 (-10.91%) but close to MA200 (+2.17%), suggesting a dip within a longer-term range.",
      "mean_reversion_score": 72
    },
    {
      "symbol": "JMT_CFD.PT",
      "selection_reason": "Large 1D drop (-7.29%) while only slightly below MA50 (-0.94%) and MA200 (-1.28%), indicating potential one-day dislocation vs trend.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "KBX_CFD.DE",
      "selection_reason": "Moderate pullback (-2.36%) with price below MA50 (-5.69%) but above MA200 (+8.00%), consistent with a short-term dip in an overall uptrend.",
      "mean_reversion_score": 66
    },
    {
      "symbol": "BAS_CFD.DE",
      "selection_reason": "Down move (-3.30%) with mild undercut of MA50 (-1.60%) while holding above MA200 (+4.69%); suitable for short-horizon reversion without extreme stretch.",
      "mean_reversion_score": 61
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "CRST_CFD.UK",
    "WTB_CFD.UK",
    "JDW_CFD.UK",
    "UTG_CFD.UK",
    "CTT_CFD.PT",
    "INVP_CFD.UK",
    "DLN_CFD.UK",
    "SOI_CFD.FR",
    "SGRO_CFD.UK",
    "EMG_CFD.UK",
    "ABDN_CFD.UK",
    "PBB_CFD.DE",
    "AAL_CFD.UK",
    "ENR_CFD.DE",
    "OPTU_CFD.US",
    "DOCS_CFD.UK",
    "SON_CFD.PT",
    "SRT3_CFD.DE",
    "SMIN_CFD.UK",
    "STM_CFD.DE",
    "BBY_CFD.UK",
    "IFX_CFD.DE",
    "DUE_CFD.DE",
    "OPM_CFD.FR",
    "PAT_CFD.DE",
    "JUN3_CFD.DE",
    "BAMNB_CFD.NL",
    "INH_CFD.DE",
    "IMI_CFD.UK",
    "FR_CFD.FR",
    "HYQ_CFD.DE",
    "FRVIA_CFD.FR",
    "AYV_CFD.FR",
    "JCQ_CFD.FR",
    "BDT_CFD.DE",
    "DOM_CFD.UK",
    "JMT_CFD.PT",
    "BARC_CFD.UK",
    "WIX_CFD.UK",
    "BESI_CFD.NL",
    "KBX_CFD.DE",
    "BAS_CFD.DE",
    "IPO_CFD.UK",
    "ATG_CFD.UK",
    "EGL_CFD.PT",
    "BME_CFD.UK",
    "BEI_CFD.DE",
    "EXM_CFD.BE"
  ]
}
Outputs
{
  "actions": {
    "buy": [],
    "hold": [
      {
        "reason": "Small drawdown and no new risk/edge information provided to justify rotation; avoid overtrading.",
        "symbol": "ADBE_CFD.US"
      },
      {
        "reason": "Meaningful drawdown but no validated catalyst/signal to exit; keep position to allow mean-reversion thesis to play out while leverage is addressed via another sell.",
        "symbol": "CSGP_CFD.US"
      },
      {
        "reason": "Largest drawdown, but without confirmed thesis-break information (news/earnings not provided), avoid realizing loss purely due to PnL; keep while overall leverage is reduced elsewhere.",
        "symbol": "EZJ_CFD.UK"
      },
      {
        "reason": "In profit; no mandate to take profits and no stronger replacement confirmed without adding leverage/churn.",
        "symbol": "FICO_CFD.US"
      },
      {
        "reason": "In profit and position size consistent; no clear improvement from switching given leverage constraint and overtrading rules.",
        "symbol": "IWG_CFD.UK"
      },
      {
        "reason": "Small drawdown; hold absent stronger evidence to exit.",
        "symbol": "PSN_CFD.UK"
      },
      {
        "reason": "Moderate drawdown; hold for potential reversion, no new risk flag provided.",
        "symbol": "ULTA_CFD.US"
      },
      {
        "reason": "Moderate drawdown; no new information to justify selling; avoid churn.",
        "symbol": "WPP_CFD.UK"
      },
      {
        "reason": "Small drawdown; hold as there is no explicit replacement that improves the portfolio without violating leverage/overtrading constraints.",
        "symbol": "ZS_CFD.US"
      }
    ],
    "sell": [
      {
        "reason": "Portfolio gross exposure appears above the max_gross_leverage (3.0) given current mark-to-market equity; exiting this roughly fixed-size position reduces leverage back within limits. Position is flat (no unrealized gain) so it’s the least costly de-risking cut.",
        "symbol": "OCDO_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Primary action is risk control: current gross exposure relative to estimated equity indicates leverage likely exceeds the 3.0 cap. Selling one ~fixed-size, flat PnL position (OCDO) brings leverage back within limits while minimizing opportunity cost. No new buys are initiated because adding a new fixed-size position would likely re-breach the leverage limit unless additional sells are made, and the strategy constraints emphasize avoiding overtrading/churn when improvements vs existing holdings are not clearly superior."
}
Prompts & responses
#1436openrouteropenai/gpt-5.2-pro2026-03-19T12:03:37.379410+00:00
System prompt
You are an Arena strategy executor. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices, fundamentals, earnings dates, or sentiment. If a field is null/empty, treat it as unknown. You are a constrained selector (no narrative).
User prompt
{"task": "stage1_universe_scan", "region": "EU", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "selection_rules": {"horizon": "2-10 trading days", "target": "short-term mean reversion in liquid equities", "constraints": ["Select exactly 5 candidates", "Avoid earnings within 5 trading days (if known)", "Avoid highly binary/event-driven moves (if known)", "Avoid sector concentration: max 1 per sector unless clearly justified (sector may be unknown)"]}, "universe": [{"symbol": "CRST_CFD.UK", "name": "CREST NICHOLSON HOLDINGS", "sector": "", "last_price": 167.8, "change_1d_pct": 24.85119047619049, "distance_from_ma200_pct": 1.2720261375977815, "distance_from_ma50_pct": 17.82963155418549, "volatility_20d_pct": 158.46878099582966, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": "UTG_CFD.UK", "name": "UNITE GROUP PLC/THE", "sector": "", "last_price": 567.5, "change_1d_pct": 3.4639927073837784, "distance_from_ma200_pct": -23.929923575376698, "distance_from_ma50_pct": -3.6875042216270137, "volatility_20d_pct": 73.84223442053181, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CTT_CFD.PT", "name": "CTT Correios de Portugal SA", "sector": "", "last_price": 6.74, "change_1d_pct": -1.027900146842886, "distance_from_ma200_pct": -7.600034272984313, "distance_from_ma50_pct": -4.056939501779366, "volatility_20d_pct": 54.50804863582498, "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": "", "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": "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": "SOI_CFD.FR", "name": "SOITEC", "sector": "", "last_price": 58.44, "change_1d_pct": -6.406149903907754, "distance_from_ma200_pct": 57.5930652579292, "distance_from_ma50_pct": 56.731488707769785, "volatility_20d_pct": 154.65744009200824, "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": "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": "PBB_CFD.DE", "name": "DEUTSCHE PFANDBRIEFBANK AG", "sector": "", "last_price": 2.826, "change_1d_pct": -0.17661603673613246, "distance_from_ma200_pct": -39.20253344290933, "distance_from_ma50_pct": -25.028651470775507, "volatility_20d_pct": 97.41158206484441, "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": "AAL_CFD.UK", "name": "ANGLO AMERICAN PLC", "sector": "", "last_price": 2917.0, "change_1d_pct": -9.40993788819876, "distance_from_ma200_pct": 5.592433370025218, "distance_from_ma50_pct": -14.648679980536272, "volatility_20d_pct": 96.48440980552296, "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": "ENR_CFD.DE", "name": "SIEMENS ENERGY AG", "sector": "", "last_price": 144.55, "change_1d_pct": -1.98405164230111, "distance_from_ma200_pct": 27.43747309696203, "distance_from_ma50_pct": -3.4877929250643147, "volatility_20d_pct": 100.71407605132276, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OPTU_CFD.US", "name": "Optimum Communications Inc.", "sector": "", "last_price": 1.44, "change_1d_pct": 0.6993006993007089, "distance_from_ma200_pct": -30.485155684286745, "distance_from_ma50_pct": -10.86902698687794, "volatility_20d_pct": 129.59489853690494, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DOCS_CFD.UK", "name": "DR. MARTENS PLC", "sector": "", "last_price": 65.6, "change_1d_pct": -1.501501501501501, "distance_from_ma200_pct": -13.08259339811949, "distance_from_ma50_pct": -12.14348468939509, "volatility_20d_pct": 121.2025974369199, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SON_CFD.PT", "name": "", "sector": "", "last_price": 1.8639999999999999, "change_1d_pct": -3.818369453044379, "distance_from_ma200_pct": 24.974019617702847, "distance_from_ma50_pct": 0.2926997245179086, "volatility_20d_pct": 53.14142319218139, "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": "SRT3_CFD.DE", "name": "SARTORIUS AG-VORZUG", "sector": "", "last_price": 211.481, "change_1d_pct": 2.7659398704498406, "distance_from_ma200_pct": -4.818641505865662, "distance_from_ma50_pct": -10.727537579273893, "volatility_20d_pct": 82.06713361577874, "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": "STM_CFD.DE", "name": "STABILUS SA", "sector": "", "last_price": 15.28, "change_1d_pct": -5.690655474632777, "distance_from_ma200_pct": -31.249723007923603, "distance_from_ma50_pct": -19.092822982721458, "volatility_20d_pct": 67.18192766585815, "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": "IFX_CFD.DE", "name": "INFINEON TECHNOLOGIES AG", "sector": "", "last_price": 37.723, "change_1d_pct": -4.720650636492218, "distance_from_ma200_pct": 2.167044729600476, "distance_from_ma50_pct": -10.914807605929022, "volatility_20d_pct": 82.74754451039385, "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": "DUE_CFD.DE", "name": "DUERR AG", "sector": "", "last_price": 18.572, "change_1d_pct": -2.2526315789473728, "distance_from_ma200_pct": -14.016090269215942, "distance_from_ma50_pct": -17.510058069863277, "volatility_20d_pct": 84.63567658964466, "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": "OPM_CFD.FR", "name": "OPmobility", "sector": "", "last_price": 14.07, "change_1d_pct": -3.3653846153846145, "distance_from_ma200_pct": -0.9741762188111736, "distance_from_ma50_pct": -12.805289936354669, "volatility_20d_pct": 80.56983186296249, "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": "PAT_CFD.DE", "name": "PATRIZIA AG", "sector": "", "last_price": 7.113, "change_1d_pct": -2.6016705463508094, "distance_from_ma200_pct": -8.505290562911782, "distance_from_ma50_pct": -11.339075373627328, "volatility_20d_pct": 66.59621989003965, "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": "JUN3_CFD.DE", "name": "", "sector": "", "last_price": 28.6, "change_1d_pct": -1.6810478187630928, "distance_from_ma200_pct": -15.152665867638149, "distance_from_ma50_pct": -17.199609738020715, "volatility_20d_pct": 72.09475568748597, "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": "BAMNB_CFD.NL", "name": "Royal BAM Group NV", "sector": "", "last_price": 9.235, "change_1d_pct": 7.259001161440182, "distance_from_ma200_pct": 25.497966008872485, "distance_from_ma50_pct": 2.7478799557633327, "volatility_20d_pct": 76.00421721263548, "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": "INH_CFD.DE", "name": "Indus Holding AG", "sector": "", "last_price": 27.595, "change_1d_pct": -3.9572601976889943, "distance_from_ma200_pct": 8.830815113029056, "distance_from_ma50_pct": -10.14468025247407, "volatility_20d_pct": 63.838980003206856, "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": "FR_CFD.FR", "name": "Valeo S.A.", "sector": "", "last_price": 10.435, "change_1d_pct": 1.527534539793729, "distance_from_ma200_pct": -4.7262534637736, "distance_from_ma50_pct": -13.05412890818982, "volatility_20d_pct": 84.91345418962405, "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": "HYQ_CFD.DE", "name": "HYPOPORT SE", "sector": "", "last_price": 82.3, "change_1d_pct": 4.707379134860057, "distance_from_ma200_pct": -40.95816010418051, "distance_from_ma50_pct": -13.41228001143, "volatility_20d_pct": 117.16536187138387, "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": "FRVIA_CFD.FR", "name": "FORVIA SE", "sector": "", "last_price": 9.704, "change_1d_pct": 1.0412328196584886, "distance_from_ma200_pct": -15.877293891134602, "distance_from_ma50_pct": -25.14297968585353, "volatility_20d_pct": 104.52745179605974, "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": "AYV_CFD.FR", "name": "AYVENS", "sector": "", "last_price": 9.885, "change_1d_pct": 2.75467775467777, "distance_from_ma200_pct": -4.923720161220901, "distance_from_ma50_pct": -10.80451887677759, "volatility_20d_pct": 70.36446158691075, "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": "JCQ_CFD.FR", "name": "", "sector": "", "last_price": 20.638, "change_1d_pct": -6.615384615384611, "distance_from_ma200_pct": 0.2803164772542388, "distance_from_ma50_pct": -9.488728412680159, "volatility_20d_pct": 63.94827968868113, "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": "BDT_CFD.DE", "name": "Bertrandt AG", "sector": "", "last_price": 16.8, "change_1d_pct": -4.977375565610853, "distance_from_ma200_pct": -12.65349328835682, "distance_from_ma50_pct": -9.435622204229144, "volatility_20d_pct": 119.9193797076092, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DOM_CFD.UK", "name": "DOMINO'S PIZZA GROUP PLC", "sector": "", "last_price": 189.21, "change_1d_pct": 4.190528634361246, "distance_from_ma200_pct": -12.46581454882838, "distance_from_ma50_pct": 4.428944053991102, "volatility_20d_pct": 85.812071272284, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "JMT_CFD.PT", "name": "Jeronimo Martins SGPS SA", "sector": "", "last_price": 20.86, "change_1d_pct": -7.28888888888889, "distance_from_ma200_pct": -1.2756314798219703, "distance_from_ma50_pct": -0.9443056271801975, "volatility_20d_pct": 41.97995546507682, "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": "BARC_CFD.UK", "name": "BARCLAYS PLC", "sector": "", "last_price": 387.05, "change_1d_pct": -0.025829781738340163, "distance_from_ma200_pct": -4.070147140358471, "distance_from_ma50_pct": -15.299970063392077, "volatility_20d_pct": 78.97396535754493, "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": "WIX_CFD.UK", "name": "WICKES GROUP PLC", "sector": "", "last_price": 226.5, "change_1d_pct": 5.841121495327095, "distance_from_ma200_pct": 8.152450548306668, "distance_from_ma50_pct": 0.8752318126188152, "volatility_20d_pct": 104.79521770239528, "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": "BESI_CFD.NL", "name": "BE SEMICONDUCTOR INDUSTRIES", "sector": "", "last_price": 181.35, "change_1d_pct": -3.7931034482758696, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 9.39196525515744, "volatility_20d_pct": 5143.441723560482, "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": "KBX_CFD.DE", "name": "KNORR-BREMSE AG", "sector": "", "last_price": 97.491, "change_1d_pct": -2.3625438157235834, "distance_from_ma200_pct": 7.9958060526436725, "distance_from_ma50_pct": -5.689854851510201, "volatility_20d_pct": 60.6413564634142, "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": "BAS_CFD.DE", "name": "BASF SE", "sector": "", "last_price": 46.7, "change_1d_pct": -3.296612275325106, "distance_from_ma200_pct": 4.694013251078655, "distance_from_ma50_pct": -1.6008094439624032, "volatility_20d_pct": 61.25729689372559, "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": 55.9, "change_1d_pct": -2.951388888888895, "distance_from_ma200_pct": 6.980220141944948, "distance_from_ma50_pct": -4.919036603619542, "volatility_20d_pct": 3048.7333361404435, "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": "EGL_CFD.PT", "name": "Mota-Engil SGPS SA", "sector": "", "last_price": 4.198, "change_1d_pct": -5.958781362007171, "distance_from_ma200_pct": -13.936963643594869, "distance_from_ma50_pct": -12.384323514311113, "volatility_20d_pct": 85.50598304949317, "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": "BEI_CFD.DE", "name": "BEIERSDORF AG", "sector": "", "last_price": 72.36, "change_1d_pct": -6.19652579725175, "distance_from_ma200_pct": -26.035306386170532, "distance_from_ma50_pct": -24.589447066398186, "volatility_20d_pct": 104.82187206907486, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "EXM_CFD.BE", "name": "EXMAR NV", "sector": "", "last_price": 10.0, "change_1d_pct": 0.0, "distance_from_ma200_pct": -8.960432838518129, "distance_from_ma50_pct": -1.1373163131337183, "volatility_20d_pct": 118.36969174064711, "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": "AAL_CFD.UK",
      "selection_reason": "Sharp 1D selloff (-9.41%) with price stretched below MA50 (-14.65%) while still near/above MA200 (+5.59%)—classic pullback setup for 2-10d bounce.",
      "mean_reversion_score": 78
    },
    {
      "symbol": "IFX_CFD.DE",
      "selection_reason": "Down day (-4.72%) with meaningful oversold vs MA50 (-10.91%) but close to MA200 (+2.17%), suggesting a dip within a longer-term range.",
      "mean_reversion_score": 72
    },
    {
      "symbol": "JMT_CFD.PT",
      "selection_reason": "Large 1D drop (-7.29%) while only slightly below MA50 (-0.94%) and MA200 (-1.28%), indicating potential one-day dislocation vs trend.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "KBX_CFD.DE",
      "selection_reason": "Moderate pullback (-2.36%) with price below MA50 (-5.69%) but above MA200 (+8.00%), consistent with a short-term dip in an overall uptrend.",
      "mean_reversion_score": 66
    },
    {
      "symbol": "BAS_CFD.DE",
      "selection_reason": "Down move (-3.30%) with mild undercut of MA50 (-1.60%) while holding above MA200 (+4.69%); suitable for short-horizon reversion without extreme stretch.",
      "mean_reversion_score": 61
    }
  ],
  "rejected_common_reasons": [
    "Large positive 1D spikes (potential exhaustion/chase risk) rather than mean-reversion long entries",
    "Very large negative distances to MA200 and MA50 simultaneously (possible falling-knife/downtrend regime risk)",
    "Implausible/extreme 20D volatility readings suggesting data-quality issues (avoid using for signals)",
    "Earnings/news timing unknown for most names (cannot verify the 'avoid earnings within 5 trading days' constraint)"
  ]
}
#1437openrouteropenai/gpt-5.2-pro2026-03-19T12:04:58.326233+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": 245.96, "unrealized_pnl": -42.209484106305254, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "AMH_CFD.US", "qty": 0.0, "avg_price": 29.674999999999997, "last_price": 28.435000000000002, "unrealized_pnl": 0.0, "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.114999999999995, "unrealized_pnl": -261.67037154652303, "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": 353.8, "unrealized_pnl": -573.9428571428571, "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": 1203.775, "unrealized_pnl": 203.20469039657334, "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": 414.2, "last_price": 414.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "IWG_CFD.UK", "qty": 16.216216216216218, "avg_price": 185.0, "last_price": 189.6, "unrealized_pnl": 74.59459459459451, "opened_at": "2026-03-17T10:04:29.123574+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": 1194.5, "unrealized_pnl": -50.61728395061728, "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": 0.0, "avg_price": 4.781, "last_price": 4.467, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 0.0, "avg_price": 184.5, "last_price": 204.2, "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": 520.45, "unrealized_pnl": -82.67937219730942, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 12.925463162429988, "avg_price": 232.09999999999997, "last_price": 224.7, "unrealized_pnl": -95.64842740198162, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "ZS_CFD.US", "qty": 18.778167250876315, "avg_price": 159.76, "last_price": 156.06, "unrealized_pnl": -69.47921882824215, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "AAL_CFD.UK", "mean_reversion_score": 78, "selection_reason": "Sharp 1D selloff (-9.41%) with price stretched below MA50 (-14.65%) while still near/above MA200 (+5.59%)—classic pullback setup for 2-10d bounce."}, {"symbol": "IFX_CFD.DE", "mean_reversion_score": 72, "selection_reason": "Down day (-4.72%) with meaningful oversold vs MA50 (-10.91%) but close to MA200 (+2.17%), suggesting a dip within a longer-term range."}, {"symbol": "JMT_CFD.PT", "mean_reversion_score": 70, "selection_reason": "Large 1D drop (-7.29%) while only slightly below MA50 (-0.94%) and MA200 (-1.28%), indicating potential one-day dislocation vs trend."}, {"symbol": "KBX_CFD.DE", "mean_reversion_score": 66, "selection_reason": "Moderate pullback (-2.36%) with price below MA50 (-5.69%) but above MA200 (+8.00%), consistent with a short-term dip in an overall uptrend."}, {"symbol": "BAS_CFD.DE", "mean_reversion_score": 61, "selection_reason": "Down move (-3.30%) with mild undercut of MA50 (-1.60%) while holding above MA200 (+4.69%); suitable for short-horizon reversion without extreme stretch."}], "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": [],
    "hold": [
      {
        "reason": "Small drawdown and no new risk/edge information provided to justify rotation; avoid overtrading.",
        "symbol": "ADBE_CFD.US"
      },
      {
        "reason": "Meaningful drawdown but no validated catalyst/signal to exit; keep position to allow mean-reversion thesis to play out while leverage is addressed via another sell.",
        "symbol": "CSGP_CFD.US"
      },
      {
        "reason": "Largest drawdown, but without confirmed thesis-break information (news/earnings not provided), avoid realizing loss purely due to PnL; keep while overall leverage is reduced elsewhere.",
        "symbol": "EZJ_CFD.UK"
      },
      {
        "reason": "In profit; no mandate to take profits and no stronger replacement confirmed without adding leverage/churn.",
        "symbol": "FICO_CFD.US"
      },
      {
        "reason": "In profit and position size consistent; no clear improvement from switching given leverage constraint and overtrading rules.",
        "symbol": "IWG_CFD.UK"
      },
      {
        "reason": "Small drawdown; hold absent stronger evidence to exit.",
        "symbol": "PSN_CFD.UK"
      },
      {
        "reason": "Moderate drawdown; hold for potential reversion, no new risk flag provided.",
        "symbol": "ULTA_CFD.US"
      },
      {
        "reason": "Moderate drawdown; no new information to justify selling; avoid churn.",
        "symbol": "WPP_CFD.UK"
      },
      {
        "reason": "Small drawdown; hold as there is no explicit replacement that improves the portfolio without violating leverage/overtrading constraints.",
        "symbol": "ZS_CFD.US"
      }
    ],
    "sell": [
      {
        "reason": "Portfolio gross exposure appears above the max_gross_leverage (3.0) given current mark-to-market equity; exiting this roughly fixed-size position reduces leverage back within limits. Position is flat (no unrealized gain) so it’s the least costly de-risking cut.",
        "symbol": "OCDO_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Primary action is risk control: current gross exposure relative to estimated equity indicates leverage likely exceeds the 3.0 cap. Selling one ~fixed-size, flat PnL position (OCDO) brings leverage back within limits while minimizing opportunity cost. No new buys are initiated because adding a new fixed-size position would likely re-breach the leverage limit unless additional sells are made, and the strategy constraints emphasize avoiding overtrading/churn when improvements vs existing holdings are not clearly superior."
}
Selection logs
#715stage12026-03-19T12:04:58.323317+00:00
{
  "selected_stocks": [
    {
      "symbol": "AAL_CFD.UK",
      "selection_reason": "Sharp 1D selloff (-9.41%) with price stretched below MA50 (-14.65%) while still near/above MA200 (+5.59%)—classic pullback setup for 2-10d bounce.",
      "mean_reversion_score": 78
    },
    {
      "symbol": "IFX_CFD.DE",
      "selection_reason": "Down day (-4.72%) with meaningful oversold vs MA50 (-10.91%) but close to MA200 (+2.17%), suggesting a dip within a longer-term range.",
      "mean_reversion_score": 72
    },
    {
      "symbol": "JMT_CFD.PT",
      "selection_reason": "Large 1D drop (-7.29%) while only slightly below MA50 (-0.94%) and MA200 (-1.28%), indicating potential one-day dislocation vs trend.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "KBX_CFD.DE",
      "selection_reason": "Moderate pullback (-2.36%) with price below MA50 (-5.69%) but above MA200 (+8.00%), consistent with a short-term dip in an overall uptrend.",
      "mean_reversion_score": 66
    },
    {
      "symbol": "BAS_CFD.DE",
      "selection_reason": "Down move (-3.30%) with mild undercut of MA50 (-1.60%) while holding above MA200 (+4.69%); suitable for short-horizon reversion without extreme stretch.",
      "mean_reversion_score": 61
    }
  ],
  "rejected_common_reasons": [
    "Large positive 1D spikes (potential exhaustion/chase risk) rather than mean-reversion long entries",
    "Very large negative distances to MA200 and MA50 simultaneously (possible falling-knife/downtrend regime risk)",
    "Implausible/extreme 20D volatility readings suggesting data-quality issues (avoid using for signals)",
    "Earnings/news timing unknown for most names (cannot verify the 'avoid earnings within 5 trading days' constraint)"
  ]
}