Arena run #1753

meanrev-v1deepseekdeepseek/deepseek-chatEUsuccess
Arena
Run status
as_of: 2026-05-10T10:12:52.141379+00:00
started_at: 2026-05-10T11:28:41.915885+00:00
finished_at: 2026-05-10T11:29:45.502423+00:00
duration_ms: 63585
Inputs
{
  "as_of": "2026-05-10T10:12:52.141379+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "GRI_CFD.UK",
      "selection_reason": "Significant negative distance from MA200 and MA50, indicating potential mean reversion.",
      "mean_reversion_score": 85
    },
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "Large negative distance from MA50, suggesting potential reversion to mean.",
      "mean_reversion_score": 80
    },
    {
      "symbol": "CTEC_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50, indicating possible mean reversion.",
      "mean_reversion_score": 75
    },
    {
      "symbol": "MNDI_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50, suggesting potential reversion.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "PHP_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50, indicating possible mean reversion.",
      "mean_reversion_score": 65
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "BOY_CFD.UK",
    "ASHM_CFD.UK",
    "GRI_CFD.UK",
    "N91_CFD.UK",
    "CBG_CFD.UK",
    "DLN_CFD.UK",
    "GFTU_CFD.UK",
    "TPK_CFD.UK",
    "PNN_CFD.UK",
    "MGNS_CFD.UK",
    "INVP_CFD.UK",
    "BRNK_CFD.DE",
    "BNZL_CFD.UK",
    "HAIN_CFD.US",
    "OPTU_CFD.US",
    "MCG_CFD.UK",
    "HFG_CFD.UK",
    "HE_CFD.US",
    "WKP_CFD.UK",
    "OCDO_CFD.UK",
    "ADJ_CFD.DE",
    "PSON_CFD.UK",
    "LMP_CFD.UK",
    "HAS_CFD.UK",
    "SBT_CFD.FR",
    "ATG_CFD.UK",
    "MOS_CFD.US",
    "CPG_CFD.UK",
    "GPK_CFD.US",
    "HMSO_CFD.UK",
    "SPX_CFD.UK",
    "BLND_CFD.UK",
    "CTEC_CFD.UK",
    "ECMPA_CFD.NL",
    "PHP_CFD.UK",
    "REC_CFD.BE",
    "MNDI_CFD.UK",
    "GLW_CFD.US",
    "TER_CFD.US",
    "UKW_CFD.UK",
    "NXI_CFD.FR",
    "AKAM_CFD.US",
    "SFM_CFD.US",
    "APH_CFD.US",
    "ALB_CFD.US",
    "GT_CFD.US",
    "TSCO_CFD.US",
    "CDW_CFD.US",
    "SMIN_CFD.UK"
  ]
}
Outputs
{
  "actions": {
    "buy": [],
    "hold": [
      {
        "reason": "Marginal change in price, no clear improvement.",
        "symbol": "ABF_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "ADJ_CFD.DE"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "ADS_CFD.DE"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "AIR_CFD.DE"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "AMH_CFD.US"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "AML_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "ATG_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "BBY_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "BIG_CFD.FR"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "BLND_CFD.UK"
      },
      {
        "reason": "No change in price, no action needed.",
        "symbol": "BOY_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "BTRW_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "BT_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "BYW6_CFD.DE"
      },
      {
        "reason": "No change in price, no action needed.",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CCC_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CCL_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CO_CFD.FR"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CRDA_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CRST_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CRWD_CFD.US"
      },
      {
        "reason": "Marginal change in price, no clear improvement.",
        "symbol": "EMG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "ERA_CFD.FR"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "ESNT_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "EZJ_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "FLO_CFD.US"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "FRVIA_CFD.FR"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Negative unrealized PNL, but marginal change in price, no clear improvement.",
        "symbol": "GRI_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "HAIN_CFD.US"
      },
      {
        "reason": "Marginal change in price, no clear improvement.",
        "symbol": "HAS_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "HIK_CFD.UK"
      },
      {
        "reason": "No change in price, no action needed.",
        "symbol": "HMSO_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "IEP_CFD.BE"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "IHG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "JDW_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "KGF_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "LMP_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "LXS_CFD.DE"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "MCG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "MDM_CFD.FR"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "MSLH_CFD.UK"
      },
      {
        "reason": "No change in price, no action needed.",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "OSB_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Marginal change in price, no clear improvement.",
        "symbol": "PHP_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "PSN_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "RMV_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "ROR_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "RS1_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "SAFE_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "SPX_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "SYNT_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "THG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "TRN_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "UTG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "VTY_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "WIX_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "WIZZ_CFD.UK"
      },
      {
        "reason": "No change in price, no action needed.",
        "symbol": "WKP_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "WPP_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "WTB_CFD.UK"
      }
    ],
    "sell": []
  },
  "portfolio_rationale": "The current portfolio shows marginal changes in most positions, with no clear improvement or deterioration. Following the strategy's overtrading rules, all positions are held to avoid unnecessary trading. No new buys are initiated as the candidates do not present a significant improvement over the current holdings."
}
Prompts & responses
#2874openrouterdeepseek/deepseek-chat2026-05-10T11:28:41.959294+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": "BOY_CFD.UK", "name": "BODYCOTE PLC", "sector": "", "last_price": 775.4, "change_1d_pct": 24.163330664531625, "distance_from_ma200_pct": 28.652243313347768, "distance_from_ma50_pct": 18.63612217470385, "volatility_20d_pct": 103.46484337510964, "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": "ASHM_CFD.UK", "name": "ASHMORE GROUP PLC", "sector": "", "last_price": 244.8, "change_1d_pct": 1.4084507042253502, "distance_from_ma200_pct": 40.45532080672305, "distance_from_ma50_pct": 24.88993054528128, "volatility_20d_pct": 134.25405461264828, "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": "GRI_CFD.UK", "name": "GRAINGER PLC", "sector": "", "last_price": 189.6, "change_1d_pct": -1.455301455301461, "distance_from_ma200_pct": -6.198447178618971, "distance_from_ma50_pct": -0.23237017579308406, "volatility_20d_pct": 71.77829509727196, "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": "N91_CFD.UK", "name": "NINETY ONE PLC", "sector": "", "last_price": 241.4, "change_1d_pct": -2.739726027397249, "distance_from_ma200_pct": 22.140556255617817, "distance_from_ma50_pct": 6.809338693563394, "volatility_20d_pct": 84.21236037483679, "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": "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": "GFTU_CFD.UK", "name": "GRAFTON GROUP PLC-UTS", "sector": "", "last_price": 955.8, "change_1d_pct": 1.0434175890393638, "distance_from_ma200_pct": 3.963270661870655, "distance_from_ma50_pct": 3.4837359036161253, "volatility_20d_pct": 51.04515943079597, "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": "TPK_CFD.UK", "name": "TRAVIS PERKINS PLC", "sector": "", "last_price": 601.57, "change_1d_pct": -1.21029986533977, "distance_from_ma200_pct": 0.5267641208837714, "distance_from_ma50_pct": -4.983077425595306, "volatility_20d_pct": 108.19399806448348, "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": "PNN_CFD.UK", "name": "PENNON GROUP PLC", "sector": "", "last_price": 551.0, "change_1d_pct": 7.699224018295192, "distance_from_ma200_pct": 13.698549858568065, "distance_from_ma50_pct": 7.285607918028347, "volatility_20d_pct": 97.33547101641821, "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": "MGNS_CFD.UK", "name": "MORGAN SINDALL GROUP PLC", "sector": "", "last_price": 4860.0, "change_1d_pct": 8.928311274976753, "distance_from_ma200_pct": 19.027421064583947, "distance_from_ma50_pct": 4.129720434840567, "volatility_20d_pct": 174.2493967907277, "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": 642.0, "change_1d_pct": 9.369676320272568, "distance_from_ma200_pct": 20.33187982293969, "distance_from_ma50_pct": 11.734877154290203, "volatility_20d_pct": 115.28654302325035, "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": "BRNK_CFD.DE", "name": "Branicks Group AG", "sector": "", "last_price": 1.45, "change_1d_pct": 5.072463768115942, "distance_from_ma200_pct": -21.736689839803102, "distance_from_ma50_pct": -6.741616392894367, "volatility_20d_pct": 192.10029439414404, "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": "BNZL_CFD.UK", "name": "BUNZL PLC", "sector": "", "last_price": 2463.0, "change_1d_pct": 11.246612466124661, "distance_from_ma200_pct": 6.753831191506032, "distance_from_ma50_pct": 13.385480526561633, "volatility_20d_pct": 95.72449919502712, "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": "HAIN_CFD.US", "name": "The Hain Celestial Group Inc", "sector": "", "last_price": 0.7051, "change_1d_pct": -0.18403171007929098, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -33.19918220868079, "volatility_20d_pct": 9562.636249272142, "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.16, "change_1d_pct": -18.881118881118887, "distance_from_ma200_pct": -39.28291023292333, "distance_from_ma50_pct": -19.388464211257826, "volatility_20d_pct": 155.53996036728756, "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": 26.38, "change_1d_pct": -4.142441860465118, "distance_from_ma200_pct": -3.657754948131142, "distance_from_ma50_pct": 12.38635685863516, "volatility_20d_pct": 328.69037941810484, "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": "HFG_CFD.UK", "name": "HILTON FOOD GROUP  PLC", "sector": "", "last_price": 548.0, "change_1d_pct": 10.261569416498983, "distance_from_ma200_pct": -29.343342424790787, "distance_from_ma50_pct": -8.640994786201595, "volatility_20d_pct": 169.6338077414147, "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": "HE_CFD.US", "name": "", "sector": "", "last_price": 15.21, "change_1d_pct": -0.5232177894048284, "distance_from_ma200_pct": 15.418325030448132, "distance_from_ma50_pct": 0.38013779995249575, "volatility_20d_pct": 56.2273665181513, "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": "OCDO_CFD.UK", "name": "OCADO GROUP PLC", "sector": "", "last_price": 186.0, "change_1d_pct": -27.372120265521282, "distance_from_ma200_pct": -27.532109898724187, "distance_from_ma50_pct": -19.095469955276336, "volatility_20d_pct": 249.4549801604736, "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": "ADJ_CFD.DE", "name": "ADLER GROUP SA", "sector": "", "last_price": 0.172, "change_1d_pct": 0.0, "distance_from_ma200_pct": -12.882720895484601, "distance_from_ma50_pct": -4.603438713255703, "volatility_20d_pct": 273.6401010011234, "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": "PSON_CFD.UK", "name": "PEARSON PLC", "sector": "", "last_price": 1130.5, "change_1d_pct": 10.887690044139276, "distance_from_ma200_pct": 8.656877487760717, "distance_from_ma50_pct": 14.070566544762686, "volatility_20d_pct": 113.35458813581232, "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": 192.3, "change_1d_pct": -1.5864892528147378, "distance_from_ma200_pct": 0.9846926531141609, "distance_from_ma50_pct": -0.5701060895768606, "volatility_20d_pct": 115.33658818601971, "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": "HAS_CFD.UK", "name": "HAYS PLC", "sector": "", "last_price": 33.32, "change_1d_pct": -41.13074204946997, "distance_from_ma200_pct": -48.070043100929105, "distance_from_ma50_pct": -36.93550462952447, "volatility_20d_pct": 238.64976019705142, "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": "SBT_CFD.FR", "name": "Oeneo Bouchage", "sector": "", "last_price": 9.06, "change_1d_pct": -3.6170212765957444, "distance_from_ma200_pct": -2.470898704832891, "distance_from_ma50_pct": -2.093216767347117, "volatility_20d_pct": 44.82674811022072, "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": 326.5, "change_1d_pct": 12.006861063464846, "distance_from_ma200_pct": -24.987260470422935, "distance_from_ma50_pct": 5.84429056770146, "volatility_20d_pct": 172.45012969704524, "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": "MOS_CFD.US", "name": "MOSAIC CO/THE", "sector": "", "last_price": 22.68, "change_1d_pct": -0.8307826847398392, "distance_from_ma200_pct": -20.041178088180335, "distance_from_ma50_pct": -10.675604357518132, "volatility_20d_pct": 58.492818534138344, "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": "CPG_CFD.UK", "name": "COMPASS GROUP PLC", "sector": "", "last_price": 29.86, "change_1d_pct": 10.38817005545285, "distance_from_ma200_pct": -98.62792901945058, "distance_from_ma50_pct": -97.64592728075431, "volatility_20d_pct": 603.5168554995487, "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": "GPK_CFD.US", "name": "GRAPHIC PACKAGING HOLDING CO", "sector": "", "last_price": 10.83, "change_1d_pct": 3.3396946564885566, "distance_from_ma200_pct": -30.55310635378158, "distance_from_ma50_pct": 8.776440810751085, "volatility_20d_pct": 88.64166136593849, "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": "HMSO_CFD.UK", "name": "HAMMERSON PLC", "sector": "", "last_price": 355.4, "change_1d_pct": 14.129736673089276, "distance_from_ma200_pct": 22.516025502913806, "distance_from_ma50_pct": 10.006914897239172, "volatility_20d_pct": 87.54938293511039, "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": 7168.0, "change_1d_pct": 7.064973861090373, "distance_from_ma200_pct": 9.233977228616963, "distance_from_ma50_pct": 1.207072239512863, "volatility_20d_pct": 136.31219199190863, "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": "BLND_CFD.UK", "name": "BRITISH LAND CO PLC", "sector": "", "last_price": 391.7, "change_1d_pct": 13.077367205542734, "distance_from_ma200_pct": 4.463250377902539, "distance_from_ma50_pct": -0.22954591071041586, "volatility_20d_pct": 119.37084138774277, "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": "CTEC_CFD.UK", "name": "CONVATEC GROUP PLC", "sector": "", "last_price": 207.6, "change_1d_pct": -9.344978165938866, "distance_from_ma200_pct": -16.703012133032836, "distance_from_ma50_pct": -11.110882751143869, "volatility_20d_pct": 116.55231905033538, "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": "ECMPA_CFD.NL", "name": "Eurocommercial Properties", "sector": "", "last_price": 27.55, "change_1d_pct": -1.0771992818671472, "distance_from_ma200_pct": 3.6903216093641333, "distance_from_ma50_pct": 1.1231830861841097, "volatility_20d_pct": 61.36817383080048, "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": "PHP_CFD.UK", "name": "PRIMARY HEALTH PROPERTIES", "sector": "", "last_price": 94.45, "change_1d_pct": 2.9427792915531326, "distance_from_ma200_pct": -1.7938096307572038, "distance_from_ma50_pct": -3.243122527295772, "volatility_20d_pct": 111.6461438724416, "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": 10.46, "change_1d_pct": 4.809619238476959, "distance_from_ma200_pct": 8.058074500153921, "distance_from_ma50_pct": 4.356848542895064, "volatility_20d_pct": 90.40840090493766, "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": "MNDI_CFD.UK", "name": "MONDI PLC", "sector": "", "last_price": 791.2, "change_1d_pct": -6.698113207547163, "distance_from_ma200_pct": -16.479426249971617, "distance_from_ma50_pct": -7.4613389099806415, "volatility_20d_pct": 122.60907560467662, "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": "GLW_CFD.US", "name": "CORNING INC", "sector": "", "last_price": 188.85, "change_1d_pct": 15.110325490674148, "distance_from_ma200_pct": 82.89928046057497, "distance_from_ma50_pct": 24.75557552055807, "volatility_20d_pct": 146.84474569423688, "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": "TER_CFD.US", "name": "Teradyne Inc", "sector": "", "last_price": 364.83, "change_1d_pct": 0.42390376833933985, "distance_from_ma200_pct": 68.88921190821016, "distance_from_ma50_pct": 9.709846130159061, "volatility_20d_pct": 157.6172997157301, "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": "UKW_CFD.UK", "name": "GREENCOAT UK WIND PLC", "sector": "", "last_price": 100.4, "change_1d_pct": 3.976801988401002, "distance_from_ma200_pct": -9.084405711745047, "distance_from_ma50_pct": 0.06418459649417674, "volatility_20d_pct": 80.6750581480199, "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": 8.87, "change_1d_pct": 2.9002320185614883, "distance_from_ma200_pct": -3.8172723359173766, "distance_from_ma50_pct": 5.139882271780061, "volatility_20d_pct": 60.36558349705058, "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": "AKAM_CFD.US", "name": "Akamai Technologies Inc", "sector": "", "last_price": 149.65, "change_1d_pct": 29.533454513979063, "distance_from_ma200_pct": 67.35414384628247, "distance_from_ma50_pct": 40.951064126376544, "volatility_20d_pct": 154.28386628635903, "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": "SFM_CFD.US", "name": "SPROUTS FARMERS MARKET INC", "sector": "", "last_price": 83.96, "change_1d_pct": 5.823040080665476, "distance_from_ma200_pct": -11.859033241826022, "distance_from_ma50_pct": 8.726337517838312, "volatility_20d_pct": 109.60367883354618, "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": "APH_CFD.US", "name": "Amphenol Corporation", "sector": "", "last_price": 129.32, "change_1d_pct": -6.405153072302228, "distance_from_ma200_pct": -2.0376873106913607, "distance_from_ma50_pct": -5.5835102608208125, "volatility_20d_pct": 75.0166002676417, "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": "ALB_CFD.US", "name": "Albemarle Corp", "sector": "", "last_price": 206.33, "change_1d_pct": 5.340276714147141, "distance_from_ma200_pct": 55.2867137024927, "distance_from_ma50_pct": 14.528901159776497, "volatility_20d_pct": 129.20248363317458, "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": "GT_CFD.US", "name": "GOODYEAR TIRE & RUBBER CO", "sector": "", "last_price": 6.6, "change_1d_pct": -6.647807637906656, "distance_from_ma200_pct": -19.067063973807162, "distance_from_ma50_pct": -5.438707089231487, "volatility_20d_pct": 91.97055948582533, "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": "TSCO_CFD.US", "name": "TRACTOR SUPPLY COMPANY", "sector": "", "last_price": 30.97, "change_1d_pct": -4.941682013505222, "distance_from_ma200_pct": -40.941691123328326, "distance_from_ma50_pct": -28.859547567855635, "volatility_20d_pct": 73.43852653574369, "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": "CDW_CFD.US", "name": "CDW Corp", "sector": "", "last_price": 105.95, "change_1d_pct": -22.522851919561237, "distance_from_ma200_pct": -26.021248903759897, "distance_from_ma50_pct": -15.385807177072463, "volatility_20d_pct": 133.8807652870453, "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": 2557.0, "change_1d_pct": 4.6235679214402525, "distance_from_ma200_pct": 14.883274190387418, "distance_from_ma50_pct": 3.9730049158046343, "volatility_20d_pct": 101.30183705216716, "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": "GRI_CFD.UK",
      "selection_reason": "Significant negative distance from MA200 and MA50, indicating potential mean reversion.",
      "mean_reversion_score": 85
    },
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "Large negative distance from MA50, suggesting potential reversion to mean.",
      "mean_reversion_score": 80
    },
    {
      "symbol": "CTEC_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50, indicating possible mean reversion.",
      "mean_reversion_score": 75
    },
    {
      "symbol": "MNDI_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50, suggesting potential reversion.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "PHP_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50, indicating possible mean reversion.",
      "mean_reversion_score": 65
    }
  ],
  "rejected_common_reasons": [
    "High volatility",
    "Positive distance from MA200 and MA50",
    "Unknown earnings dates",
    "Unknown sector information"
  ]
}
#2875openrouterdeepseek/deepseek-chat2026-05-10T11:28:51.711539+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": 1.6220600162206003, "avg_price": 1849.5, "last_price": 1821.0, "unrealized_pnl": -46.228710462287104, "opened_at": "2026-03-10T10:41:24.306870+00:00"}, {"symbol": "ADJ_CFD.DE", "qty": 0.0, "avg_price": 0.184, "last_price": 0.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T21:00:47.737392+00:00"}, {"symbol": "ADS_CFD.DE", "qty": 21.873860736419978, "avg_price": 137.15, "last_price": 147.175, "unrealized_pnl": 219.2854538826104, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "AIR_CFD.DE", "qty": 0.0, "avg_price": 200.984, "last_price": 187.12, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "AMH_CFD.US", "qty": 0.0, "avg_price": 29.634999999999998, "last_price": 28.67, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "AML_CFD.UK", "qty": 0.0, "avg_price": 39.92, "last_price": 36.92, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "ATG_CFD.UK", "qty": 10.135135135135135, "avg_price": 296.0, "last_price": 320.0, "unrealized_pnl": 243.24324324324323, "opened_at": "2026-02-16T21:00:47.737392+00:00"}, {"symbol": "BBY_CFD.UK", "qty": 4.129387474191328, "avg_price": 726.5, "last_price": 823.0, "unrealized_pnl": 398.4858912594632, "opened_at": "2026-03-06T18:02:13.212382+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-22T17:33:48.338981+00:00"}, {"symbol": "BLND_CFD.UK", "qty": 8.237232289950576, "avg_price": 364.2, "last_price": 385.1, "unrealized_pnl": 172.1581548599673, "opened_at": "2026-03-10T10:41:24.306870+00:00"}, {"symbol": "BOY_CFD.UK", "qty": 4.73186119873817, "avg_price": 634.0, "last_price": 634.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-27T09:59:46.331143+00:00"}, {"symbol": "BTRW_CFD.UK", "qty": 11.63241566498643, "avg_price": 257.9, "last_price": 264.3, "unrealized_pnl": 74.44746025591355, "opened_at": "2026-03-20T18:25:08.105367+00:00"}, {"symbol": "BT_CFD.UK", "qty": 0.0, "avg_price": 204.0, "last_price": 203.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 10.252904989747094, "avg_price": 292.6, "last_price": 314.8, "unrealized_pnl": 227.61449077238538, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "BYW6_CFD.DE", "qty": 0.0, "avg_price": 3.005, "last_price": 2.94, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "CBG_CFD.UK", "qty": 17.496792254753295, "avg_price": 342.92, "last_price": 342.92, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "CCC_CFD.UK", "qty": 0.0, "avg_price": 2978.0, "last_price": 2926.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "CCL_CFD.UK", "qty": 0.0, "avg_price": 1945.9999999999998, "last_price": 1849.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+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": "CRDA_CFD.UK", "qty": 0.0, "avg_price": 2911.0, "last_price": 2852.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "CRST_CFD.UK", "qty": 0.0, "avg_price": 103.4, "last_price": 74.5, "unrealized_pnl": -838.4912959381046, "opened_at": "2026-03-20T10:26:40.341409+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 422.705, "last_price": 388.21500000000003, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "EMG_CFD.UK", "qty": 11.857707509881424, "avg_price": 252.99999999999997, "last_price": 248.0, "unrealized_pnl": -59.28853754940678, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "ERA_CFD.FR", "qty": 0.0, "avg_price": 47.4, "last_price": 45.76, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "ESNT_CFD.UK", "qty": 0.0, "avg_price": 95.5, "last_price": 87.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-20T10:26:40.341409+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 0.0, "avg_price": 474.05, "last_price": 437.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "FLO_CFD.US", "qty": 0.0, "avg_price": 9.875, "last_price": 9.245000000000001, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "FRVIA_CFD.FR", "qty": 0.0, "avg_price": 12.709, "last_price": 11.64, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 10.55594651653765, "avg_price": 284.2, "last_price": 337.6, "unrealized_pnl": 563.6875439831109, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "GRI_CFD.UK", "qty": 15.822784810126583, "avg_price": 189.6, "last_price": 159.3, "unrealized_pnl": -479.4303797468352, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "HAIN_CFD.US", "qty": 0.0, "avg_price": 0.7051, "last_price": 0.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-20T18:25:08.105367+00:00"}, {"symbol": "HAS_CFD.UK", "qty": 277.09359605911334, "avg_price": 32.48, "last_price": 32.56, "unrealized_pnl": 22.167487684730563, "opened_at": "2026-04-07T18:08:48.203875+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1408.0, "last_price": 1275.0, "unrealized_pnl": 0.0, "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-03-16T10:12:30.296045+00:00"}, {"symbol": "IEP_CFD.BE", "qty": 582.5242718446601, "avg_price": 5.15, "last_price": 5.45, "unrealized_pnl": 174.75728155339795, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "IHG_CFD.UK", "qty": 23.21083172147002, "avg_price": 129.25, "last_price": 149.35, "unrealized_pnl": 466.53771760154723, "opened_at": "2026-03-07T10:14:47.113218+00:00"}, {"symbol": "JDW_CFD.UK", "qty": 0.0, "avg_price": 664.5, "last_price": 588.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T10:35:48.762746+00:00"}, {"symbol": "KGF_CFD.UK", "qty": 0.0, "avg_price": 315.6, "last_price": 298.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "LMP_CFD.UK", "qty": 33.09431880860452, "avg_price": 181.3, "last_price": 187.9, "unrealized_pnl": 218.42250413678966, "opened_at": "2026-03-23T10:03:51.599067+00:00"}, {"symbol": "LXS_CFD.DE", "qty": 0.0, "avg_price": 20.34, "last_price": 20.025, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "MCG_CFD.UK", "qty": 172.51293847038528, "avg_price": 17.39, "last_price": 25.7, "unrealized_pnl": 1433.5825186889015, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "MDM_CFD.FR", "qty": 0.0, "avg_price": 0.84, "last_price": 0.63, "unrealized_pnl": -749.9999999999999, "opened_at": "2026-04-09T10:04:16.483403+00:00"}, {"symbol": "MSLH_CFD.UK", "qty": 0.0, "avg_price": 140.8, "last_price": 137.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T17:59:11.913241+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 16.5380374862183, "avg_price": 181.4, "last_price": 181.4, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "OSB_CFD.UK", "qty": 0.0, "avg_price": 553.5815365927725, "last_price": 544.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 67.72009029345372, "avg_price": 132.9, "last_price": 139.0, "unrealized_pnl": 413.0925507900673, "opened_at": "2026-03-05T10:27:11.178069+00:00"}, {"symbol": "PHP_CFD.UK", "qty": 32.715376226826606, "avg_price": 91.7, "last_price": 92.95, "unrealized_pnl": 40.89422028353326, "opened_at": "2026-04-05T10:14:33.033169+00:00"}, {"symbol": "PSN_CFD.UK", "qty": 0.0, "avg_price": 1113.0, "last_price": 1078.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T17:59:11.913241+00:00"}, {"symbol": "RHIM_CFD.UK", "qty": 0.0, "avg_price": 2550.0, "last_price": 2325.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+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-21T17:32:49.140800+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-16T10:12:30.296045+00:00"}, {"symbol": "RS1_CFD.UK", "qty": 5.323868677905945, "avg_price": 563.5, "last_price": 579.5, "unrealized_pnl": 85.18189884649512, "opened_at": "2026-04-05T18:04:47.891107+00:00"}, {"symbol": "SAFE_CFD.UK", "qty": 0.0, "avg_price": 708.0, "last_price": 643.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "SPX_CFD.UK", "qty": 0.45871559633027525, "avg_price": 6540.0, "last_price": 7046.0, "unrealized_pnl": 232.11009174311928, "opened_at": "2026-03-27T09:59:46.331143+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 0.0, "avg_price": 18.4, "last_price": 38.9, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "THG_CFD.UK", "qty": 207.7562326869806, "avg_price": 28.88, "last_price": 31.18, "unrealized_pnl": 477.83933518005557, "opened_at": "2026-04-07T18:08:48.203875+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 0.0, "avg_price": 184.5, "last_price": 211.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 97.45533297238767, "avg_price": 92.35, "last_price": 99.04, "unrealized_pnl": 651.9761775852746, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 0.0, "avg_price": 505.0, "last_price": 461.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 0.0, "avg_price": 427.6, "last_price": 406.1, "unrealized_pnl": -150.84190832553787, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "WIX_CFD.UK", "qty": 0.0, "avg_price": 224.5, "last_price": 220.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 1299.0, "last_price": 1080.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "WKP_CFD.UK", "qty": 7.2727272727272725, "avg_price": 412.5, "last_price": 412.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+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-27T18:23:55.960577+00:00"}, {"symbol": "WTB_CFD.UK", "qty": 0.0, "avg_price": 2345.0, "last_price": 2308.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T18:17:31.188931+00:00"}], "candidates": [{"symbol": "GRI_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Significant negative distance from MA200 and MA50, indicating potential mean reversion."}, {"symbol": "CBG_CFD.UK", "mean_reversion_score": 80, "selection_reason": "Large negative distance from MA50, suggesting potential reversion to mean."}, {"symbol": "CTEC_CFD.UK", "mean_reversion_score": 75, "selection_reason": "Negative distance from MA200 and MA50, indicating possible mean reversion."}, {"symbol": "MNDI_CFD.UK", "mean_reversion_score": 70, "selection_reason": "Negative distance from MA200 and MA50, suggesting potential reversion."}, {"symbol": "PHP_CFD.UK", "mean_reversion_score": 65, "selection_reason": "Negative distance from MA200 and MA50, indicating possible mean reversion."}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}
Output JSON
{
  "actions": {
    "buy": [],
    "hold": [
      {
        "reason": "Marginal change in price, no clear improvement.",
        "symbol": "ABF_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "ADJ_CFD.DE"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "ADS_CFD.DE"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "AIR_CFD.DE"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "AMH_CFD.US"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "AML_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "ATG_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "BBY_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "BIG_CFD.FR"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "BLND_CFD.UK"
      },
      {
        "reason": "No change in price, no action needed.",
        "symbol": "BOY_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "BTRW_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "BT_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "BYW6_CFD.DE"
      },
      {
        "reason": "No change in price, no action needed.",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CCC_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CCL_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CO_CFD.FR"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CRDA_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CRST_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "CRWD_CFD.US"
      },
      {
        "reason": "Marginal change in price, no clear improvement.",
        "symbol": "EMG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "ERA_CFD.FR"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "ESNT_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "EZJ_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "FLO_CFD.US"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "FRVIA_CFD.FR"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Negative unrealized PNL, but marginal change in price, no clear improvement.",
        "symbol": "GRI_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "HAIN_CFD.US"
      },
      {
        "reason": "Marginal change in price, no clear improvement.",
        "symbol": "HAS_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "HIK_CFD.UK"
      },
      {
        "reason": "No change in price, no action needed.",
        "symbol": "HMSO_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "IEP_CFD.BE"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "IHG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "JDW_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "KGF_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "LMP_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "LXS_CFD.DE"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "MCG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "MDM_CFD.FR"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "MSLH_CFD.UK"
      },
      {
        "reason": "No change in price, no action needed.",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "OSB_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Marginal change in price, no clear improvement.",
        "symbol": "PHP_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "PSN_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "RMV_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "ROR_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "RS1_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "SAFE_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "SPX_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "SYNT_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "THG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "TRN_CFD.UK"
      },
      {
        "reason": "Positive unrealized PNL, holding for potential further gains.",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "UTG_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "VTY_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "WIX_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "WIZZ_CFD.UK"
      },
      {
        "reason": "No change in price, no action needed.",
        "symbol": "WKP_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "WPP_CFD.UK"
      },
      {
        "reason": "No position held, no action needed.",
        "symbol": "WTB_CFD.UK"
      }
    ],
    "sell": []
  },
  "portfolio_rationale": "The current portfolio shows marginal changes in most positions, with no clear improvement or deterioration. Following the strategy's overtrading rules, all positions are held to avoid unnecessary trading. No new buys are initiated as the candidates do not present a significant improvement over the current holdings."
}
Selection logs
#1126stage12026-05-10T11:28:51.708932+00:00
{
  "selected_stocks": [
    {
      "symbol": "GRI_CFD.UK",
      "selection_reason": "Significant negative distance from MA200 and MA50, indicating potential mean reversion.",
      "mean_reversion_score": 85
    },
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "Large negative distance from MA50, suggesting potential reversion to mean.",
      "mean_reversion_score": 80
    },
    {
      "symbol": "CTEC_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50, indicating possible mean reversion.",
      "mean_reversion_score": 75
    },
    {
      "symbol": "MNDI_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50, suggesting potential reversion.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "PHP_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50, indicating possible mean reversion.",
      "mean_reversion_score": 65
    }
  ],
  "rejected_common_reasons": [
    "High volatility",
    "Positive distance from MA200 and MA50",
    "Unknown earnings dates",
    "Unknown sector information"
  ]
}