Arena run #722

meanrev-v1x-aix-ai/grok-4.1-fastEUsuccess
Arena
Run status
as_of: 2026-03-19T10:09:24.325041+00:00
started_at: 2026-03-19T11:58:05.688919+00:00
finished_at: 2026-03-19T11:59:04.941744+00:00
duration_ms: 59251
Inputs
{
  "as_of": "2026-03-19T10:09:24.325041+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "SOI_CFD.FR",
      "selection_reason": "dist_ma50_pct +56.73, change_1d_pct -6.41: extreme deviation above MA50 with 1d pullback",
      "mean_reversion_score": 100
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "dist_ma50_pct +17.83, change_1d_pct +24.85: large positive deviation and 1d surge",
      "mean_reversion_score": 98
    },
    {
      "symbol": "BEI_CFD.DE",
      "selection_reason": "dist_ma50_pct -24.59, change_1d_pct -6.20: large negative deviation with 1d drop",
      "mean_reversion_score": 95
    },
    {
      "symbol": "FRVIA_CFD.FR",
      "selection_reason": "dist_ma50_pct -25.14: extreme negative deviation from MA50",
      "mean_reversion_score": 92
    },
    {
      "symbol": "PBB_CFD.DE",
      "selection_reason": "dist_ma50_pct -25.03: extreme negative deviation from MA50",
      "mean_reversion_score": 90
    }
  ],
  "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": [
      {
        "reason": "High mean-reversion score 95: dist_ma50_pct -24.59, change_1d_pct -6.20, deeply oversold, strong rebound potential",
        "symbol": "BEI_CFD.DE",
        "position_size": 3000
      },
      {
        "reason": "High mean-reversion score 92: dist_ma50_pct -25.14, extreme negative deviation from MA50, oversold buy signal",
        "symbol": "FRVIA_CFD.FR",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Stable profitable position, no strong exit signal, hold to avoid overtrading",
        "symbol": "BLND_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Small profit, stable, hold to avoid overtrading",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "THG_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "UTG_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Profitable mean-reversion trade (unrealized_pnl +110.74, ~+3.7%), likely completed reversion, sell to take profit and rotate capital",
        "symbol": "BIG_CFD.FR"
      },
      {
        "reason": "Profitable mean-reversion trade (unrealized_pnl +74.59, ~+2.5%), likely completed reversion, sell to take profit and rotate capital",
        "symbol": "IWG_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Portfolio at max 10 positions and 3.0x leverage (~30k exposure). Executing 2 sells on profitable reverted positions (BIG, IWG) to take profits and rotate into 2 top oversold candidates (BEI, FRVIA) with extreme MA50 deviations for higher conviction mean-reversion opportunities. Maintains position count, leverage, and complies with max 2 buys/sells per run and overtrading avoidance."
}
Prompts & responses
#1428openrouterx-ai/grok-4.1-fast2026-03-19T11:58:05.729054+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": "SOI_CFD.FR",
      "selection_reason": "dist_ma50_pct +56.73, change_1d_pct -6.41: extreme deviation above MA50 with 1d pullback",
      "mean_reversion_score": 100
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "dist_ma50_pct +17.83, change_1d_pct +24.85: large positive deviation and 1d surge",
      "mean_reversion_score": 98
    },
    {
      "symbol": "BEI_CFD.DE",
      "selection_reason": "dist_ma50_pct -24.59, change_1d_pct -6.20: large negative deviation with 1d drop",
      "mean_reversion_score": 95
    },
    {
      "symbol": "FRVIA_CFD.FR",
      "selection_reason": "dist_ma50_pct -25.14: extreme negative deviation from MA50",
      "mean_reversion_score": 92
    },
    {
      "symbol": "PBB_CFD.DE",
      "selection_reason": "dist_ma50_pct -25.03: extreme negative deviation from MA50",
      "mean_reversion_score": 90
    }
  ],
  "rejected_common_reasons": [
    "|dist_ma50_pct| <15%",
    "|change_1d_pct| <5%",
    "low volatility_20d_pct (<60%)",
    "anomalous volatility (>1000%)"
  ]
}
#1429openrouterx-ai/grok-4.1-fast2026-03-19T11:58:31.569429+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": "ABF_CFD.UK", "qty": 0.0, "avg_price": 1868.5, "last_price": 1846.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "ADBE_CFD.US", "qty": 0.0, "avg_price": 249.47, "last_price": 249.47, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "AMCX_CFD.US", "qty": 0.0, "avg_price": 7.07, "last_price": 6.93, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T18:18:58.833148+00:00"}, {"symbol": "AML_CFD.UK", "qty": 0.0, "avg_price": 39.78, "last_price": 39.78, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "ARCAD_CFD.NL", "qty": 0.0, "avg_price": 29.7, "last_price": 28.06, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 10067.114093959732, "avg_price": 0.298, "last_price": 0.309, "unrealized_pnl": 110.73825503355715, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "BLND_CFD.UK", "qty": 8.237232289950576, "avg_price": 364.2, "last_price": 373.0, "unrealized_pnl": 72.48764415156516, "opened_at": "2026-03-10T10:41:24.306870+00:00"}, {"symbol": "BXP_CFD.US", "qty": 0.0, "avg_price": 60.835, "last_price": 59.405, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T17:33:48.338981+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 10.252904989747094, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "CABO_CFD.US", "qty": 0.0, "avg_price": 94.6, "last_price": 96.44, "unrealized_pnl": 58.3509513742073, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "CAR_CFD.US", "qty": 0.0, "avg_price": 92.465, "last_price": 97.54, "unrealized_pnl": 164.65689720434767, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "CBG_CFD.UK", "qty": 8.748396127376648, "avg_price": 342.92, "last_price": 342.92, "unrealized_pnl": 0.0, "opened_at": "2026-03-18T17:58:33.497657+00:00"}, {"symbol": "CCL_CFD.UK", "qty": 0.0, "avg_price": 1945.9999999999998, "last_price": 1858.65, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "COIN_CFD.US", "qty": 0.0, "avg_price": 168.575, "last_price": 171.13, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "CO_CFD.FR", "qty": 0.0, "avg_price": 0.171, "last_price": 0.2196, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 350.79999999999995, "last_price": 350.055, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "DKNG_CFD.US", "qty": 0.0, "avg_price": 25.185000000000002, "last_price": 25.115000000000002, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "ESTC_CFD.US", "qty": 0.0, "avg_price": 58.085, "last_price": 55.28, "unrealized_pnl": -144.87389171042437, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "EVT_CFD.DE", "qty": 0.0, "avg_price": 4.502, "last_price": 4.369, "unrealized_pnl": 0.0, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "EXPO_CFD.US", "qty": 0.0, "avg_price": 66.815, "last_price": 70.025, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 0.0, "avg_price": 405.2, "last_price": 394.1, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T10:05:58.226220+00:00"}, {"symbol": "FBIN_CFD.US", "qty": 0.0, "avg_price": 50.974999999999994, "last_price": 54.35, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "FICO_CFD.US", "qty": 0.0, "avg_price": 1127.4099999999999, "last_price": 1127.4099999999999, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "FLO_CFD.US", "qty": 0.0, "avg_price": 9.875, "last_price": 10.055, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 7.24287783679382, "avg_price": 414.2, "last_price": 414.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "GO_CFD.US", "qty": 0.0, "avg_price": 5.71, "last_price": 6.05, "unrealized_pnl": 178.63397548161112, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "HAIN_CFD.US", "qty": 0.0, "avg_price": 0.8, "last_price": 0.8, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1275.0, "last_price": 1342.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "HPP_CFD.US", "qty": 0.0, "avg_price": 7.59, "last_price": 7.47, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "ICG_CFD.UK", "qty": 0.0, "avg_price": 1700.0, "last_price": 1719.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "ITRK_CFD.UK", "qty": 0.0, "avg_price": 3942.0, "last_price": 3760.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+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": "JBLU_CFD.US", "qty": 0.0, "avg_price": 4.22, "last_price": 4.52, "unrealized_pnl": 213.27014218009467, "opened_at": "2026-03-09T18:18:45.954380+00:00"}, {"symbol": "JUN3_CFD.DE", "qty": 0.0, "avg_price": 31.51, "last_price": 30.167, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "LMND_CFD.US", "qty": 0.0, "avg_price": 61.5, "last_price": 59.89, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "LPX_CFD.US", "qty": 0.0, "avg_price": 86.45, "last_price": 86.15, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "LRCX_CFD.US", "qty": 0.0, "avg_price": 199.34, "last_price": 216.7, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "MPT_CFD.US", "qty": 0.0, "avg_price": 4.8, "last_price": 4.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "NET_CFD.US", "qty": 0.0, "avg_price": 176.96, "last_price": 164.32, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 14.684287812041115, "avg_price": 204.3, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "OKTA_CFD.US", "qty": 0.0, "avg_price": 70.18, "last_price": 80.05, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 19.74853531696399, "avg_price": 151.91, "last_price": 152.7, "unrealized_pnl": 15.601342900401397, "opened_at": "2026-03-07T10:14:47.113218+00:00"}, {"symbol": "PAYC_CFD.US", "qty": 0.0, "avg_price": 121.22, "last_price": 119.79, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "PROX_CFD.BE", "qty": 0.0, "avg_price": 6.98, "last_price": 7.68, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+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-19T09:33:49.074031+00:00"}, {"symbol": "RVTY_CFD.US", "qty": 0.0, "avg_price": 91.28, "last_price": 91.28, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 0.0, "avg_price": 18.4, "last_price": 18.48, "unrealized_pnl": 13.043478260869868, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "THG_CFD.UK", "qty": 85.76329331046313, "avg_price": 34.98, "last_price": 34.98, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 0.0, "avg_price": 184.5, "last_price": 184.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "TRST_CFD.UK", "qty": 0.0, "avg_price": 151.8, "last_price": 173.4, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 0.0, "avg_price": 92.35, "last_price": 94.79, "unrealized_pnl": 79.26367081754236, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "ULTA_CFD.US", "qty": 0.0, "avg_price": 535.2, "last_price": 523.22, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 5.9405940594059405, "avg_price": 505.0, "last_price": 505.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T18:17:31.188931+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 0.0, "avg_price": 385.0, "last_price": 376.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 872.0, "last_price": 976.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 240.8, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "XRX_CFD.US", "qty": 0.0, "avg_price": 1.56, "last_price": 1.48, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T18:18:58.833148+00:00"}, {"symbol": "ZS_CFD.US", "qty": 0.0, "avg_price": 159.76, "last_price": 144.45, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "SOI_CFD.FR", "mean_reversion_score": 100, "selection_reason": "dist_ma50_pct +56.73, change_1d_pct -6.41: extreme deviation above MA50 with 1d pullback"}, {"symbol": "CRST_CFD.UK", "mean_reversion_score": 98, "selection_reason": "dist_ma50_pct +17.83, change_1d_pct +24.85: large positive deviation and 1d surge"}, {"symbol": "BEI_CFD.DE", "mean_reversion_score": 95, "selection_reason": "dist_ma50_pct -24.59, change_1d_pct -6.20: large negative deviation with 1d drop"}, {"symbol": "FRVIA_CFD.FR", "mean_reversion_score": 92, "selection_reason": "dist_ma50_pct -25.14: extreme negative deviation from MA50"}, {"symbol": "PBB_CFD.DE", "mean_reversion_score": 90, "selection_reason": "dist_ma50_pct -25.03: extreme negative deviation from MA50"}], "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": "High mean-reversion score 95: dist_ma50_pct -24.59, change_1d_pct -6.20, deeply oversold, strong rebound potential",
        "symbol": "BEI_CFD.DE",
        "position_size": 3000
      },
      {
        "reason": "High mean-reversion score 92: dist_ma50_pct -25.14, extreme negative deviation from MA50, oversold buy signal",
        "symbol": "FRVIA_CFD.FR",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Stable profitable position, no strong exit signal, hold to avoid overtrading",
        "symbol": "BLND_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Small profit, stable, hold to avoid overtrading",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "THG_CFD.UK"
      },
      {
        "reason": "Flat position, no clear mean-reversion exit signal, hold",
        "symbol": "UTG_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Profitable mean-reversion trade (unrealized_pnl +110.74, ~+3.7%), likely completed reversion, sell to take profit and rotate capital",
        "symbol": "BIG_CFD.FR"
      },
      {
        "reason": "Profitable mean-reversion trade (unrealized_pnl +74.59, ~+2.5%), likely completed reversion, sell to take profit and rotate capital",
        "symbol": "IWG_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Portfolio at max 10 positions and 3.0x leverage (~30k exposure). Executing 2 sells on profitable reverted positions (BIG, IWG) to take profits and rotate into 2 top oversold candidates (BEI, FRVIA) with extreme MA50 deviations for higher conviction mean-reversion opportunities. Maintains position count, leverage, and complies with max 2 buys/sells per run and overtrading avoidance."
}
Selection logs
#711stage12026-03-19T11:58:31.566722+00:00
{
  "selected_stocks": [
    {
      "symbol": "SOI_CFD.FR",
      "selection_reason": "dist_ma50_pct +56.73, change_1d_pct -6.41: extreme deviation above MA50 with 1d pullback",
      "mean_reversion_score": 100
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "dist_ma50_pct +17.83, change_1d_pct +24.85: large positive deviation and 1d surge",
      "mean_reversion_score": 98
    },
    {
      "symbol": "BEI_CFD.DE",
      "selection_reason": "dist_ma50_pct -24.59, change_1d_pct -6.20: large negative deviation with 1d drop",
      "mean_reversion_score": 95
    },
    {
      "symbol": "FRVIA_CFD.FR",
      "selection_reason": "dist_ma50_pct -25.14: extreme negative deviation from MA50",
      "mean_reversion_score": 92
    },
    {
      "symbol": "PBB_CFD.DE",
      "selection_reason": "dist_ma50_pct -25.03: extreme negative deviation from MA50",
      "mean_reversion_score": 90
    }
  ],
  "rejected_common_reasons": [
    "|dist_ma50_pct| <15%",
    "|change_1d_pct| <5%",
    "low volatility_20d_pct (<60%)",
    "anomalous volatility (>1000%)"
  ]
}