Arena run #1137

meanrev-v1mistralaimistralai/mistral-large-2512EUsuccess
Arena
Run status
as_of: 2026-04-09T10:04:16.483403+00:00
started_at: 2026-04-09T12:29:28.039008+00:00
finished_at: 2026-04-09T12:31:16.132673+00:00
duration_ms: 108090
Inputs
{
  "as_of": "2026-04-09T10:04:16.483403+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "HAS_CFD.UK",
      "selection_reason": "Large 1-day drop (-17.2%), significantly below MA50 (-12.9%) and MA200 (-26.5%), high volatility (117.9%), no earnings date known.",
      "mean_reversion_score": 85
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "1-day drop (-12.8%), below MA50 (-15.8%) and MA200 (-28.2%), high volatility (236.5%), no earnings date known.",
      "mean_reversion_score": 80
    },
    {
      "symbol": "PAGE_CFD.UK",
      "selection_reason": "Extreme 1-day drop (-36.8%), significantly below MA50 (-31.7%) and MA200 (-40.6%), high volatility (193.2%), no earnings date known.",
      "mean_reversion_score": 75
    },
    {
      "symbol": "ICG_CFD.UK",
      "selection_reason": "1-day drop (-15.2%), below MA50 (-12.3%) and MA200 (-16.2%), moderate volatility (73.1%), no earnings date known.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "Large 1-day drop (-27.7%), below MA50 (-16.5%) and MA200 (-25.4%), high volatility (249.0%), no earnings date known.",
      "mean_reversion_score": 78
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "HAS_CFD.UK",
    "MDM_CFD.FR",
    "MGNS_CFD.UK",
    "GEN_CFD.UK",
    "BOY_CFD.UK",
    "CRST_CFD.UK",
    "PAGE_CFD.UK",
    "FGP_CFD.UK",
    "ICG_CFD.UK",
    "SHC_CFD.UK",
    "PAG_CFD.UK",
    "CBG_CFD.UK",
    "VCT_CFD.UK",
    "DLN_CFD.UK",
    "DOM_CFD.UK",
    "ONTEX_CFD.BE",
    "DHER_CFD.DE",
    "IEP_CFD.BE",
    "BIG_CFD.FR",
    "OCDO_CFD.UK",
    "ESNT_CFD.UK",
    "CMCX_CFD.UK",
    "MC_CFD.FR",
    "GROW_CFD.UK",
    "CDI_CFD.FR",
    "AIXA_CFD.DE",
    "SPX_CFD.UK",
    "VIRI_CFD.FR",
    "WKP_CFD.UK",
    "CAP_CFD.FR",
    "BYW6_CFD.DE",
    "ZIL2_CFD.DE",
    "SMIN_CFD.UK",
    "BPOST_CFD.BE",
    "DOCS_CFD.UK",
    "VXXB_CFD.ETF",
    "CRDA_CFD.UK",
    "DEZ_CFD.DE",
    "HUBS_CFD.US",
    "ATG_CFD.UK",
    "BOSS_CFD.DE",
    "CLARI_CFD.FR",
    "COTY_CFD.US",
    "VTY_CFD.UK",
    "MDV_CFD.PL",
    "HMSO_CFD.UK",
    "SGL_CFD.DE",
    "WDAY_CFD.US",
    "OR_CFD.FR",
    "BRBY_CFD.UK"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "Strong mean-reversion candidate (score 85), large 1-day drop (-17.2%), significantly below MA50 and MA200, high volatility.",
        "symbol": "HAS_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Extreme mean-reversion candidate (score 75), 1-day drop (-36.8%), significantly below MA50 and MA200, high volatility.",
        "symbol": "PAGE_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Positive unrealized PnL (233.25), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "BTRW_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (232.23), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "EXPD_CFD.US"
      },
      {
        "reason": "Positive unrealized PnL (141.45), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (432.04), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "HIK_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (127.90), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "INF_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (257.85), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "JMAT_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (198.95), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "KGF_CFD.UK"
      },
      {
        "reason": "Strong positive unrealized PnL (992.84), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "SYNT_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, but no strong sell reason; holding for now.",
        "symbol": "THG_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (329.72), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, but no strong sell reason; holding for now.",
        "symbol": "BOY_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, but no strong sell reason; holding for now.",
        "symbol": "IWG_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, but no strong sell reason; holding for now.",
        "symbol": "PAG_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, but no strong sell reason; holding for now.",
        "symbol": "TPK_CFD.UK"
      },
      {
        "reason": "No price movement since entry, but candidate for potential buy if capital is freed up; holding for now.",
        "symbol": "ICG_CFD.UK"
      },
      {
        "reason": "Slight negative unrealized PnL (-44.26), no strong mean-reversion signal; holding for now.",
        "symbol": "STJ_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Marginal unrealized PnL (0.0), no clear mean-reversion signal, prefer to free up capital for stronger candidates.",
        "symbol": "AUTO_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, prefer to free up capital for stronger candidates.",
        "symbol": "CBG_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Portfolio rebalanced to focus on high mean-reversion candidates (HAS_CFD.UK, PAGE_CFD.UK) while freeing up capital by selling positions with no clear signal (AUTO_CFD.UK, CBG_CFD.UK). Existing positions with positive PnL or no strong sell signal are held to avoid overtrading. Strategy adheres to max 2 buys/sells per run and fixed position size of 3000.0."
}
Prompts & responses
#2198openroutermistralai/mistral-large-25122026-04-09T12:29:28.087729+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": "HAS_CFD.UK", "name": "HAYS PLC", "sector": "", "last_price": 47.66, "change_1d_pct": -17.213826645822483, "distance_from_ma200_pct": -26.546854506980832, "distance_from_ma50_pct": -12.888674431016456, "volatility_20d_pct": 117.95597135078918, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MDM_CFD.FR", "name": "Maisons Du Monde", "sector": "", "last_price": 0.881, "change_1d_pct": -23.788927335640132, "distance_from_ma200_pct": -52.221224948004654, "distance_from_ma50_pct": -33.44312824851928, "volatility_20d_pct": 18104.93330731392, "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": 5370.0, "change_1d_pct": 19.599109131403125, "distance_from_ma200_pct": 32.00382943846654, "distance_from_ma50_pct": 15.63012691493826, "volatility_20d_pct": 90.38530398603771, "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": "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": "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": "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": "PAGE_CFD.UK", "name": "PAGEGROUP PLC", "sector": "", "last_price": 152.7, "change_1d_pct": -36.79635761589404, "distance_from_ma200_pct": -40.61156091058385, "distance_from_ma50_pct": -31.72721647345812, "volatility_20d_pct": 193.22753953431183, "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": "PAG_CFD.UK", "name": "PARAGON BANKING GROUP PLC", "sector": "", "last_price": 852.5, "change_1d_pct": -3.399433427762044, "distance_from_ma200_pct": -1.3404962254783492, "distance_from_ma50_pct": 0.699141440891915, "volatility_20d_pct": 71.52779356208148, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": "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": "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": "ONTEX_CFD.BE", "name": "Ontex Group NV", "sector": "", "last_price": 3.095, "change_1d_pct": -8.970588235294109, "distance_from_ma200_pct": -45.776050709466496, "distance_from_ma50_pct": -29.82368626312829, "volatility_20d_pct": 108.69637170664194, "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": "DHER_CFD.DE", "name": "DELIVERY HERO SE", "sector": "", "last_price": 16.289, "change_1d_pct": 0.10447394296952961, "distance_from_ma200_pct": -26.599410956780655, "distance_from_ma50_pct": -15.23633290593308, "volatility_20d_pct": 143.60854945931146, "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": "BIG_CFD.FR", "name": "Bigben Interactive", "sector": "", "last_price": 0.29, "change_1d_pct": 7.011070110701101, "distance_from_ma200_pct": -71.8461635543733, "distance_from_ma50_pct": -47.19976695069551, "volatility_20d_pct": 208.2394066644476, "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": 191.8, "change_1d_pct": -27.731725697061027, "distance_from_ma200_pct": -25.425914067168765, "distance_from_ma50_pct": -16.54505218327368, "volatility_20d_pct": 249.00720326714767, "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": "CMCX_CFD.UK", "name": "CMC MARKETS PLC", "sector": "", "last_price": 336.5, "change_1d_pct": 6.487341772151889, "distance_from_ma200_pct": 33.727269096422944, "distance_from_ma50_pct": 13.399699398122245, "volatility_20d_pct": 207.2492443353413, "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": "MC_CFD.FR", "name": "LVMH Moet Hennessy Louis Vuitton", "sector": "", "last_price": 499.65, "change_1d_pct": 6.89987163029524, "distance_from_ma200_pct": -8.075237598557983, "distance_from_ma50_pct": -1.441139046521478, "volatility_20d_pct": 62.212159342265885, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GROW_CFD.UK", "name": "MOLTEN VENTURES PLC", "sector": "", "last_price": 465.0, "change_1d_pct": 1.572739187418093, "distance_from_ma200_pct": 22.569628774815076, "distance_from_ma50_pct": -4.275686024250158, "volatility_20d_pct": 115.72658030340939, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CDI_CFD.FR", "name": "Christian Dior SE", "sector": "", "last_price": 456.8, "change_1d_pct": 2.8828828828828756, "distance_from_ma200_pct": -10.829294200979934, "distance_from_ma50_pct": -5.120025037678855, "volatility_20d_pct": 63.182632135450476, "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": "AIXA_CFD.DE", "name": "Aixtron AG NA", "sector": "", "last_price": 36.38, "change_1d_pct": 12.280485170210786, "distance_from_ma200_pct": 94.25293248242221, "distance_from_ma50_pct": 30.37333073398969, "volatility_20d_pct": 121.0421912167388, "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": 6862.0, "change_1d_pct": -0.3340595497458243, "distance_from_ma200_pct": 4.60751035733642, "distance_from_ma50_pct": -2.1558703469177654, "volatility_20d_pct": 123.56004816253518, "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": "CAP_CFD.FR", "name": "Capgemini", "sector": "", "last_price": 100.8, "change_1d_pct": -0.4444444444444473, "distance_from_ma200_pct": -20.008491162148466, "distance_from_ma50_pct": -5.819812372137334, "volatility_20d_pct": 63.88001546108049, "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": "BYW6_CFD.DE", "name": "BayWa AG vNa", "sector": "", "last_price": 2.701, "change_1d_pct": 1.9245283018868076, "distance_from_ma200_pct": -53.425855116646595, "distance_from_ma50_pct": -9.078056202620266, "volatility_20d_pct": 156.3034682583357, "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": "ZIL2_CFD.DE", "name": "ELRINGKLINGER AG", "sector": "", "last_price": 5.47, "change_1d_pct": -0.30982321851650285, "distance_from_ma200_pct": 25.153725153725137, "distance_from_ma50_pct": 21.93925775328589, "volatility_20d_pct": 5416.880074540502, "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": "BPOST_CFD.BE", "name": "Bpost", "sector": "", "last_price": 2.245, "change_1d_pct": 0.0, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 7.002592846793276, "volatility_20d_pct": 2622.8624681176075, "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": "VXXB_CFD.ETF", "name": "IPATH SERIES B S&P 500 VIX", "sector": "", "last_price": 32.36, "change_1d_pct": -9.024458813606973, "distance_from_ma200_pct": -6.246921735301103, "distance_from_ma50_pct": 3.784477228992933, "volatility_20d_pct": 180.71815564662478, "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": 2839.0, "change_1d_pct": -0.28099754127151044, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -0.572261096752058, "volatility_20d_pct": 5232.645582727379, "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": "DEZ_CFD.DE", "name": "Deutz AG", "sector": "", "last_price": 9.345, "change_1d_pct": 7.0079010649261475, "distance_from_ma200_pct": 2.2851901552283227, "distance_from_ma50_pct": -11.038465273110464, "volatility_20d_pct": 124.59838290952874, "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": "HUBS_CFD.US", "name": "HubSpot Inc", "sector": "", "last_price": 221.6, "change_1d_pct": -9.606363450948407, "distance_from_ma200_pct": -44.79525916832166, "distance_from_ma50_pct": -12.659211694206352, "volatility_20d_pct": 129.34490404762084, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 313.0, "change_1d_pct": 0.3205128205128194, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 0.8343803356850588, "volatility_20d_pct": 2871.9337920464413, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BOSS_CFD.DE", "name": "Hugo Boss AG", "sector": "", "last_price": 36.365, "change_1d_pct": 0.9858372674257154, "distance_from_ma200_pct": -5.824458759322382, "distance_from_ma50_pct": 0.09126980631866122, "volatility_20d_pct": 44.082244703993894, "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": "CLARI_CFD.FR", "name": "Clariane SE", "sector": "", "last_price": 3.874, "change_1d_pct": -2.4181360201511404, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 0.9358846089711603, "volatility_20d_pct": 3109.006288666479, "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": "COTY_CFD.US", "name": "Coty Inc", "sector": "", "last_price": 2.65, "change_1d_pct": -0.7490636704119868, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -12.425644415069403, "volatility_20d_pct": 7661.46272234243, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "VTY_CFD.UK", "name": "VISTRY GROUP PLC", "sector": "", "last_price": 336.5, "change_1d_pct": -52.24240703945502, "distance_from_ma200_pct": -45.76092188057602, "distance_from_ma50_pct": -43.644091924608695, "volatility_20d_pct": 220.52645545975528, "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": "MDV_CFD.PL", "name": "Modivo S.A.", "sector": "", "last_price": 86.3, "change_1d_pct": -5.621172353455817, "distance_from_ma200_pct": -41.47482094889456, "distance_from_ma50_pct": -17.96468774299278, "volatility_20d_pct": 81.26543963924402, "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": "SGL_CFD.DE", "name": "SGL Carbon SE", "sector": "", "last_price": 3.545, "change_1d_pct": 5.663189269746649, "distance_from_ma200_pct": 3.398741422935836, "distance_from_ma50_pct": -9.100699501528242, "volatility_20d_pct": 92.29220096966039, "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": "WDAY_CFD.US", "name": "", "sector": "", "last_price": 121.19, "change_1d_pct": -7.3612597462161755, "distance_from_ma200_pct": -41.004888430649224, "distance_from_ma50_pct": -15.258385357230765, "volatility_20d_pct": 85.7260973003909, "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": "OR_CFD.FR", "name": "", "sector": "", "last_price": 358.961, "change_1d_pct": 0.8742447660531116, "distance_from_ma200_pct": -4.312852384046395, "distance_from_ma50_pct": -3.76420945799798, "volatility_20d_pct": 47.03890159793636, "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": 1090.0, "change_1d_pct": 1.5370284117373068, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -10.223781637880636, "volatility_20d_pct": 3625.500236594713, "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": "HAS_CFD.UK",
      "selection_reason": "Large 1-day drop (-17.2%), significantly below MA50 (-12.9%) and MA200 (-26.5%), high volatility (117.9%), no earnings date known.",
      "mean_reversion_score": 85
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "1-day drop (-12.8%), below MA50 (-15.8%) and MA200 (-28.2%), high volatility (236.5%), no earnings date known.",
      "mean_reversion_score": 80
    },
    {
      "symbol": "PAGE_CFD.UK",
      "selection_reason": "Extreme 1-day drop (-36.8%), significantly below MA50 (-31.7%) and MA200 (-40.6%), high volatility (193.2%), no earnings date known.",
      "mean_reversion_score": 75
    },
    {
      "symbol": "ICG_CFD.UK",
      "selection_reason": "1-day drop (-15.2%), below MA50 (-12.3%) and MA200 (-16.2%), moderate volatility (73.1%), no earnings date known.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "Large 1-day drop (-27.7%), below MA50 (-16.5%) and MA200 (-25.4%), high volatility (249.0%), no earnings date known.",
      "mean_reversion_score": 78
    }
  ],
  "rejected_common_reasons": [
    "No sector data to enforce concentration rule",
    "Earnings dates unknown (cannot avoid)",
    "Extreme volatility outliers (e.g., MDM_CFD.FR, VIRI_CFD.FR)",
    "MA200 or MA50 data missing (e.g., CRDA_CFD.UK, ATG_CFD.UK)",
    "Low liquidity inferred from missing volume/market cap data"
  ]
}
#2199openroutermistralai/mistral-large-25122026-04-09T12:30:34.910044+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": "AAL_CFD.UK", "qty": 0.0, "avg_price": 2913.0, "last_price": 2900.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "ACM_CFD.US", "qty": 0.0, "avg_price": 88.42, "last_price": 97.88, "unrealized_pnl": 0.0, "opened_at": "2026-02-15T10:57:15.913854+00:00"}, {"symbol": "ADS_CFD.DE", "qty": 0.0, "avg_price": 137.15, "last_price": 138.55, "unrealized_pnl": 0.0, "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": "AMCX_CFD.US", "qty": 0.0, "avg_price": 7.5, "last_price": 7.365, "unrealized_pnl": -53.999999999999915, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "AMH_CFD.US", "qty": 0.0, "avg_price": 29.595, "last_price": 29.485, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "ATG_CFD.UK", "qty": 0.0, "avg_price": 296.0, "last_price": 296.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "ATO_CFD.FR", "qty": 0.0, "avg_price": 35.106, "last_price": 38.024, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "AUTO_CFD.UK", "qty": 6.2137531068765535, "avg_price": 482.8, "last_price": 482.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T18:04:14.272849+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 0.0, "avg_price": 0.453, "last_price": 0.453, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "BLND_CFD.UK", "qty": 0.0, "avg_price": 364.2, "last_price": 364.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T18:18:45.954380+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-31T17:54:15.044829+00:00"}, {"symbol": "BRBY_CFD.UK", "qty": 0.0, "avg_price": 1070.84, "last_price": 1070.84, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "BTRW_CFD.UK", "qty": 11.961722488038276, "avg_price": 250.8, "last_price": 270.3, "unrealized_pnl": 233.2535885167464, "opened_at": "2026-03-23T18:04:09.108429+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 0.0, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-15T10:57:15.913854+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": "CRST_CFD.UK", "qty": 0.0, "avg_price": 118.83, "last_price": 103.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-18T17:58:33.497657+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 350.24, "last_price": 350.055, "unrealized_pnl": -1.5846276838739344, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "DLTR_CFD.US", "qty": 0.0, "avg_price": 112.12, "last_price": 107.655, "unrealized_pnl": 0.0, "opened_at": "2026-03-17T18:12:35.221859+00:00"}, {"symbol": "DOM_CFD.UK", "qty": 0.0, "avg_price": 199.3, "last_price": 189.21, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+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": "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": 54.045, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}, {"symbol": "EVT_CFD.DE", "qty": 0.0, "avg_price": 4.502, "last_price": 4.353, "unrealized_pnl": 0.0, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "EXM_CFD.BE", "qty": 0.0, "avg_price": 10.0, "last_price": 9.933, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "EXPD_CFD.US", "qty": 22.01269398686576, "avg_price": 136.285, "last_price": 146.835, "unrealized_pnl": 232.23392156143402, "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-20T17:33:34.647633+00:00"}, {"symbol": "FRVIA_CFD.FR", "qty": 0.0, "avg_price": 12.709, "last_price": 12.6, "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": 297.6, "unrealized_pnl": 141.44968332160488, "opened_at": "2026-02-18T09:36:37.284518+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": "GRI_CFD.UK", "qty": 0.0, "avg_price": 189.6, "last_price": 189.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "HAS_CFD.UK", "qty": 92.36453201970444, "avg_price": 32.48, "last_price": 32.48, "unrealized_pnl": 0.0, "opened_at": "2026-04-08T10:08:21.944296+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 4.854368932038835, "avg_price": 1236.0, "last_price": 1325.0, "unrealized_pnl": 432.0388349514563, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "ICG_CFD.UK", "qty": 2.0053475935828877, "avg_price": 1496.0, "last_price": 1496.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "INF_CFD.UK", "qty": 4.0474905558553695, "avg_price": 741.2, "last_price": 772.8, "unrealized_pnl": 127.90070156502931, "opened_at": "2026-03-21T10:00:02.317290+00:00"}, {"symbol": "ITRK_CFD.UK", "qty": 0.0, "avg_price": 3942.0, "last_price": 3760.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T10:07:39.444598+00:00"}, {"symbol": "IWG_CFD.UK", "qty": 17.421602787456447, "avg_price": 172.2, "last_price": 172.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T18:18:58.833148+00:00"}, {"symbol": "JDW_CFD.UK", "qty": 0.0, "avg_price": 664.5, "last_price": 664.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T10:35:48.762746+00:00"}, {"symbol": "JEF_CFD.US", "qty": 0.0, "avg_price": 47.46, "last_price": 44.27, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T18:07:22.382508+00:00"}, {"symbol": "JMAT_CFD.UK", "qty": 1.6528925619834711, "avg_price": 1815.0, "last_price": 1971.0, "unrealized_pnl": 257.8512396694215, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "KGF_CFD.UK", "qty": 10.526315789473685, "avg_price": 285.0, "last_price": 303.9, "unrealized_pnl": 198.9473684210524, "opened_at": "2026-03-27T09:59:46.331143+00:00"}, {"symbol": "LIO_CFD.UK", "qty": 0.0, "avg_price": 250.0, "last_price": 257.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "MCG_CFD.UK", "qty": 0.0, "avg_price": 17.39, "last_price": 17.39, "unrealized_pnl": 0.0, "opened_at": "2026-03-27T18:04:13.865611+00:00"}, {"symbol": "MSLH_CFD.UK", "qty": 0.0, "avg_price": 140.8, "last_price": 140.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T17:59:11.913241+00:00"}, {"symbol": "NA9_CFD.DE", "qty": 0.0, "avg_price": 48.578, "last_price": 53.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 16.129032258064516, "avg_price": 186.0, "last_price": 186.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "OKTA_CFD.US", "qty": 0.0, "avg_price": 70.18, "last_price": 79.26, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 67.72009029345372, "avg_price": 132.9, "last_price": 132.9, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "PAG_CFD.UK", "qty": 3.9190071848465053, "avg_price": 765.5, "last_price": 765.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-22T18:18:31.438015+00:00"}, {"symbol": "PSN_CFD.UK", "qty": 0.0, "avg_price": 1068.0, "last_price": 1066.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T10:00:02.317290+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 0.0, "avg_price": 424.3, "last_price": 424.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "SOI_CFD.FR", "qty": 0.0, "avg_price": 57.5, "last_price": 54.96, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "STJ_CFD.UK", "qty": 2.459016393442623, "avg_price": 1220.0, "last_price": 1202.0, "unrealized_pnl": -44.26229508196722, "opened_at": "2026-03-15T10:35:48.762746+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 85.9598853868195, "avg_price": 34.9, "last_price": 46.45, "unrealized_pnl": 992.8366762177656, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "THG_CFD.UK", "qty": 103.8781163434903, "avg_price": 28.88, "last_price": 28.88, "unrealized_pnl": 0.0, "opened_at": "2026-04-07T10:08:43.931517+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-22T18:18:31.438015+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 0.0, "avg_price": 184.50000000000003, "last_price": 211.4, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "TRST_CFD.UK", "qty": 0.0, "avg_price": 151.8, "last_price": 224.82, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "TUI1_CFD.DE", "qty": 0.0, "avg_price": 7.398000000000001, "last_price": 6.95, "unrealized_pnl": -181.67072181670738, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 32.48511099079589, "avg_price": 92.35, "last_price": 102.5, "unrealized_pnl": 329.72387655657843, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "ULTA_CFD.US", "qty": 0.0, "avg_price": 535.2, "last_price": 523.22, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 0.0, "avg_price": 505.0, "last_price": 505.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-26T17:55:26.602359+00:00"}, {"symbol": "VSVS_CFD.UK", "qty": 0.0, "avg_price": 425.0, "last_price": 421.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T18:18:58.833148+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 0.0, "avg_price": 385.0, "last_price": 385.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "WEIR_CFD.UK", "qty": 0.0, "avg_price": 2890.0, "last_price": 2842.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T10:03:26.036362+00:00"}, {"symbol": "WIX_CFD.UK", "qty": 0.0, "avg_price": 224.5, "last_price": 222.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 1087.0, "last_price": 1064.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "WKP_CFD.UK", "qty": 0.0, "avg_price": 412.5, "last_price": 412.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 257.0, "unrealized_pnl": -72.89293849658289, "opened_at": "2026-02-18T09:36:37.284518+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": "HAS_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Large 1-day drop (-17.2%), significantly below MA50 (-12.9%) and MA200 (-26.5%), high volatility (117.9%), no earnings date known."}, {"symbol": "CRST_CFD.UK", "mean_reversion_score": 80, "selection_reason": "1-day drop (-12.8%), below MA50 (-15.8%) and MA200 (-28.2%), high volatility (236.5%), no earnings date known."}, {"symbol": "PAGE_CFD.UK", "mean_reversion_score": 75, "selection_reason": "Extreme 1-day drop (-36.8%), significantly below MA50 (-31.7%) and MA200 (-40.6%), high volatility (193.2%), no earnings date known."}, {"symbol": "ICG_CFD.UK", "mean_reversion_score": 70, "selection_reason": "1-day drop (-15.2%), below MA50 (-12.3%) and MA200 (-16.2%), moderate volatility (73.1%), no earnings date known."}, {"symbol": "OCDO_CFD.UK", "mean_reversion_score": 78, "selection_reason": "Large 1-day drop (-27.7%), below MA50 (-16.5%) and MA200 (-25.4%), high volatility (249.0%), no earnings date known."}], "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": "Strong mean-reversion candidate (score 85), large 1-day drop (-17.2%), significantly below MA50 and MA200, high volatility.",
        "symbol": "HAS_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Extreme mean-reversion candidate (score 75), 1-day drop (-36.8%), significantly below MA50 and MA200, high volatility.",
        "symbol": "PAGE_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Positive unrealized PnL (233.25), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "BTRW_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (232.23), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "EXPD_CFD.US"
      },
      {
        "reason": "Positive unrealized PnL (141.45), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (432.04), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "HIK_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (127.90), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "INF_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (257.85), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "JMAT_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (198.95), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "KGF_CFD.UK"
      },
      {
        "reason": "Strong positive unrealized PnL (992.84), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "SYNT_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, but no strong sell reason; holding for now.",
        "symbol": "THG_CFD.UK"
      },
      {
        "reason": "Positive unrealized PnL (329.72), no strong sell signal, holding for further mean-reversion potential.",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, but no strong sell reason; holding for now.",
        "symbol": "BOY_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, but no strong sell reason; holding for now.",
        "symbol": "IWG_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, but no strong sell reason; holding for now.",
        "symbol": "PAG_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, but no strong sell reason; holding for now.",
        "symbol": "TPK_CFD.UK"
      },
      {
        "reason": "No price movement since entry, but candidate for potential buy if capital is freed up; holding for now.",
        "symbol": "ICG_CFD.UK"
      },
      {
        "reason": "Slight negative unrealized PnL (-44.26), no strong mean-reversion signal; holding for now.",
        "symbol": "STJ_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Marginal unrealized PnL (0.0), no clear mean-reversion signal, prefer to free up capital for stronger candidates.",
        "symbol": "AUTO_CFD.UK"
      },
      {
        "reason": "No price movement since entry, no mean-reversion signal, prefer to free up capital for stronger candidates.",
        "symbol": "CBG_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Portfolio rebalanced to focus on high mean-reversion candidates (HAS_CFD.UK, PAGE_CFD.UK) while freeing up capital by selling positions with no clear signal (AUTO_CFD.UK, CBG_CFD.UK). Existing positions with positive PnL or no strong sell signal are held to avoid overtrading. Strategy adheres to max 2 buys/sells per run and fixed position size of 3000.0."
}
Selection logs
#1066stage12026-04-09T12:30:34.904541+00:00
{
  "selected_stocks": [
    {
      "symbol": "HAS_CFD.UK",
      "selection_reason": "Large 1-day drop (-17.2%), significantly below MA50 (-12.9%) and MA200 (-26.5%), high volatility (117.9%), no earnings date known.",
      "mean_reversion_score": 85
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "1-day drop (-12.8%), below MA50 (-15.8%) and MA200 (-28.2%), high volatility (236.5%), no earnings date known.",
      "mean_reversion_score": 80
    },
    {
      "symbol": "PAGE_CFD.UK",
      "selection_reason": "Extreme 1-day drop (-36.8%), significantly below MA50 (-31.7%) and MA200 (-40.6%), high volatility (193.2%), no earnings date known.",
      "mean_reversion_score": 75
    },
    {
      "symbol": "ICG_CFD.UK",
      "selection_reason": "1-day drop (-15.2%), below MA50 (-12.3%) and MA200 (-16.2%), moderate volatility (73.1%), no earnings date known.",
      "mean_reversion_score": 70
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "Large 1-day drop (-27.7%), below MA50 (-16.5%) and MA200 (-25.4%), high volatility (249.0%), no earnings date known.",
      "mean_reversion_score": 78
    }
  ],
  "rejected_common_reasons": [
    "No sector data to enforce concentration rule",
    "Earnings dates unknown (cannot avoid)",
    "Extreme volatility outliers (e.g., MDM_CFD.FR, VIRI_CFD.FR)",
    "MA200 or MA50 data missing (e.g., CRDA_CFD.UK, ATG_CFD.UK)",
    "Low liquidity inferred from missing volume/market cap data"
  ]
}