Arena run #1171

meanrev-v1amazonamazon/nova-premier-v1USsuccess
Arena
Run status
as_of: 2026-04-10T18:00:56.644490+00:00
started_at: 2026-04-10T18:06:44.013660+00:00
finished_at: 2026-04-10T18:07:21.616384+00:00
duration_ms: 37600
Inputs
{
  "as_of": "2026-04-10T18:00:56.644490+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "THG_CFD.UK",
      "selection_reason": "-18.65% from MA50 with high volatility",
      "mean_reversion_score": 85
    },
    {
      "symbol": "SHC_CFD.UK",
      "selection_reason": "Near MA200 (+0.27%) with low volatility",
      "mean_reversion_score": 72
    },
    {
      "symbol": "ITV_CFD.UK",
      "selection_reason": "-1.51% from MA50 with moderate volatility",
      "mean_reversion_score": 70
    },
    {
      "symbol": "FUR_CFD.NL",
      "selection_reason": "+1.08% from MA50 with low volatility",
      "mean_reversion_score": 68
    },
    {
      "symbol": "SAVE_CFD.FR",
      "selection_reason": "+1.48% from MA50 with low volatility",
      "mean_reversion_score": 65
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "GEN_CFD.UK",
    "JUP_CFD.UK",
    "BOY_CFD.UK",
    "THG_CFD.UK",
    "CRST_CFD.UK",
    "FGP_CFD.UK",
    "ICG_CFD.UK",
    "SHC_CFD.UK",
    "VCT_CFD.UK",
    "DLN_CFD.UK",
    "TPK_CFD.UK",
    "DOM_CFD.UK",
    "ITV_CFD.UK",
    "SGE_CFD.UK",
    "FUTR_CFD.UK",
    "IEP_CFD.BE",
    "ESNT_CFD.UK",
    "IPO_CFD.UK",
    "IWG_CFD.UK",
    "VIRI_CFD.FR",
    "WKP_CFD.UK",
    "SMIN_CFD.UK",
    "DOCS_CFD.UK",
    "CRDA_CFD.UK",
    "ATG_CFD.UK",
    "SW_CFD.FR",
    "AUTO_CFD.UK",
    "FIS_CFD.US",
    "COIN_CFD.US",
    "FUR_CFD.NL",
    "DLTR_CFD.US",
    "SEM_CFD.PT",
    "CO_CFD.FR",
    "DGE_CFD.UK",
    "GLO_CFD.FR",
    "SCHP_CFD.FR",
    "HYQ_CFD.DE",
    "VIRP_CFD.FR",
    "CNA_CFD.UK",
    "AKAM_CFD.US",
    "TUB_CFD.BE",
    "CTT_CFD.PT",
    "EXPO_CFD.US",
    "ITRK_CFD.UK",
    "SAVE_CFD.FR",
    "AAD_CFD.DE",
    "BPOST_CFD.BE",
    "ZAL_CFD.DE",
    "BRBY_CFD.UK",
    "UN0_CFD.DE"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "High mean-reversion score (85) and -18.65% from MA50",
        "symbol": "THG_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Moderate score (70) with -1.51% from MA50",
        "symbol": "ITV_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "CRST_CFD.UK"
      },
      {
        "reason": "Profitable position but not highest priority to sell",
        "symbol": "DCC_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "DLN_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "HAS_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "HWDN_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "IPO_CFD.UK"
      },
      {
        "reason": "Profitable but not highest priority to sell",
        "symbol": "KEX_CFD.US"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "LRE_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "MAB_CFD.UK"
      },
      {
        "reason": "Profitable but not highest priority to sell",
        "symbol": "MSM_CFD.US"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "PAG_CFD.UK"
      },
      {
        "reason": "Profitable but not highest priority to sell",
        "symbol": "PZC_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "SAFE_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "SRP_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "TPK_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "VCT_CFD.UK"
      },
      {
        "reason": "Profitable but not highest priority to sell",
        "symbol": "WTB_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Significant unrealized gain (+532.12%) above profit threshold",
        "symbol": "WIZZ_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "First selling WIZZ_CFD.UK due to over 500% unrealized gain. Using freed capital to buy THG_CFD.UK (strongest candidate) and ITV_CFD.UK (next best opportunity). Maintained 9 existing positions under max_positions=10 constraint. Prioritized high mean-reversion scores while respecting max 2 buys/sells per run."
}
Prompts & responses
#2262openrouteramazon/nova-premier-v12026-04-10T18:06:44.068137+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": "US", "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": "GEN_CFD.UK", "name": "GENUIT GROUP PLC", "sector": "", "last_price": 370.0, "change_1d_pct": 13.671274961597547, "distance_from_ma200_pct": 1.1384913963945476, "distance_from_ma50_pct": 7.521632190000593, "volatility_20d_pct": 112.82453945409682, "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": "JUP_CFD.UK", "name": "JUPITER FUND MANAGEMENT", "sector": "", "last_price": 193.6, "change_1d_pct": 22.06809583858764, "distance_from_ma200_pct": 57.65825374753912, "distance_from_ma50_pct": 19.274691586205538, "volatility_20d_pct": 96.15961444303547, "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": "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": "THG_CFD.UK", "name": "THG PLC", "sector": "", "last_price": 34.98, "change_1d_pct": -21.463852716659193, "distance_from_ma200_pct": 2.6990050116409536, "distance_from_ma50_pct": -18.650784422253118, "volatility_20d_pct": 150.5308117928466, "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": "CRST_CFD.UK", "name": "CREST NICHOLSON HOLDINGS", "sector": "", "last_price": 118.83, "change_1d_pct": -12.817314746881891, "distance_from_ma200_pct": -28.150055914529826, "distance_from_ma50_pct": -15.848139991077058, "volatility_20d_pct": 236.5351415372937, "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": "FGP_CFD.UK", "name": "FIRSTGROUP PLC", "sector": "", "last_price": 193.2, "change_1d_pct": 1.3109596224436304, "distance_from_ma200_pct": -4.044842646206826, "distance_from_ma50_pct": 1.7250076083144883, "volatility_20d_pct": 88.3516119820011, "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": "ICG_CFD.UK", "name": "ICG Plc", "sector": "", "last_price": 1693.0, "change_1d_pct": -15.18545979199647, "distance_from_ma200_pct": -16.18296530905513, "distance_from_ma50_pct": -12.256151916578562, "volatility_20d_pct": 73.10253575454833, "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": "SHC_CFD.UK", "name": "SHAFTESBURY CAPITAL PLC", "sector": "", "last_price": 140.4, "change_1d_pct": -2.9045643153526868, "distance_from_ma200_pct": 0.26963533347688085, "distance_from_ma50_pct": -0.771073778544229, "volatility_20d_pct": 63.75522821252001, "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": "VCT_CFD.UK", "name": "VICTREX PLC", "sector": "", "last_price": 635.0, "change_1d_pct": -9.285714285714286, "distance_from_ma200_pct": -11.261564295119154, "distance_from_ma50_pct": -2.9181133396627645, "volatility_20d_pct": 130.4010909373053, "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": "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": "DOM_CFD.UK", "name": "DOMINO'S PIZZA GROUP PLC", "sector": "", "last_price": 183.13, "change_1d_pct": -0.3102885138813294, "distance_from_ma200_pct": -15.070952368916624, "distance_from_ma50_pct": 1.0777282376278619, "volatility_20d_pct": 87.92203351330001, "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": "ITV_CFD.UK", "name": "ITV PLC", "sector": "", "last_price": 79.85, "change_1d_pct": -2.9179331306990908, "distance_from_ma200_pct": 0.2068138123516139, "distance_from_ma50_pct": -1.5145908877870817, "volatility_20d_pct": 147.26310294999405, "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": "SGE_CFD.UK", "name": "SAGE GROUP PLC/THE", "sector": "", "last_price": 856.8, "change_1d_pct": 3.1046931407942235, "distance_from_ma200_pct": -22.243697671553598, "distance_from_ma50_pct": -3.8484198618999543, "volatility_20d_pct": 113.91757826865711, "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": "FUTR_CFD.UK", "name": "FUTURE PLC", "sector": "", "last_price": 297.6, "change_1d_pct": -44.11267605633803, "distance_from_ma200_pct": -55.33773697844032, "distance_from_ma50_pct": -43.86756971474314, "volatility_20d_pct": 219.4328826104575, "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": "IEP_CFD.BE", "name": "IEP Invest NV", "sector": "", "last_price": 5.4, "change_1d_pct": 0.0, "distance_from_ma200_pct": 0.9951765451794659, "distance_from_ma50_pct": 0.5657756042326989, "volatility_20d_pct": 138.39532879660115, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ESNT_CFD.UK", "name": "ESSENTRA PLC", "sector": "", "last_price": 90.1, "change_1d_pct": -10.61507936507937, "distance_from_ma200_pct": -10.657490467074904, "distance_from_ma50_pct": -8.545188421272742, "volatility_20d_pct": 126.22890829663649, "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": "IWG_CFD.UK", "name": "IWG PLC", "sector": "", "last_price": 177.0, "change_1d_pct": -26.786896095301127, "distance_from_ma200_pct": -17.645939421376646, "distance_from_ma50_pct": -22.14236071400294, "volatility_20d_pct": 154.02502086657427, "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": "VIRI_CFD.FR", "name": "VIRIDIEN", "sector": "", "last_price": 127.1, "change_1d_pct": 32.258064516129025, "distance_from_ma200_pct": 86.88026988392838, "distance_from_ma50_pct": 29.097132641971314, "volatility_20d_pct": 297.97668648307325, "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": "SMIN_CFD.UK", "name": "SMITHS GROUP PLC", "sector": "", "last_price": 2410.0, "change_1d_pct": -2.900886381950041, "distance_from_ma200_pct": 8.724723729236384, "distance_from_ma50_pct": -1.2150629239554345, "volatility_20d_pct": 88.62035790812207, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DOCS_CFD.UK", "name": "DR. MARTENS PLC", "sector": "", "last_price": 64.5, "change_1d_pct": -3.5153328347045543, "distance_from_ma200_pct": -14.829841246785492, "distance_from_ma50_pct": -11.320702834987761, "volatility_20d_pct": 128.30568371469687, "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": "CRDA_CFD.UK", "name": "CRODA INTERNATIONAL PLC", "sector": "", "last_price": 3008.31, "change_1d_pct": -6.574223602484475, "distance_from_ma200_pct": 6.3535245799013484, "distance_from_ma50_pct": 6.21677669397771, "volatility_20d_pct": 122.68863352417152, "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": "SW_CFD.FR", "name": "Sodexo", "sector": "", "last_price": 40.439, "change_1d_pct": -11.614538937337437, "distance_from_ma200_pct": -16.173190802122594, "distance_from_ma50_pct": -9.890537915986663, "volatility_20d_pct": 103.00245662172654, "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": "AUTO_CFD.UK", "name": "AUTOTRADER GROUP PLC", "sector": "", "last_price": 490.4, "change_1d_pct": -38.63326367424575, "distance_from_ma200_pct": -37.426260695289436, "distance_from_ma50_pct": -31.896720766000808, "volatility_20d_pct": 130.06763966702516, "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": "FIS_CFD.US", "name": "", "sector": "", "last_price": 44.57, "change_1d_pct": -4.397254397254391, "distance_from_ma200_pct": -30.408632639709698, "distance_from_ma50_pct": -9.524582842759122, "volatility_20d_pct": 69.85761662915363, "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": "COIN_CFD.US", "name": "Coinbase Global Inc", "sector": "", "last_price": 166.58, "change_1d_pct": -4.724319377716768, "distance_from_ma200_pct": -39.89440929244411, "distance_from_ma50_pct": -7.24014656257308, "volatility_20d_pct": 120.38712181382387, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "FUR_CFD.NL", "name": "Fugro", "sector": "", "last_price": 11.17, "change_1d_pct": -0.9751773049645363, "distance_from_ma200_pct": -1.2838403325771242, "distance_from_ma50_pct": 1.0826796593051968, "volatility_20d_pct": 77.54272041051318, "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": "DLTR_CFD.US", "name": "Dollar Tree Inc", "sector": "", "last_price": 100.35, "change_1d_pct": -9.594594594594597, "distance_from_ma200_pct": -9.990797265370643, "distance_from_ma50_pct": -13.838550530019567, "volatility_20d_pct": 83.53069428976167, "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": "SEM_CFD.PT", "name": "Semapa-Sociedade de Investimento e Gestao SGPS SA", "sector": "", "last_price": 23.1, "change_1d_pct": 6.6974595842956175, "distance_from_ma200_pct": 22.528381100395055, "distance_from_ma50_pct": 3.1992666150819415, "volatility_20d_pct": 149.20448245817002, "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": "CO_CFD.FR", "name": "Casino Guichard Perrachon", "sector": "", "last_price": 0.156, "change_1d_pct": -4.294478527607371, "distance_from_ma200_pct": -55.395436610053196, "distance_from_ma50_pct": -22.22554591684116, "volatility_20d_pct": 130.02589335759959, "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": "DGE_CFD.UK", "name": "DIAGEO PLC", "sector": "", "last_price": 1470.8, "change_1d_pct": 5.585068198133514, "distance_from_ma200_pct": -16.282806333750997, "distance_from_ma50_pct": -7.265649363021942, "volatility_20d_pct": 70.49886409233376, "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": "GLO_CFD.FR", "name": "GL Events", "sector": "", "last_price": 32.8, "change_1d_pct": 5.806451612903207, "distance_from_ma200_pct": 8.356463694307914, "distance_from_ma50_pct": 1.5516346717095786, "volatility_20d_pct": 73.02437828063992, "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": "SCHP_CFD.FR", "name": "", "sector": "", "last_price": 87.662, "change_1d_pct": 7.521157856003935, "distance_from_ma200_pct": 10.64451420328365, "distance_from_ma50_pct": 24.79393668482206, "volatility_20d_pct": 65.31259879016224, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HYQ_CFD.DE", "name": "HYPOPORT SE", "sector": "", "last_price": 81.859, "change_1d_pct": 1.6250775915580329, "distance_from_ma200_pct": -37.60724124600456, "distance_from_ma50_pct": -2.2519346854398714, "volatility_20d_pct": 143.89732959618286, "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": "VIRP_CFD.FR", "name": "Virbac SA", "sector": "", "last_price": 364.0, "change_1d_pct": 2.5352112676056304, "distance_from_ma200_pct": 5.566227298965254, "distance_from_ma50_pct": 3.14780462649642, "volatility_20d_pct": 60.92859798666134, "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": "CNA_CFD.UK", "name": "CENTRICA PLC", "sector": "", "last_price": 212.7, "change_1d_pct": -0.2812939521800395, "distance_from_ma200_pct": 22.70122683920599, "distance_from_ma50_pct": 8.704429232752187, "volatility_20d_pct": 108.48603569702911, "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": 92.94, "change_1d_pct": -17.723087818696882, "distance_from_ma200_pct": 6.770089899864273, "distance_from_ma50_pct": -11.23683929035314, "volatility_20d_pct": 102.214718527314, "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": "TUB_CFD.BE", "name": "Financiere de Tubize", "sector": "", "last_price": 228.4, "change_1d_pct": 5.740740740740735, "distance_from_ma200_pct": 15.852728964544172, "distance_from_ma50_pct": 2.419182341569792, "volatility_20d_pct": 86.69775837960786, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CTT_CFD.PT", "name": "CTT Correios de Portugal SA", "sector": "", "last_price": 6.785, "change_1d_pct": 10.504885993485358, "distance_from_ma200_pct": -5.855091768737919, "distance_from_ma50_pct": 0.09589142140591367, "volatility_20d_pct": 96.2421948917394, "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": "EXPO_CFD.US", "name": "Exponent Inc", "sector": "", "last_price": 65.78, "change_1d_pct": -1.4974543276430108, "distance_from_ma200_pct": -7.1216173094355355, "distance_from_ma50_pct": -5.141782607692491, "volatility_20d_pct": 63.14673123240353, "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": "ITRK_CFD.UK", "name": "INTERTEK GROUP PLC", "sector": "", "last_price": 3841.0, "change_1d_pct": -13.956093189964157, "distance_from_ma200_pct": -17.8152367127661, "distance_from_ma50_pct": -13.099346971343673, "volatility_20d_pct": 103.35889764533842, "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": "SAVE_CFD.FR", "name": "Savencia SA", "sector": "", "last_price": 60.6, "change_1d_pct": 3.061224489795933, "distance_from_ma200_pct": -0.9672039658876197, "distance_from_ma50_pct": 1.4783010589913825, "volatility_20d_pct": 62.70418136867809, "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": "AAD_CFD.DE", "name": "AMADEUS FIRE AG", "sector": "", "last_price": 22.766, "change_1d_pct": -4.943632567849687, "distance_from_ma200_pct": -53.12533619229114, "distance_from_ma50_pct": -20.1649582870148, "volatility_20d_pct": 86.23579892666574, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BPOST_CFD.BE", "name": "Bpost", "sector": "", "last_price": 1.928, "change_1d_pct": 3.87931034482758, "distance_from_ma200_pct": -8.319483774022752, "distance_from_ma50_pct": -5.317539827528616, "volatility_20d_pct": 106.3987258459563, "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": "ZAL_CFD.DE", "name": "ZALANDO SE", "sector": "", "last_price": 22.1, "change_1d_pct": 0.8211678832116709, "distance_from_ma200_pct": -8.92738298095923, "distance_from_ma50_pct": 3.3815593494352925, "volatility_20d_pct": 87.27891575772686, "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": "BRBY_CFD.UK", "name": "BURBERRY GROUP PLC", "sector": "", "last_price": 1172.0, "change_1d_pct": 16.212196331184934, "distance_from_ma200_pct": -1.9454171467429893, "distance_from_ma50_pct": 4.031394047309433, "volatility_20d_pct": 143.3726871662082, "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": "UN0_CFD.DE", "name": "UNIPER SE", "sector": "", "last_price": 40.55, "change_1d_pct": 0.24721878862792313, "distance_from_ma200_pct": 15.099671916261936, "distance_from_ma50_pct": 9.986025943140353, "volatility_20d_pct": 133.8090487364078, "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": "THG_CFD.UK",
      "selection_reason": "-18.65% from MA50 with high volatility",
      "mean_reversion_score": 85
    },
    {
      "symbol": "SHC_CFD.UK",
      "selection_reason": "Near MA200 (+0.27%) with low volatility",
      "mean_reversion_score": 72
    },
    {
      "symbol": "ITV_CFD.UK",
      "selection_reason": "-1.51% from MA50 with moderate volatility",
      "mean_reversion_score": 70
    },
    {
      "symbol": "FUR_CFD.NL",
      "selection_reason": "+1.08% from MA50 with low volatility",
      "mean_reversion_score": 68
    },
    {
      "symbol": "SAVE_CFD.FR",
      "selection_reason": "+1.48% from MA50 with low volatility",
      "mean_reversion_score": 65
    }
  ],
  "rejected_common_reasons": [
    "Extreme 1-day move >20%",
    "Distance from MA50 >20%",
    "High volatility >150%"
  ]
}
#2263openrouteramazon/nova-premier-v12026-04-10T18:06:56.445506+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": "US", "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": "ABDN_CFD.UK", "qty": 0.0, "avg_price": 193.2, "last_price": 190.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "ADBE_CFD.US", "qty": 0.0, "avg_price": 249.47, "last_price": 248.05, "unrealized_pnl": 0.0, "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": "BBY_CFD.UK", "qty": 0.0, "avg_price": 726.5, "last_price": 726.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-20T18:25:08.105367+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": 257.9, "last_price": 250.8, "unrealized_pnl": -82.59015122140326, "opened_at": "2026-03-02T18:21:09.503139+00:00"}, {"symbol": "BT_CFD.UK", "qty": 0.0, "avg_price": 202.8, "last_price": 203.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 0.0, "avg_price": 292.6, "last_price": 289.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": 8.748396127376648, "avg_price": 342.92, "last_price": 342.92, "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": "CRST_CFD.UK", "qty": 29.013539651837522, "avg_price": 103.4, "last_price": 103.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "DCC_CFD.UK", "qty": 0.6651884700665188, "avg_price": 4510.0, "last_price": 5075.0, "unrealized_pnl": 375.83148558758313, "opened_at": "2026-03-23T10:03:51.599067+00:00"}, {"symbol": "DLN_CFD.UK", "qty": 8.278145695364238, "avg_price": 1812.0000000000002, "last_price": 1812.0, "unrealized_pnl": -1.8822324126095367e-12, "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": "EMG_CFD.UK", "qty": 0.0, "avg_price": 252.99999999999997, "last_price": 252.66, "unrealized_pnl": 0.0, "opened_at": "2026-03-24T18:12:08.252730+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": "ESNT_CFD.UK", "qty": 0.0, "avg_price": 95.5, "last_price": 90.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-20T10:26:40.341409+00:00"}, {"symbol": "ESTC_CFD.US", "qty": 0.0, "avg_price": 58.085, "last_price": 55.355000000000004, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "EVD_CFD.DE", "qty": 0.0, "avg_price": 54.1, "last_price": 49.68, "unrealized_pnl": 0.0, "opened_at": "2026-03-27T09:59:46.331143+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": 42.790000000000006, "last_price": 41.445, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "FICO_CFD.US", "qty": 0.0, "avg_price": 1127.4099999999999, "last_price": 993.365, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "FII_CFD.FR", "qty": 0.0, "avg_price": 50.5, "last_price": 49.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-29T10:09:56.528041+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 52.779732582688254, "avg_price": 284.2, "last_price": 285.6, "unrealized_pnl": 73.89162561576535, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "GNRC_CFD.US", "qty": 0.0, "avg_price": 200.66, "last_price": 198.98, "unrealized_pnl": 0.0, "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": "HAS_CFD.UK", "qty": 184.72906403940888, "avg_price": 32.48, "last_price": 32.48, "unrealized_pnl": 0.0, "opened_at": "2026-04-07T18:08:48.203875+00:00"}, {"symbol": "HELE_CFD.US", "qty": 0.0, "avg_price": 15.94, "last_price": 15.78, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T18:18:58.833148+00:00"}, {"symbol": "HHFA_CFD.DE", "qty": 0.0, "avg_price": 22.4, "last_price": 21.947, "unrealized_pnl": 0.0, "opened_at": "2026-03-24T18:12:08.252730+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": "HWDN_CFD.UK", "qty": 3.7783375314861463, "avg_price": 794.0, "last_price": 805.5, "unrealized_pnl": 43.45088161209068, "opened_at": "2026-03-20T10:26:40.341409+00:00"}, {"symbol": "IPO_CFD.UK", "qty": 53.66726296958855, "avg_price": 55.9, "last_price": 55.9, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "ITV_CFD.UK", "qty": 0.0, "avg_price": 82.85, "last_price": 78.75, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T10:07:39.444598+00:00"}, {"symbol": "IWG_CFD.UK", "qty": 0.0, "avg_price": 177.0, "last_price": 172.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T18:04:14.272849+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": "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": 140.46, "unrealized_pnl": 425.85365853658556, "opened_at": "2026-03-09T18:18:45.954380+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-14T10:03:26.036362+00:00"}, {"symbol": "LIO_CFD.UK", "qty": 0.0, "avg_price": 257.5, "last_price": 234.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "LRE_CFD.UK", "qty": 5.208333333333333, "avg_price": 576.0, "last_price": 598.0, "unrealized_pnl": 114.58333333333333, "opened_at": "2026-03-30T17:49:05.858690+00:00"}, {"symbol": "LXS_CFD.DE", "qty": 0.0, "avg_price": 13.14, "last_price": 11.929, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "MAB_CFD.UK", "qty": 10.624734381640458, "avg_price": 282.36, "last_price": 282.36, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T17:59:11.913241+00:00"}, {"symbol": "MCG_CFD.UK", "qty": 0.0, "avg_price": 19.51, "last_price": 17.39, "unrealized_pnl": 0.0, "opened_at": "2026-03-26T17:55:26.602359+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-26T10:11:44.579260+00:00"}, {"symbol": "MSM_CFD.US", "qty": 33.22995126273815, "avg_price": 90.28, "last_price": 94.98, "unrealized_pnl": 156.1807709348694, "opened_at": "2026-04-04T18:08:49.555685+00:00"}, {"symbol": "NXST_CFD.US", "qty": 0.0, "avg_price": 233.02, "last_price": 226.38, "unrealized_pnl": -85.48622435842437, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 0.0, "avg_price": 204.3, "last_price": 186.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-01T10:30:13.622938+00:00"}, {"symbol": "OSB_CFD.UK", "qty": 0.0, "avg_price": 558.5, "last_price": 544.0, "unrealized_pnl": -155.7743957027753, "opened_at": "2026-03-13T10:07:39.444598+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 180.58690744920995, "avg_price": 132.89999999999998, "last_price": 132.9, "unrealized_pnl": 5.132588610456706e-12, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "PAG_CFD.UK", "qty": 11.757021554539516, "avg_price": 765.5, "last_price": 765.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-23T10:03:51.599067+00:00"}, {"symbol": "PZC_CFD.UK", "qty": 41.03967168262654, "avg_price": 73.1, "last_price": 78.8, "unrealized_pnl": 233.9261285909714, "opened_at": "2026-03-29T10:09:56.528041+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": 2.5806451612903225, "avg_price": 2325.0, "last_price": 2325.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": "SAFE_CFD.UK", "qty": 4.662004662004662, "avg_price": 643.5, "last_price": 643.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-23T18:04:09.108429+00:00"}, {"symbol": "SAMS_CFD.FR", "qty": 0.0, "avg_price": 120.0, "last_price": 118.0, "unrealized_pnl": 0.0, "opened_at": "2026-04-07T10:08:43.931517+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": 0.0, "avg_price": 735.4, "last_price": 723.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T10:12:30.296045+00:00"}, {"symbol": "SHC_CFD.UK", "qty": 47.69475357710652, "avg_price": 125.8, "last_price": 125.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-28T10:05:22.022266+00:00"}, {"symbol": "SRP_CFD.UK", "qty": 10.273972602739725, "avg_price": 292.0, "last_price": 295.6, "unrealized_pnl": 36.98630136986324, "opened_at": "2026-04-03T18:06:55.972569+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 0.0, "avg_price": 18.4, "last_price": 27.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "TPK_CFD.UK", "qty": 5.328975415660082, "avg_price": 562.96, "last_price": 562.96, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T10:00:02.317290+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-05T10:27:11.178069+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 0.0, "avg_price": 92.35, "last_price": 96.43, "unrealized_pnl": 265.0785056848953, "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": 0.0, "avg_price": 504.99999999999994, "last_price": 461.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "VCT_CFD.UK", "qty": 5.093378607809847, "avg_price": 589.0, "last_price": 589.0, "unrealized_pnl": 0.0, "opened_at": "2026-04-09T10:04:16.483403+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": 1026.67, "unrealized_pnl": 532.1215596330278, "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-03-30T10:23:56.039732+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": 2502.0, "unrealized_pnl": 200.85287846481876, "opened_at": "2026-03-13T18:17:31.188931+00:00"}, {"symbol": "XRX_CFD.US", "qty": 0.0, "avg_price": 1.56, "last_price": 1.52, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T18:18:58.833148+00:00"}, {"symbol": "ZS_CFD.US", "qty": 0.0, "avg_price": 159.76, "last_price": 144.45, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "THG_CFD.UK", "mean_reversion_score": 85, "selection_reason": "-18.65% from MA50 with high volatility"}, {"symbol": "SHC_CFD.UK", "mean_reversion_score": 72, "selection_reason": "Near MA200 (+0.27%) with low volatility"}, {"symbol": "ITV_CFD.UK", "mean_reversion_score": 70, "selection_reason": "-1.51% from MA50 with moderate volatility"}, {"symbol": "FUR_CFD.NL", "mean_reversion_score": 68, "selection_reason": "+1.08% from MA50 with low volatility"}, {"symbol": "SAVE_CFD.FR", "mean_reversion_score": 65, "selection_reason": "+1.48% from MA50 with low volatility"}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}
Output JSON
{
  "actions": {
    "buy": [
      {
        "reason": "High mean-reversion score (85) and -18.65% from MA50",
        "symbol": "THG_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Moderate score (70) with -1.51% from MA50",
        "symbol": "ITV_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "CRST_CFD.UK"
      },
      {
        "reason": "Profitable position but not highest priority to sell",
        "symbol": "DCC_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "DLN_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "HAS_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "HWDN_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "IPO_CFD.UK"
      },
      {
        "reason": "Profitable but not highest priority to sell",
        "symbol": "KEX_CFD.US"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "LRE_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "MAB_CFD.UK"
      },
      {
        "reason": "Profitable but not highest priority to sell",
        "symbol": "MSM_CFD.US"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "PAG_CFD.UK"
      },
      {
        "reason": "Profitable but not highest priority to sell",
        "symbol": "PZC_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "SAFE_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "SRP_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "TPK_CFD.UK"
      },
      {
        "reason": "No clear mean-reversion signal",
        "symbol": "VCT_CFD.UK"
      },
      {
        "reason": "Profitable but not highest priority to sell",
        "symbol": "WTB_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Significant unrealized gain (+532.12%) above profit threshold",
        "symbol": "WIZZ_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "First selling WIZZ_CFD.UK due to over 500% unrealized gain. Using freed capital to buy THG_CFD.UK (strongest candidate) and ITV_CFD.UK (next best opportunity). Maintained 9 existing positions under max_positions=10 constraint. Prioritized high mean-reversion scores while respecting max 2 buys/sells per run."
}
Selection logs
#1096stage12026-04-10T18:06:56.442624+00:00
{
  "selected_stocks": [
    {
      "symbol": "THG_CFD.UK",
      "selection_reason": "-18.65% from MA50 with high volatility",
      "mean_reversion_score": 85
    },
    {
      "symbol": "SHC_CFD.UK",
      "selection_reason": "Near MA200 (+0.27%) with low volatility",
      "mean_reversion_score": 72
    },
    {
      "symbol": "ITV_CFD.UK",
      "selection_reason": "-1.51% from MA50 with moderate volatility",
      "mean_reversion_score": 70
    },
    {
      "symbol": "FUR_CFD.NL",
      "selection_reason": "+1.08% from MA50 with low volatility",
      "mean_reversion_score": 68
    },
    {
      "symbol": "SAVE_CFD.FR",
      "selection_reason": "+1.48% from MA50 with low volatility",
      "mean_reversion_score": 65
    }
  ],
  "rejected_common_reasons": [
    "Extreme 1-day move >20%",
    "Distance from MA50 >20%",
    "High volatility >150%"
  ]
}