Arena run #802

meanrev-v1x-aix-ai/grok-4.1-fastEUsuccess
Arena
Run status
as_of: 2026-03-23T10:03:51.599067+00:00
started_at: 2026-03-23T10:29:42.102825+00:00
finished_at: 2026-03-23T10:30:50.143459+00:00
duration_ms: 68039
Inputs
{
  "as_of": "2026-03-23T10:03:51.599067+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "change_1d_pct -26.6%, distance_ma50_pct -22.1%, volatility_20d_pct 169%",
      "mean_reversion_score": 98
    },
    {
      "symbol": "SYNT_CFD.UK",
      "selection_reason": "change_1d_pct +54.9%, distance_ma50_pct -40.5%, volatility_20d_pct 548%",
      "mean_reversion_score": 97
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "change_1d_pct -24.1%, distance_ma50_pct -17.0%, volatility_20d_pct 149%",
      "mean_reversion_score": 95
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "change_1d_pct +24.9%, distance_ma50_pct +17.8%, volatility_20d_pct 158%",
      "mean_reversion_score": 94
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "change_1d_pct -21.1%, distance_ma50_pct -5.5%, volatility_20d_pct 241%",
      "mean_reversion_score": 92
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "CRST_CFD.UK",
    "MSLH_CFD.UK",
    "LMP_CFD.UK",
    "SPX_CFD.UK",
    "ESNT_CFD.UK",
    "JDW_CFD.UK",
    "UTG_CFD.UK",
    "PAG_CFD.UK",
    "INVP_CFD.UK",
    "BME_CFD.UK",
    "RHIM_CFD.UK",
    "CBG_CFD.UK",
    "ANTO_CFD.UK",
    "IWG_CFD.UK",
    "SYNT_CFD.UK",
    "EMG_CFD.UK",
    "ABDN_CFD.UK",
    "OCDO_CFD.UK",
    "HWDN_CFD.UK",
    "JMAT_CFD.UK",
    "IMI_CFD.UK",
    "FUR_CFD.NL",
    "DCC_CFD.UK",
    "ALTA_CFD.FR",
    "BPOST_CFD.BE",
    "COV_CFD.FR",
    "STJ_CFD.UK",
    "LIO_CFD.UK",
    "OPTU_CFD.US",
    "ADM_CFD.UK",
    "SMIN_CFD.UK",
    "APAM_CFD.NL",
    "XRX_CFD.US",
    "REC_CFD.BE",
    "VSVS_CFD.UK",
    "MKS_CFD.UK",
    "HDD_CFD.DE",
    "CMBT_CFD.BE",
    "LOTB_CFD.BE",
    "III_CFD.UK",
    "NXI_CFD.FR",
    "WHA_CFD.NL",
    "FNTN_CFD.DE",
    "ONTEX_CFD.BE",
    "UTDI_CFD.DE",
    "AAL_CFD.UK",
    "SHUR_CFD.BE",
    "KGF_CFD.UK",
    "SSE_CFD.UK",
    "ELI_CFD.BE"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "High mean_reversion_score 97; strong signal post-bounce from deep oversold (change_1d_pct +54.9%, still -40.5% from MA50, vol 548%).",
        "symbol": "SYNT_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "High mean_reversion_score 95; classic oversold (change_1d_pct -24.1%, -17.0% from MA50, vol 149%).",
        "symbol": "IWG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Stable position with neutral PnL; retain within max positions.",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Top mean-reversion score 98; strong hold (recent -26.6% 1d, -22.1% from MA50).",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Stable position with neutral PnL; no sell signal.",
        "symbol": "ESNT_CFD.UK"
      },
      {
        "reason": "Stable position with neutral PnL; retain.",
        "symbol": "HPP_CFD.US"
      },
      {
        "reason": "High mean-reversion score 92; hold oversold signal (-21.1% 1d).",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Stable with positive PnL; no sell signal.",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Stable position with neutral PnL; retain.",
        "symbol": "UTG_CFD.UK"
      },
      {
        "reason": "Stable position with neutral PnL; retain within constraints.",
        "symbol": "XRX_CFD.US"
      }
    ],
    "sell": [
      {
        "reason": "Low-priced penny stock (last_price 0.6) with high risk and no current mean-reversion candidate status; rotate to higher-score opportunities.",
        "symbol": "HAIN_CFD.US"
      },
      {
        "reason": "Low-priced stock (last_price 1.24) with high risk, not in top mean-reversion candidates; replace with stronger EU signals to improve portfolio.",
        "symbol": "OPTU_CFD.US"
      }
    ]
  },
  "portfolio_rationale": "Portfolio at max 10 positions and 3.0x gross leverage. Rotated 2 low-priced/high-risk US holdings (no candidate scores) into 2 top new EU mean-reversion candidates (scores 97 & 95) for clear improvement in signal quality. Retained top-held candidates CBG (98) & OCDO (92). Complies with max 2 buys/2 sells, fixed size 3000, avoids overtrading by targeting extreme signals only."
}
Prompts & responses
#1578openrouterx-ai/grok-4.1-fast2026-03-23T10:29:42.143359+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": "MSLH_CFD.UK", "name": "MARSHALLS PLC", "sector": "", "last_price": 179.0, "change_1d_pct": 2.052451539338662, "distance_from_ma200_pct": -18.41965657865713, "distance_from_ma50_pct": 4.539832012082234, "volatility_20d_pct": 102.90810964969117, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "LMP_CFD.UK", "name": "LONDONMETRIC PROPERTY PLC", "sector": "", "last_price": 214.0, "change_1d_pct": 11.57455683003128, "distance_from_ma200_pct": 12.507879494597773, "distance_from_ma50_pct": 10.77384329331672, "volatility_20d_pct": 54.89150861607771, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SPX_CFD.UK", "name": "SPIRAX-SARCO ENGINEERING PLC", "sector": "", "last_price": 7608.71, "change_1d_pct": 10.91413994169097, "distance_from_ma200_pct": 15.905097055024719, "distance_from_ma50_pct": 8.459177525660632, "volatility_20d_pct": 84.71063298478786, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ESNT_CFD.UK", "name": "ESSENTRA PLC", "sector": "", "last_price": 108.4, "change_1d_pct": 4.230769230769238, "distance_from_ma200_pct": 7.40452119530135, "distance_from_ma50_pct": 9.771484932749797, "volatility_20d_pct": 98.9832071461764, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "JDW_CFD.UK", "name": "WETHERSPOON (J.D.) PLC", "sector": "", "last_price": 748.5, "change_1d_pct": 9.750733137829904, "distance_from_ma200_pct": 6.242631058659898, "distance_from_ma50_pct": 5.290077328071208, "volatility_20d_pct": 98.2373545531062, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": "PAG_CFD.UK", "name": "PARAGON BANKING GROUP PLC", "sector": "", "last_price": 852.5, "change_1d_pct": -3.399433427762044, "distance_from_ma200_pct": -1.3404962254783492, "distance_from_ma50_pct": 0.699141440891915, "volatility_20d_pct": 71.52779356208148, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "INVP_CFD.UK", "name": "INVESTEC PLC", "sector": "", "last_price": 623.5, "change_1d_pct": 8.529155787641418, "distance_from_ma200_pct": 17.34715626999408, "distance_from_ma50_pct": 9.569618971869698, "volatility_20d_pct": 76.97154585310399, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BME_CFD.UK", "name": "B&M EUROPEAN VALUE RETAIL SA", "sector": "", "last_price": 175.0, "change_1d_pct": -2.7237354085603127, "distance_from_ma200_pct": -19.458633148571437, "distance_from_ma50_pct": 0.9348295527952688, "volatility_20d_pct": 108.97608622337773, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "RHIM_CFD.UK", "name": "RHI MAGNESITA NV", "sector": "", "last_price": 2550.0, "change_1d_pct": -6.764168190127973, "distance_from_ma200_pct": -2.35709026809392, "distance_from_ma50_pct": 0.9429816244979738, "volatility_20d_pct": 151.25590362229855, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CBG_CFD.UK", "name": "CLOSE BROTHERS GROUP PLC", "sector": "", "last_price": 372.74, "change_1d_pct": -26.625984251968504, "distance_from_ma200_pct": -13.365429078084645, "distance_from_ma50_pct": -22.129222788055436, "volatility_20d_pct": 169.0552301316783, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ANTO_CFD.UK", "name": "ANTOFAGASTA PLC", "sector": "", "last_price": 3259.0, "change_1d_pct": -9.321090706733449, "distance_from_ma200_pct": 18.26423019611667, "distance_from_ma50_pct": -12.880389774045042, "volatility_20d_pct": 131.0149196933384, "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": 189.6, "change_1d_pct": -24.09927942353883, "distance_from_ma200_pct": -11.798015594910993, "distance_from_ma50_pct": -17.03351041019402, "volatility_20d_pct": 148.96998448946707, "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": "SYNT_CFD.UK", "name": "SYNTHOMER PLC", "sector": "", "last_price": 29.05, "change_1d_pct": 54.850746268656714, "distance_from_ma200_pct": -60.840559744095415, "distance_from_ma50_pct": -40.45886640240379, "volatility_20d_pct": 547.5939414040645, "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": "HWDN_CFD.UK", "name": "HOWDEN JOINERY GROUP PLC", "sector": "", "last_price": 843.0, "change_1d_pct": -2.686229466563539, "distance_from_ma200_pct": 2.9144756901175572, "distance_from_ma50_pct": 0.6796292983215046, "volatility_20d_pct": 44.16384759940265, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "JMAT_CFD.UK", "name": "JOHNSON MATTHEY PLC", "sector": "", "last_price": 1921.0, "change_1d_pct": -15.523306948109061, "distance_from_ma200_pct": 2.5989307920274207, "distance_from_ma50_pct": -10.67077367201248, "volatility_20d_pct": 123.66479524785584, "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": 2676.0, "change_1d_pct": 1.5945330296127658, "distance_from_ma200_pct": 20.655603593859716, "distance_from_ma50_pct": 2.743599661176499, "volatility_20d_pct": 90.40898907393799, "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": "FUR_CFD.NL", "name": "Fugro", "sector": "", "last_price": 9.99, "change_1d_pct": -3.4782608695652084, "distance_from_ma200_pct": -13.243670652478812, "distance_from_ma50_pct": -6.214443163511685, "volatility_20d_pct": 88.00731385157378, "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": "DCC_CFD.UK", "name": "DCC PLC", "sector": "", "last_price": 4738.0, "change_1d_pct": 4.131868131868122, "distance_from_ma200_pct": -1.2358165497191043, "distance_from_ma50_pct": -1.6950365081147445, "volatility_20d_pct": 101.79870451788292, "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": "ALTA_CFD.FR", "name": "Altarea", "sector": "", "last_price": 112.4, "change_1d_pct": -4.58404074702885, "distance_from_ma200_pct": 4.9505471901171605, "distance_from_ma50_pct": -4.548290921863085, "volatility_20d_pct": 75.0741387586217, "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": "BPOST_CFD.BE", "name": "Bpost", "sector": "", "last_price": 1.792, "change_1d_pct": -2.0765027322404372, "distance_from_ma200_pct": -15.503185133841635, "distance_from_ma50_pct": -14.773808164973556, "volatility_20d_pct": 88.14495265266997, "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": 54.021, "change_1d_pct": -3.705882352941181, "distance_from_ma200_pct": -2.6605065109671977, "distance_from_ma50_pct": -3.181821603352475, "volatility_20d_pct": 55.880099277383636, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "STJ_CFD.UK", "name": "ST JAMES'S PLACE PLC", "sector": "", "last_price": 1280.0, "change_1d_pct": -14.836992681304062, "distance_from_ma200_pct": 4.633703562254432, "distance_from_ma50_pct": -6.669417974449299, "volatility_20d_pct": 125.87476157380789, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": "OPTU_CFD.US", "name": "Optimum Communications Inc.", "sector": "", "last_price": 1.3, "change_1d_pct": -9.090909090909083, "distance_from_ma200_pct": -36.95288440553844, "distance_from_ma50_pct": -18.709354677338663, "volatility_20d_pct": 127.6568567850477, "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": "ADM_CFD.UK", "name": "ADMIRAL GROUP PLC", "sector": "", "last_price": 3260.0, "change_1d_pct": 13.906359189378058, "distance_from_ma200_pct": 0.982877810981142, "distance_from_ma50_pct": 10.999045203918524, "volatility_20d_pct": 81.6824895770128, "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": "APAM_CFD.NL", "name": "Aperam SA", "sector": "", "last_price": 33.22, "change_1d_pct": -5.839002267573701, "distance_from_ma200_pct": 11.220385940096001, "distance_from_ma50_pct": -10.738612455644725, "volatility_20d_pct": 98.79392095847959, "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": "XRX_CFD.US", "name": "Xerox Corp", "sector": "", "last_price": 1.41, "change_1d_pct": -7.843137254901967, "distance_from_ma200_pct": -58.53185106758426, "distance_from_ma50_pct": -30.2739590544951, "volatility_20d_pct": 131.04334057422258, "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": "REC_CFD.BE", "name": "Recticel SA", "sector": "", "last_price": 8.75, "change_1d_pct": -7.407407407407396, "distance_from_ma200_pct": -10.30640868397975, "distance_from_ma50_pct": -14.48397185301017, "volatility_20d_pct": 79.41482349411139, "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": 394.2, "change_1d_pct": -13.817227809357234, "distance_from_ma200_pct": 0.3255617926055221, "distance_from_ma50_pct": -12.75170756107602, "volatility_20d_pct": 119.59992452619474, "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": "MKS_CFD.UK", "name": "MARKS & SPENCER GROUP PLC", "sector": "", "last_price": 360.7, "change_1d_pct": -2.592492573588989, "distance_from_ma200_pct": 0.16685682262786994, "distance_from_ma50_pct": 1.2088381382512114, "volatility_20d_pct": 111.18292243780117, "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": "HDD_CFD.DE", "name": "Heidelberger Druckmaschinen AG", "sector": "", "last_price": 1.4020000000000001, "change_1d_pct": 4.470938897168408, "distance_from_ma200_pct": -23.469318129092297, "distance_from_ma50_pct": -12.59787541768489, "volatility_20d_pct": 90.25830766182494, "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": "CMBT_CFD.BE", "name": "Euronav", "sector": "", "last_price": 10.72, "change_1d_pct": 2.0952380952381056, "distance_from_ma200_pct": 21.039813291571583, "distance_from_ma50_pct": -1.7755534745981572, "volatility_20d_pct": 85.15590360214311, "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": "LOTB_CFD.BE", "name": "Lotus Bakeries NV", "sector": "", "last_price": 9740.0, "change_1d_pct": -4.8828125, "distance_from_ma200_pct": 13.007683836217021, "distance_from_ma50_pct": 0.5497050309365648, "volatility_20d_pct": 59.64920666059652, "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": "III_CFD.UK", "name": "3I GROUP PLC", "sector": "", "last_price": 2740.0, "change_1d_pct": -7.118644067796609, "distance_from_ma200_pct": -26.416581513106042, "distance_from_ma50_pct": -14.205507618143876, "volatility_20d_pct": 114.49622440194238, "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": "NXI_CFD.FR", "name": "Nexity SA", "sector": "", "last_price": 7.86, "change_1d_pct": -4.379562043795627, "distance_from_ma200_pct": -16.263877451225838, "distance_from_ma50_pct": -9.42321254891838, "volatility_20d_pct": 91.82911896505973, "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": "WHA_CFD.NL", "name": "Wereldhave", "sector": "", "last_price": 21.2, "change_1d_pct": -1.85185185185186, "distance_from_ma200_pct": 16.723119546497635, "distance_from_ma50_pct": 1.2551821638041583, "volatility_20d_pct": 57.72084549191143, "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": "FNTN_CFD.DE", "name": "FREENET AG", "sector": "", "last_price": 25.52, "change_1d_pct": -6.99708454810496, "distance_from_ma200_pct": -9.672845452256063, "distance_from_ma50_pct": -13.46788308941358, "volatility_20d_pct": 84.65989791678379, "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": "ONTEX_CFD.BE", "name": "Ontex Group NV", "sector": "", "last_price": 4.26, "change_1d_pct": 3.147699757869238, "distance_from_ma200_pct": -27.949260042283296, "distance_from_ma50_pct": -10.489157841654063, "volatility_20d_pct": 74.5493332175651, "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": "UTDI_CFD.DE", "name": "", "sector": "", "last_price": 27.36, "change_1d_pct": 4.427480916030535, "distance_from_ma200_pct": 3.7512366912304973, "distance_from_ma50_pct": -0.043694349984435554, "volatility_20d_pct": 111.32133694601802, "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": 2900.0, "change_1d_pct": -7.4074074074074066, "distance_from_ma200_pct": 4.752248290280758, "distance_from_ma50_pct": -14.758005325567103, "volatility_20d_pct": 97.09288799946901, "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": "SHUR_CFD.BE", "name": "", "sector": "", "last_price": 25.95, "change_1d_pct": -6.486486486486487, "distance_from_ma200_pct": -22.326365753919152, "distance_from_ma50_pct": -14.43251445744279, "volatility_20d_pct": 105.91501537481747, "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": 309.6, "change_1d_pct": -14.143094841930115, "distance_from_ma200_pct": 5.598205649094723, "distance_from_ma50_pct": -4.786156349988369, "volatility_20d_pct": 104.60870893174696, "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": "SSE_CFD.UK", "name": "SSE PLC", "sector": "", "last_price": 2684.0, "change_1d_pct": 0.18663680477790656, "distance_from_ma200_pct": 31.063227728388853, "distance_from_ma50_pct": 6.809869359272902, "volatility_20d_pct": 73.61489335463473, "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": "ELI_CFD.BE", "name": "Elia Group SA/NV", "sector": "", "last_price": 128.5, "change_1d_pct": -5.02586844050259, "distance_from_ma200_pct": 28.10807895405585, "distance_from_ma50_pct": 3.9977377861738495, "volatility_20d_pct": 65.94863383745387, "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": "CBG_CFD.UK",
      "selection_reason": "change_1d_pct -26.6%, distance_ma50_pct -22.1%, volatility_20d_pct 169%",
      "mean_reversion_score": 98
    },
    {
      "symbol": "SYNT_CFD.UK",
      "selection_reason": "change_1d_pct +54.9%, distance_ma50_pct -40.5%, volatility_20d_pct 548%",
      "mean_reversion_score": 97
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "change_1d_pct -24.1%, distance_ma50_pct -17.0%, volatility_20d_pct 149%",
      "mean_reversion_score": 95
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "change_1d_pct +24.9%, distance_ma50_pct +17.8%, volatility_20d_pct 158%",
      "mean_reversion_score": 94
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "change_1d_pct -21.1%, distance_ma50_pct -5.5%, volatility_20d_pct 241%",
      "mean_reversion_score": 92
    }
  ],
  "rejected_common_reasons": [
    "small |change_1d_pct|",
    "low |distance_from_ma50_pct|",
    "low volatility_20d_pct"
  ]
}
#1579openrouterx-ai/grok-4.1-fast2026-03-23T10:30:05.037748+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": "BEI_CFD.DE", "qty": 0.0, "avg_price": 72.36, "last_price": 73.18, "unrealized_pnl": 33.996683250414904, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 0.0, "avg_price": 0.298, "last_price": 0.309, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "BLND_CFD.UK", "qty": 0.0, "avg_price": 364.2, "last_price": 361.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T10:41:24.306870+00:00"}, {"symbol": "BTRW_CFD.UK", "qty": 0.0, "avg_price": 265.2, "last_price": 257.9, "unrealized_pnl": -82.57918552036213, "opened_at": "2026-03-21T10:00:02.317290+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": "ESNT_CFD.UK", "qty": 31.413612565445025, "avg_price": 95.5, "last_price": 95.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-20T10:26:40.341409+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": "FRVIA_CFD.FR", "qty": 0.0, "avg_price": 9.138, "last_price": 9.03, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+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": "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": 5000.0, "avg_price": 0.6, "last_price": 0.6, "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": 530.9734513274336, "avg_price": 5.65, "last_price": 5.65, "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": 0.0, "avg_price": 185.0, "last_price": 189.6, "unrealized_pnl": 0.0, "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": "OPTU_CFD.US", "qty": 2419.3548387096776, "avg_price": 1.24, "last_price": 1.24, "unrealized_pnl": 0.0, "opened_at": "2026-03-22T18:18:31.438015+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": 0.0, "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": 2222.222222222222, "avg_price": 1.35, "last_price": 1.35, "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": "CBG_CFD.UK", "mean_reversion_score": 98, "selection_reason": "change_1d_pct -26.6%, distance_ma50_pct -22.1%, volatility_20d_pct 169%"}, {"symbol": "SYNT_CFD.UK", "mean_reversion_score": 97, "selection_reason": "change_1d_pct +54.9%, distance_ma50_pct -40.5%, volatility_20d_pct 548%"}, {"symbol": "IWG_CFD.UK", "mean_reversion_score": 95, "selection_reason": "change_1d_pct -24.1%, distance_ma50_pct -17.0%, volatility_20d_pct 149%"}, {"symbol": "CRST_CFD.UK", "mean_reversion_score": 94, "selection_reason": "change_1d_pct +24.9%, distance_ma50_pct +17.8%, volatility_20d_pct 158%"}, {"symbol": "OCDO_CFD.UK", "mean_reversion_score": 92, "selection_reason": "change_1d_pct -21.1%, distance_ma50_pct -5.5%, volatility_20d_pct 241%"}], "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 97; strong signal post-bounce from deep oversold (change_1d_pct +54.9%, still -40.5% from MA50, vol 548%).",
        "symbol": "SYNT_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "High mean_reversion_score 95; classic oversold (change_1d_pct -24.1%, -17.0% from MA50, vol 149%).",
        "symbol": "IWG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Stable position with neutral PnL; retain within max positions.",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Top mean-reversion score 98; strong hold (recent -26.6% 1d, -22.1% from MA50).",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Stable position with neutral PnL; no sell signal.",
        "symbol": "ESNT_CFD.UK"
      },
      {
        "reason": "Stable position with neutral PnL; retain.",
        "symbol": "HPP_CFD.US"
      },
      {
        "reason": "High mean-reversion score 92; hold oversold signal (-21.1% 1d).",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Stable with positive PnL; no sell signal.",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Stable position with neutral PnL; retain.",
        "symbol": "UTG_CFD.UK"
      },
      {
        "reason": "Stable position with neutral PnL; retain within constraints.",
        "symbol": "XRX_CFD.US"
      }
    ],
    "sell": [
      {
        "reason": "Low-priced penny stock (last_price 0.6) with high risk and no current mean-reversion candidate status; rotate to higher-score opportunities.",
        "symbol": "HAIN_CFD.US"
      },
      {
        "reason": "Low-priced stock (last_price 1.24) with high risk, not in top mean-reversion candidates; replace with stronger EU signals to improve portfolio.",
        "symbol": "OPTU_CFD.US"
      }
    ]
  },
  "portfolio_rationale": "Portfolio at max 10 positions and 3.0x gross leverage. Rotated 2 low-priced/high-risk US holdings (no candidate scores) into 2 top new EU mean-reversion candidates (scores 97 & 95) for clear improvement in signal quality. Retained top-held candidates CBG (98) & OCDO (92). Complies with max 2 buys/2 sells, fixed size 3000, avoids overtrading by targeting extreme signals only."
}
Selection logs
#781stage12026-03-23T10:30:05.032887+00:00
{
  "selected_stocks": [
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "change_1d_pct -26.6%, distance_ma50_pct -22.1%, volatility_20d_pct 169%",
      "mean_reversion_score": 98
    },
    {
      "symbol": "SYNT_CFD.UK",
      "selection_reason": "change_1d_pct +54.9%, distance_ma50_pct -40.5%, volatility_20d_pct 548%",
      "mean_reversion_score": 97
    },
    {
      "symbol": "IWG_CFD.UK",
      "selection_reason": "change_1d_pct -24.1%, distance_ma50_pct -17.0%, volatility_20d_pct 149%",
      "mean_reversion_score": 95
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "change_1d_pct +24.9%, distance_ma50_pct +17.8%, volatility_20d_pct 158%",
      "mean_reversion_score": 94
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "change_1d_pct -21.1%, distance_ma50_pct -5.5%, volatility_20d_pct 241%",
      "mean_reversion_score": 92
    }
  ],
  "rejected_common_reasons": [
    "small |change_1d_pct|",
    "low |distance_from_ma50_pct|",
    "low volatility_20d_pct"
  ]
}