Arena run #681

meanrev-v1amazonamazon/nova-premier-v1EUsuccess
Arena
Run status
as_of: 2026-03-17T10:04:29.123574+00:00
started_at: 2026-03-17T11:22:31.665309+00:00
finished_at: 2026-03-17T11:23:25.723015+00:00
duration_ms: 54056
Inputs
{
  "as_of": "2026-03-17T10:04:29.123574+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "TRN_CFD.UK",
      "selection_reason": "-12.56% from MA50 and -22.56% from MA200",
      "mean_reversion_score": 85
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "-5.48% from MA50 and -15.82% from MA200",
      "mean_reversion_score": 75
    },
    {
      "symbol": "ATO_CFD.FR",
      "selection_reason": "-1.17% from MA50 and -30.34% from MA200",
      "mean_reversion_score": 72
    },
    {
      "symbol": "BME_CFD.UK",
      "selection_reason": "+3.69% from MA50 but -17.51% from MA200",
      "mean_reversion_score": 68
    },
    {
      "symbol": "COV_CFD.FR",
      "selection_reason": "+0.86% from MA50 but near MA200 (+1.62%)",
      "mean_reversion_score": 65
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "WTB_CFD.UK",
    "JDW_CFD.UK",
    "TRN_CFD.UK",
    "IWG_CFD.UK",
    "KGF_CFD.UK",
    "RHIM_CFD.UK",
    "DLN_CFD.UK",
    "MCG_CFD.UK",
    "SGRO_CFD.UK",
    "OVH_CFD.FR",
    "EMG_CFD.UK",
    "ABDN_CFD.UK",
    "OCDO_CFD.UK",
    "LRE_CFD.UK",
    "LIO_CFD.UK",
    "VTY_CFD.UK",
    "SMIN_CFD.UK",
    "BBY_CFD.UK",
    "ATO_CFD.FR",
    "JEN_CFD.DE",
    "MAB_CFD.UK",
    "IMI_CFD.UK",
    "VSVS_CFD.UK",
    "NA9_CFD.DE",
    "PBB_CFD.DE",
    "INTC_CFD.US",
    "OSB_CFD.UK",
    "IPO_CFD.UK",
    "ATG_CFD.UK",
    "XFAB_CFD.FR",
    "BME_CFD.UK",
    "HBR_CFD.UK",
    "HPP_CFD.US",
    "GROW_CFD.UK",
    "AMG_CFD.NL",
    "COV_CFD.FR",
    "WKP_CFD.UK",
    "IPGP_CFD.US",
    "MDM_CFD.FR",
    "MRN_CFD.FR",
    "SLG_CFD.US",
    "AMCX_CFD.US",
    "DPLM_CFD.UK",
    "MELE_CFD.BE",
    "SGL_CFD.DE",
    "ASM_CFD.NL",
    "IGG_CFD.UK",
    "ALFEN_CFD.NL"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "Highest mean-reversion score with significant deviation from MAs",
        "symbol": "TRN_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Strong mean-reversion candidate with -15.82% from MA200",
        "symbol": "OCDO_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Existing position with positive PnL",
        "symbol": "ADBE_CFD.US"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "DLN_CFD.UK"
      },
      {
        "reason": "Existing position with positive PnL",
        "symbol": "FICO_CFD.US"
      },
      {
        "reason": "Existing position with positive PnL",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "GNRC_CFD.US"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "HMSO_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "ITV_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "JDW_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "KEX_CFD.US"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "KGF_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "LIO_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "LXS_CFD.DE"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "NXST_CFD.US"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "OSB_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "SGRO_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "SYNT_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "TRN_CFD.UK"
      },
      {
        "reason": "Existing position with positive PnL",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "Existing position with positive PnL",
        "symbol": "WIZZ_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "WTB_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Marginal loss with low conviction",
        "symbol": "HELE_CFD.US"
      }
    ]
  },
  "portfolio_rationale": "Maintaining existing profitable positions while adding two high-conviction mean-reversion candidates. Selling HELE_CFD.US due to marginal loss. Following max_buys_per_run constraint and avoiding overtrading per strategy rules."
}
Prompts & responses
#1346openrouteramazon/nova-premier-v12026-03-17T11:22:31.710652+00:00
System prompt
You are an Arena strategy executor. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices, fundamentals, earnings dates, or sentiment. If a field is null/empty, treat it as unknown. You are a constrained selector (no narrative).
User prompt
{"task": "stage1_universe_scan", "region": "EU", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "selection_rules": {"horizon": "2-10 trading days", "target": "short-term mean reversion in liquid equities", "constraints": ["Select exactly 5 candidates", "Avoid earnings within 5 trading days (if known)", "Avoid highly binary/event-driven moves (if known)", "Avoid sector concentration: max 1 per sector unless clearly justified (sector may be unknown)"]}, "universe": [{"symbol": "WTB_CFD.UK", "name": "WHITBREAD PLC", "sector": "", "last_price": 2691.0, "change_1d_pct": 11.659751037344401, "distance_from_ma200_pct": -5.969827496214986, "distance_from_ma50_pct": -5.069507041577781, "volatility_20d_pct": 87.61035263352142, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "JDW_CFD.UK", "name": "WETHERSPOON (J.D.) PLC", "sector": "", "last_price": 748.5, "change_1d_pct": 9.750733137829904, "distance_from_ma200_pct": 6.242631058659898, "distance_from_ma50_pct": 5.290077328071208, "volatility_20d_pct": 98.2373545531062, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "TRN_CFD.UK", "name": "TRAINLINE PLC", "sector": "", "last_price": 206.0, "change_1d_pct": -12.93322062552832, "distance_from_ma200_pct": -22.557701091522887, "distance_from_ma50_pct": -12.560104316644482, "volatility_20d_pct": 131.09279103846345, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IWG_CFD.UK", "name": "IWG PLC", "sector": "", "last_price": 205.4, "change_1d_pct": -16.5718927701056, "distance_from_ma200_pct": -4.40871742234894, "distance_from_ma50_pct": -10.856111173800208, "volatility_20d_pct": 135.80434164824575, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "KGF_CFD.UK", "name": "KINGFISHER PLC", "sector": "", "last_price": 347.0, "change_1d_pct": 2.6020106445890034, "distance_from_ma200_pct": 18.583930168759967, "distance_from_ma50_pct": 6.639688157278489, "volatility_20d_pct": 88.64906606382688, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "RHIM_CFD.UK", "name": "RHI MAGNESITA NV", "sector": "", "last_price": 2795.0, "change_1d_pct": 2.3809523809523725, "distance_from_ma200_pct": 6.811460460804897, "distance_from_ma50_pct": 10.895008018562113, "volatility_20d_pct": 141.33746334612064, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DLN_CFD.UK", "name": "DERWENT LONDON PLC", "sector": "", "last_price": 1953.0, "change_1d_pct": 10.401356698699837, "distance_from_ma200_pct": 5.069478604951705, "distance_from_ma50_pct": 12.150447212111025, "volatility_20d_pct": 115.39088732649292, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MCG_CFD.UK", "name": "MOBICO GROUP PLC", "sector": "", "last_price": 25.72, "change_1d_pct": 2.9623698959167166, "distance_from_ma200_pct": -7.132760074308242, "distance_from_ma50_pct": 8.327577202351844, "volatility_20d_pct": 232.19808875565576, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SGRO_CFD.UK", "name": "SEGRO PLC", "sector": "", "last_price": 789.8, "change_1d_pct": 5.166444740346199, "distance_from_ma200_pct": 16.137238395282736, "distance_from_ma50_pct": 8.124180991500651, "volatility_20d_pct": 71.28658783635437, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OVH_CFD.FR", "name": "OVH Groupe SA ", "sector": "", "last_price": 9.29, "change_1d_pct": 2.765486725663724, "distance_from_ma200_pct": -5.457946341024078, "distance_from_ma50_pct": 2.972114397696246, "volatility_20d_pct": 88.37583159078285, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "EMG_CFD.UK", "name": "MAN GROUP PLC/JERSEY", "sector": "", "last_price": 269.6, "change_1d_pct": 2.353834472285521, "distance_from_ma200_pct": 42.186331073171914, "distance_from_ma50_pct": 15.516783354614262, "volatility_20d_pct": 86.92367167139048, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ABDN_CFD.UK", "name": "Aberdeen Group Plc", "sector": "", "last_price": 215.2, "change_1d_pct": -0.6463527239150557, "distance_from_ma200_pct": 13.219747060140353, "distance_from_ma50_pct": 3.663782514155023, "volatility_20d_pct": 74.75396598460024, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OCDO_CFD.UK", "name": "OCADO GROUP PLC", "sector": "", "last_price": 217.0, "change_1d_pct": -21.148255813953487, "distance_from_ma200_pct": -15.81606625159202, "distance_from_ma50_pct": -5.48311196636071, "volatility_20d_pct": 241.3119670937803, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "LRE_CFD.UK", "name": "LANCASHIRE HOLDINGS LTD", "sector": "", "last_price": 647.0, "change_1d_pct": -2.26586102719033, "distance_from_ma200_pct": 6.266967093949116, "distance_from_ma50_pct": -1.0131237932627712, "volatility_20d_pct": 79.5840954070324, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "LIO_CFD.UK", "name": "LIONTRUST ASSET MANAGEMENT", "sector": "", "last_price": 270.0, "change_1d_pct": 7.784431137724557, "distance_from_ma200_pct": -17.148878096081223, "distance_from_ma50_pct": 4.440258238208905, "volatility_20d_pct": 138.52252179896075, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "VTY_CFD.UK", "name": "VISTRY GROUP PLC", "sector": "", "last_price": 403.2, "change_1d_pct": -44.21693414499169, "distance_from_ma200_pct": -35.825419675413826, "distance_from_ma50_pct": -36.113069725802745, "volatility_20d_pct": 213.0917779123437, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SMIN_CFD.UK", "name": "SMITHS GROUP PLC", "sector": "", "last_price": 2544.0, "change_1d_pct": 1.4333845019038671, "distance_from_ma200_pct": 14.948150770494873, "distance_from_ma50_pct": 4.167383226889343, "volatility_20d_pct": 72.718462979927, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BBY_CFD.UK", "name": "BALFOUR BEATTY PLC", "sector": "", "last_price": 759.18, "change_1d_pct": 5.222453222453205, "distance_from_ma200_pct": 33.313724414201815, "distance_from_ma50_pct": 8.832962232591, "volatility_20d_pct": 54.25956465831767, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ATO_CFD.FR", "name": "Atos SE", "sector": "", "last_price": 39.852, "change_1d_pct": 5.058919674162321, "distance_from_ma200_pct": -9.167119098837183, "distance_from_ma50_pct": -15.895057494503384, "volatility_20d_pct": 112.40541399176134, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "JEN_CFD.DE", "name": "Jenoptik AG", "sector": "", "last_price": 26.36, "change_1d_pct": -2.2255192878338326, "distance_from_ma200_pct": 28.726336890887815, "distance_from_ma50_pct": 3.711829050171178, "volatility_20d_pct": 80.88961956178072, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MAB_CFD.UK", "name": "MITCHELLS & BUTLERS PLC", "sector": "", "last_price": 292.81, "change_1d_pct": 14.37890625, "distance_from_ma200_pct": 11.595067041457764, "distance_from_ma50_pct": 10.935906392690597, "volatility_20d_pct": 118.87119977937589, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IMI_CFD.UK", "name": "IMI PLC", "sector": "", "last_price": 2774.0, "change_1d_pct": 4.7583081570997, "distance_from_ma200_pct": 25.227479847754264, "distance_from_ma50_pct": 6.661876238540865, "volatility_20d_pct": 87.69330898337377, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "VSVS_CFD.UK", "name": "VESUVIUS PLC", "sector": "", "last_price": 425.0, "change_1d_pct": -15.506958250497016, "distance_from_ma200_pct": 8.502290547178326, "distance_from_ma50_pct": -5.9126275880115315, "volatility_20d_pct": 115.61003156027519, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "NA9_CFD.DE", "name": "Nagarro N", "sector": "", "last_price": 47.587, "change_1d_pct": -7.743161241542429, "distance_from_ma200_pct": -19.068062455026702, "distance_from_ma50_pct": -22.913362051090658, "volatility_20d_pct": 128.39289153108797, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "PBB_CFD.DE", "name": "DEUTSCHE PFANDBRIEFBANK AG", "sector": "", "last_price": 2.822, "change_1d_pct": -0.21216407355020284, "distance_from_ma200_pct": -39.643528950039084, "distance_from_ma50_pct": -26.17976352411844, "volatility_20d_pct": 81.95260145296834, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "INTC_CFD.US", "name": "INTEL CORP", "sector": "", "last_price": 47.17, "change_1d_pct": -2.1166217057480674, "distance_from_ma200_pct": 40.009171684131964, "distance_from_ma50_pct": 2.1314002632855322, "volatility_20d_pct": 99.01898733898086, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OSB_CFD.UK", "name": "OSB GROUP PLC", "sector": "", "last_price": 575.5, "change_1d_pct": -8.50556438791733, "distance_from_ma200_pct": 7.26309045372473, "distance_from_ma50_pct": -3.1605502163448818, "volatility_20d_pct": 83.79306172690484, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IPO_CFD.UK", "name": "IP GROUP PLC", "sector": "", "last_price": 57.6, "change_1d_pct": -1.873935264054516, "distance_from_ma200_pct": 10.233643652522883, "distance_from_ma50_pct": -2.027486732888828, "volatility_20d_pct": 89.82123635439407, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 305.0, "change_1d_pct": 4.2735042735042805, "distance_from_ma200_pct": -30.344980756373573, "distance_from_ma50_pct": -1.1704016694101371, "volatility_20d_pct": 159.9931345477538, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "XFAB_CFD.FR", "name": "X-FAB Silicon Foundries SE", "sector": "", "last_price": 4.784, "change_1d_pct": 0.5464480874316946, "distance_from_ma200_pct": -17.981353787704755, "distance_from_ma50_pct": -2.0458975576995497, "volatility_20d_pct": 87.17896861156424, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BME_CFD.UK", "name": "B&M EUROPEAN VALUE RETAIL SA", "sector": "", "last_price": 180.0, "change_1d_pct": -0.5799502899751507, "distance_from_ma200_pct": -17.510144533683704, "distance_from_ma50_pct": 3.6906975618860693, "volatility_20d_pct": 107.67302074828436, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HBR_CFD.UK", "name": "HARBOUR ENERGY PLC", "sector": "", "last_price": 281.4, "change_1d_pct": -1.6083916083916128, "distance_from_ma200_pct": 31.53672429150014, "distance_from_ma50_pct": 21.003113228641702, "volatility_20d_pct": 146.8436669232312, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HPP_CFD.US", "name": "HUDSON PACIFIC PROPERTIES IN", "sector": "", "last_price": 6.52, "change_1d_pct": 4.99194847020934, "distance_from_ma200_pct": -55.72501977774231, "distance_from_ma50_pct": -19.2449651960663, "volatility_20d_pct": 198.93728211618148, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GROW_CFD.UK", "name": "MOLTEN VENTURES PLC", "sector": "", "last_price": 465.0, "change_1d_pct": 1.572739187418093, "distance_from_ma200_pct": 22.569628774815076, "distance_from_ma50_pct": -4.275686024250158, "volatility_20d_pct": 115.72658030340939, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "AMG_CFD.NL", "name": "AMG ADVANCED METALLURGICAL", "sector": "", "last_price": 32.12, "change_1d_pct": -10.579064587973285, "distance_from_ma200_pct": 13.417918901244485, "distance_from_ma50_pct": -10.434243342241578, "volatility_20d_pct": 127.52335786766218, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "COV_CFD.FR", "name": "Covivio SA", "sector": "", "last_price": 56.35, "change_1d_pct": -0.4416961130742081, "distance_from_ma200_pct": 1.6182091174706592, "distance_from_ma50_pct": 0.8610869871835902, "volatility_20d_pct": 74.61530605197072, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "WKP_CFD.UK", "name": "WORKSPACE GROUP PLC", "sector": "", "last_price": 423.0, "change_1d_pct": 3.6764705882353033, "distance_from_ma200_pct": 1.8640028868691871, "distance_from_ma50_pct": 5.808194506978848, "volatility_20d_pct": 70.2233148398582, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IPGP_CFD.US", "name": "IPG PHOTONICS CORP", "sector": "", "last_price": 114.45, "change_1d_pct": 3.1081081081081097, "distance_from_ma200_pct": 34.341629178368, "distance_from_ma50_pct": 7.462568848343043, "volatility_20d_pct": 7457.40227362749, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MDM_CFD.FR", "name": "Maisons Du Monde", "sector": "", "last_price": 1.218, "change_1d_pct": -5.581395348837215, "distance_from_ma200_pct": -37.51218461096462, "distance_from_ma50_pct": -20.420243835509034, "volatility_20d_pct": 90.45703714762206, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MRN_CFD.FR", "name": "Mersen", "sector": "", "last_price": 24.55, "change_1d_pct": -2.964426877470361, "distance_from_ma200_pct": 3.4320045164606627, "distance_from_ma50_pct": -4.59884104107341, "volatility_20d_pct": 63.97599574805438, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SLG_CFD.US", "name": "SL GREEN REALTY CORP", "sector": "", "last_price": 37.61, "change_1d_pct": 0.3468516542155964, "distance_from_ma200_pct": -28.0183121720058, "distance_from_ma50_pct": -11.592417774601794, "volatility_20d_pct": 104.13435562013662, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "AMCX_CFD.US", "name": "AMC Networks Inc", "sector": "", "last_price": 7.06, "change_1d_pct": -10.406091370558379, "distance_from_ma200_pct": -7.38068375619868, "distance_from_ma50_pct": -11.908564583749259, "volatility_20d_pct": 111.76893297293266, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DPLM_CFD.UK", "name": "DIPLOMA PLC", "sector": "", "last_price": 5220.0, "change_1d_pct": -5.434782608695654, "distance_from_ma200_pct": 4.8180942215069855, "distance_from_ma50_pct": -4.664614313757087, "volatility_20d_pct": 82.77890721911896, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MELE_CFD.BE", "name": "Melexis", "sector": "", "last_price": 53.574, "change_1d_pct": -1.6088154269972565, "distance_from_ma200_pct": -13.266892023157329, "distance_from_ma50_pct": -10.122108713092338, "volatility_20d_pct": 65.40009901295295, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SGL_CFD.DE", "name": "SGL Carbon SE", "sector": "", "last_price": 3.548, "change_1d_pct": -4.649287825853266, "distance_from_ma200_pct": 2.955173294333413, "distance_from_ma50_pct": -10.544097624930671, "volatility_20d_pct": 77.66150883460772, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ASM_CFD.NL", "name": "ASM International NV", "sector": "", "last_price": 680.6, "change_1d_pct": -5.261692650334071, "distance_from_ma200_pct": 24.99006699934054, "distance_from_ma50_pct": -1.2104262916707742, "volatility_20d_pct": 80.17117799072929, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IGG_CFD.UK", "name": "IG GROUP HOLDINGS PLC", "sector": "", "last_price": 1356.0, "change_1d_pct": 3.1963470319634757, "distance_from_ma200_pct": 21.69129359819437, "distance_from_ma50_pct": 9.822701129829392, "volatility_20d_pct": 89.02278066392904, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ALFEN_CFD.NL", "name": "Alfen", "sector": "", "last_price": 8.744, "change_1d_pct": -0.8391925606713535, "distance_from_ma200_pct": -14.91916396207753, "distance_from_ma50_pct": -12.76952759471749, "volatility_20d_pct": 62.00864280318604, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}], "output_schema": {"selected_stocks": [{"symbol": "string", "mean_reversion_score": "integer 0-100", "selection_reason": "short, concrete, indicator-based"}], "rejected_common_reasons": ["string"]}}
Output JSON
{
  "selected_stocks": [
    {
      "symbol": "TRN_CFD.UK",
      "selection_reason": "-12.56% from MA50 and -22.56% from MA200",
      "mean_reversion_score": 85
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "-5.48% from MA50 and -15.82% from MA200",
      "mean_reversion_score": 75
    },
    {
      "symbol": "ATO_CFD.FR",
      "selection_reason": "-1.17% from MA50 and -30.34% from MA200",
      "mean_reversion_score": 72
    },
    {
      "symbol": "BME_CFD.UK",
      "selection_reason": "+3.69% from MA50 but -17.51% from MA200",
      "mean_reversion_score": 68
    },
    {
      "symbol": "COV_CFD.FR",
      "selection_reason": "+0.86% from MA50 but near MA200 (+1.62%)",
      "mean_reversion_score": 65
    }
  ],
  "rejected_common_reasons": [
    "Too far above MA50/MA200",
    "Extreme 1-day movement >10%",
    "Volatility >150%",
    "Insufficient mean-reversion signal"
  ]
}
#1347openrouteramazon/nova-premier-v12026-03-17T11:22:48.633792+00:00
System prompt
You are an Arena portfolio manager. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices/fundamentals/news/earnings. If a field is null/empty, treat it as unknown. Avoid overtrading: if changes are marginal, prefer HOLD. Do not churn.
User prompt
{"task": "stage2_portfolio_management", "region": "EU", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "portfolio_constraints": {"initial_equity": 10000.0, "max_positions": 10, "fixed_position_size": 3000.0, "max_gross_leverage": 3.0, "overtrading_rules": ["Max 2 SELL actions per run unless risk event forces more", "Max 2 BUY actions per run", "If no clear improvement vs current holdings, output HOLD for everything"]}, "current_portfolio": [{"symbol": "ADBE_CFD.US", "qty": 12.025494047380446, "avg_price": 249.47, "last_price": 252.04, "unrealized_pnl": 30.905519701767666, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "ADP_CFD.FR", "qty": 0.0, "avg_price": 117.5, "last_price": 115.1, "unrealized_pnl": -61.276595744680996, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "AKAM_CFD.US", "qty": 0.0, "avg_price": 97.455, "last_price": 107.67, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 0.0, "avg_price": 0.453, "last_price": 0.296, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}, {"symbol": "BRBY_CFD.UK", "qty": 0.0, "avg_price": 1119.08, "last_price": 1067.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "BRNL_CFD.NL", "qty": 0.0, "avg_price": 7.05, "last_price": 6.68, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "BTRW_CFD.UK", "qty": 0.0, "avg_price": 310.3, "last_price": 295.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T18:21:09.503139+00:00"}, {"symbol": "BT_CFD.UK", "qty": 0.0, "avg_price": 211.0, "last_price": 207.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 20.505809979494188, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "CABO_CFD.US", "qty": 0.0, "avg_price": 94.6, "last_price": 111.495, "unrealized_pnl": 535.7822410147995, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "CBG_CFD.UK", "qty": 0.0, "avg_price": 458.2, "last_price": 458.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "CCL_CFD.UK", "qty": 0.0, "avg_price": 1945.9999999999998, "last_price": 1842.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "CO_CFD.FR", "qty": 0.0, "avg_price": 0.171, "last_price": 0.165, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "DLN_CFD.UK", "qty": 1.6556291390728477, "avg_price": 1812.0, "last_price": 1812.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "DSY_CFD.FR", "qty": 0.0, "avg_price": 17.881, "last_price": 16.752, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "ERA_CFD.FR", "qty": 0.0, "avg_price": 47.4, "last_price": 46.329, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "ESTC_CFD.US", "qty": 0.0, "avg_price": 58.085, "last_price": 55.355000000000004, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "EXE_CFD.FR", "qty": 0.0, "avg_price": 37.303, "last_price": 35.843, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 0.0, "avg_price": 405.2, "last_price": 394.1, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "FBIN_CFD.US", "qty": 0.0, "avg_price": 48.255, "last_price": 46.05, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "FICO_CFD.US", "qty": 2.6609662855571625, "avg_price": 1127.4099999999999, "last_price": 1160.8000000000002, "unrealized_pnl": 88.84966427475453, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 29.709178385970056, "avg_price": 403.9155793573515, "last_price": 414.2, "unrealized_pnl": 305.5416874687975, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "GNRC_CFD.US", "qty": 14.950662812718031, "avg_price": 200.66, "last_price": 202.36, "unrealized_pnl": 25.416126781620907, "opened_at": "2026-03-09T18:18:45.954380+00:00"}, {"symbol": "GO_CFD.US", "qty": 0.0, "avg_price": 6.53, "last_price": 6.35, "unrealized_pnl": 0.0, "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": "HELE_CFD.US", "qty": 188.20577164366375, "avg_price": 15.94, "last_price": 15.78, "unrealized_pnl": -30.112923462986227, "opened_at": "2026-03-16T18:18:58.833148+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1409.0, "last_price": 1342.0, "unrealized_pnl": -142.65436479772887, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "HMSO_CFD.UK", "qty": 8.600917431192661, "avg_price": 348.8, "last_price": 348.8, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "IPO_CFD.UK", "qty": 0.0, "avg_price": 57.7, "last_price": 57.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "ITV_CFD.UK", "qty": 36.210018105009055, "avg_price": 82.85, "last_price": 83.3, "unrealized_pnl": 16.294508147254177, "opened_at": "2026-03-13T10:07:39.444598+00:00"}, {"symbol": "JDW_CFD.UK", "qty": 4.514672686230249, "avg_price": 664.5, "last_price": 664.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T10:35:48.762746+00:00"}, {"symbol": "KBCA_CFD.BE", "qty": 0.0, "avg_price": 75.3, "last_price": 75.1, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "KEX_CFD.US", "qty": 24.390243902439025, "avg_price": 123.0, "last_price": 124.2, "unrealized_pnl": 29.268292682926898, "opened_at": "2026-03-09T18:18:45.954380+00:00"}, {"symbol": "KGF_CFD.UK", "qty": 9.505703422053232, "avg_price": 315.6, "last_price": 315.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T10:03:26.036362+00:00"}, {"symbol": "LIO_CFD.UK", "qty": 23.300970873786408, "avg_price": 257.5, "last_price": 257.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "LXS_CFD.DE", "qty": 228.31050228310502, "avg_price": 13.14, "last_price": 13.600999999999999, "unrealized_pnl": 105.25114155251107, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "NXST_CFD.US", "qty": 12.874431379280749, "avg_price": 233.02, "last_price": 236.56, "unrealized_pnl": 45.575487082653744, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 0.0, "avg_price": 217.0, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-01T10:30:13.622938+00:00"}, {"symbol": "OSB_CFD.UK", "qty": 10.743061772605193, "avg_price": 558.5, "last_price": 558.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T10:07:39.444598+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 39.39490073936085, "avg_price": 152.3039755753258, "last_price": 152.7, "unrealized_pnl": 15.601342900401843, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "REC_CFD.BE", "qty": 0.0, "avg_price": 11.08, "last_price": 10.68, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T18:21:09.503139+00:00"}, {"symbol": "RHIM_CFD.UK", "qty": 0.0, "avg_price": 2795.0, "last_price": 2550.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 0.0, "avg_price": 424.3, "last_price": 416.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "ROR_CFD.UK", "qty": 0.0, "avg_price": 315.64, "last_price": 309.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T10:03:26.036362+00:00"}, {"symbol": "SGE_CFD.UK", "qty": 0.0, "avg_price": 795.4, "last_price": 813.4, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "SGRO_CFD.UK", "qty": 4.079412564590699, "avg_price": 735.4, "last_price": 735.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T10:12:30.296045+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 326.0869565217392, "avg_price": 18.4, "last_price": 18.48, "unrealized_pnl": 26.086956521739737, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 81.30081300813009, "avg_price": 184.5, "last_price": 184.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T10:27:11.178069+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 64.97022198159178, "avg_price": 92.35, "last_price": 95.35, "unrealized_pnl": 194.91066594477533, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "UMG_CFD.NL", "qty": 0.0, "avg_price": 19.085, "last_price": 18.665, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 11.881188118811881, "avg_price": 505.0, "last_price": 505.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 0.0, "avg_price": 427.6, "last_price": 406.1, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 3.4403669724770642, "avg_price": 872.0, "last_price": 892.5, "unrealized_pnl": 70.52752293577981, "opened_at": "2026-02-25T17:57:28.313088+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-16T17:30:52.485845+00:00"}, {"symbol": "WTB_CFD.UK", "qty": 1.279317697228145, "avg_price": 2345.0, "last_price": 2345.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T18:17:31.188931+00:00"}, {"symbol": "XRX_CFD.US", "qty": 1923.076923076923, "avg_price": 1.56, "last_price": 1.55, "unrealized_pnl": -19.230769230769248, "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": "TRN_CFD.UK", "mean_reversion_score": 85, "selection_reason": "-12.56% from MA50 and -22.56% from MA200"}, {"symbol": "OCDO_CFD.UK", "mean_reversion_score": 75, "selection_reason": "-5.48% from MA50 and -15.82% from MA200"}, {"symbol": "ATO_CFD.FR", "mean_reversion_score": 72, "selection_reason": "-1.17% from MA50 and -30.34% from MA200"}, {"symbol": "BME_CFD.UK", "mean_reversion_score": 68, "selection_reason": "+3.69% from MA50 but -17.51% from MA200"}, {"symbol": "COV_CFD.FR", "mean_reversion_score": 65, "selection_reason": "+0.86% from MA50 but near MA200 (+1.62%)"}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}
Output JSON
{
  "actions": {
    "buy": [
      {
        "reason": "Highest mean-reversion score with significant deviation from MAs",
        "symbol": "TRN_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Strong mean-reversion candidate with -15.82% from MA200",
        "symbol": "OCDO_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Existing position with positive PnL",
        "symbol": "ADBE_CFD.US"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "DLN_CFD.UK"
      },
      {
        "reason": "Existing position with positive PnL",
        "symbol": "FICO_CFD.US"
      },
      {
        "reason": "Existing position with positive PnL",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "GNRC_CFD.US"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "HMSO_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "ITV_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "JDW_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "KEX_CFD.US"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "KGF_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "LIO_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "LXS_CFD.DE"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "NXST_CFD.US"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "OSB_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "SGRO_CFD.UK"
      },
      {
        "reason": "Small profit but not enough to justify selling",
        "symbol": "SYNT_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "TRN_CFD.UK"
      },
      {
        "reason": "Existing position with positive PnL",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "Existing position with positive PnL",
        "symbol": "WIZZ_CFD.UK"
      },
      {
        "reason": "No movement since purchase",
        "symbol": "WTB_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Marginal loss with low conviction",
        "symbol": "HELE_CFD.US"
      }
    ]
  },
  "portfolio_rationale": "Maintaining existing profitable positions while adding two high-conviction mean-reversion candidates. Selling HELE_CFD.US due to marginal loss. Following max_buys_per_run constraint and avoiding overtrading per strategy rules."
}
Selection logs
#670stage12026-03-17T11:22:48.631361+00:00
{
  "selected_stocks": [
    {
      "symbol": "TRN_CFD.UK",
      "selection_reason": "-12.56% from MA50 and -22.56% from MA200",
      "mean_reversion_score": 85
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "-5.48% from MA50 and -15.82% from MA200",
      "mean_reversion_score": 75
    },
    {
      "symbol": "ATO_CFD.FR",
      "selection_reason": "-1.17% from MA50 and -30.34% from MA200",
      "mean_reversion_score": 72
    },
    {
      "symbol": "BME_CFD.UK",
      "selection_reason": "+3.69% from MA50 but -17.51% from MA200",
      "mean_reversion_score": 68
    },
    {
      "symbol": "COV_CFD.FR",
      "selection_reason": "+0.86% from MA50 but near MA200 (+1.62%)",
      "mean_reversion_score": 65
    }
  ],
  "rejected_common_reasons": [
    "Too far above MA50/MA200",
    "Extreme 1-day movement >10%",
    "Volatility >150%",
    "Insufficient mean-reversion signal"
  ]
}