Arena run #889

meanrev-v1minimaxminimax/minimax-m2.1USsuccess
Arena
Run status
as_of: 2026-03-27T18:04:13.865611+00:00
started_at: 2026-03-27T19:04:39.507931+00:00
finished_at: 2026-03-27T19:06:39.978712+00:00
duration_ms: 120468
Inputs
{
  "as_of": "2026-03-27T18:04:13.865611+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "PAGE_CFD.UK",
      "selection_reason": "Extreme 1-day drop (-36.80%) with price 31.73% below MA50 and 40.61% below MA200; strong mean reversion upward signal",
      "mean_reversion_score": 92
    },
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "Sharp 1-day decline (-26.63%) with price 22.13% below MA50; significant gap below short-term average",
      "mean_reversion_score": 88
    },
    {
      "symbol": "BOY_CFD.UK",
      "selection_reason": "Large 1-day gain (+24.16%) with price 18.64% above MA50 and 28.65% above MA200; extended above both averages",
      "mean_reversion_score": 85
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "Strong 1-day rally (+24.85%) with price 17.83% above MA50; momentum extended above short-term average",
      "mean_reversion_score": 78
    },
    {
      "symbol": "UTG_CFD.UK",
      "selection_reason": "Notable drop (-8.27%) with price 13.55% below MA50 and 32.13% below MA200; trading well under long-term average",
      "mean_reversion_score": 72
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "CRST_CFD.UK",
    "MSLH_CFD.UK",
    "MCG_CFD.UK",
    "BOY_CFD.UK",
    "LMP_CFD.UK",
    "PAGE_CFD.UK",
    "ESNT_CFD.UK",
    "JDW_CFD.UK",
    "PAG_CFD.UK",
    "INVP_CFD.UK",
    "RHIM_CFD.UK",
    "UTG_CFD.UK",
    "CBG_CFD.UK",
    "DLN_CFD.UK",
    "ABDN_CFD.UK",
    "BBY_CFD.UK",
    "CPG_CFD.UK",
    "BYIT_CFD.UK",
    "ATG_CFD.UK"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "Top mean reversion candidate (score 92); extreme 1-day drop (-36.80%) with price 31.73% below MA50 and 40.61% below MA200 - high probability of reversal",
        "symbol": "PAGE_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Strong mean reversion signal (score 88); sharp decline (-26.63%) with price 22.13% below MA50; adding to existing position on pullback",
        "symbol": "CBG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Flat performance, no clear mean reversion signal present",
        "symbol": "AUTO_CFD.UK"
      },
      {
        "reason": "Already in profit (+8.62%), holding as part of max 10 positions",
        "symbol": "BTRW_CFD.UK"
      },
      {
        "reason": "No significant price deviation to trigger action",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Already in portfolio; price showing sharp decline but no additional buying signal beyond current allocation",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Already in portfolio; strong rally (+24.85%) suggests extended, holding for now",
        "symbol": "CRST_CFD.UK"
      },
      {
        "reason": "Flat performance, maintaining current position",
        "symbol": "LMP_CFD.UK"
      },
      {
        "reason": "No significant price movement to act on",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Strong performer (+28.31% unrealized); taking profit would exceed max sells, holding as position is in profit",
        "symbol": "SYNT_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Mean reversion candidate (score 72) but currently at -8.67% unrealized loss; taking loss to free capital for better opportunities",
        "symbol": "UTG_CFD.UK"
      },
      {
        "reason": "Significant unrealized loss (-12.27%); mean reversion not materializing as expected, close position to reduce exposure",
        "symbol": "FUTR_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Portfolio has 10 positions at max capacity. Selling UTG (-8.67% loss) and FUTR (-12.27% loss) to free 2 slots for top mean reversion candidates. PAGE_CFD.UK offers extreme mean reversion opportunity after 36.8% single-day drop. CBG_CFD.UK shows sharp decline with strong score - adding to existing position on this pullback. Limited to 2 buys and 2 sells per rules. SYNT and BTRW are profitable so held; other positions flat but within max positions limit."
}
Prompts & responses
#1739openrouterminimax/minimax-m2.12026-03-27T19:04:39.544616+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": "CRST_CFD.UK", "name": "CREST NICHOLSON HOLDINGS", "sector": "", "last_price": 167.8, "change_1d_pct": 24.85119047619049, "distance_from_ma200_pct": 1.2720261375977815, "distance_from_ma50_pct": 17.82963155418549, "volatility_20d_pct": 158.46878099582966, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MSLH_CFD.UK", "name": "MARSHALLS PLC", "sector": "", "last_price": 179.0, "change_1d_pct": 2.052451539338662, "distance_from_ma200_pct": -18.41965657865713, "distance_from_ma50_pct": 4.539832012082234, "volatility_20d_pct": 102.90810964969117, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MCG_CFD.UK", "name": "MOBICO GROUP PLC", "sector": "", "last_price": 23.88, "change_1d_pct": -4.250200481154776, "distance_from_ma200_pct": -13.633157923289751, "distance_from_ma50_pct": 0.9358119246278163, "volatility_20d_pct": 236.12122528317374, "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": "LMP_CFD.UK", "name": "LONDONMETRIC PROPERTY PLC", "sector": "", "last_price": 214.0, "change_1d_pct": 11.57455683003128, "distance_from_ma200_pct": 12.507879494597773, "distance_from_ma50_pct": 10.77384329331672, "volatility_20d_pct": 54.89150861607771, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": "ESNT_CFD.UK", "name": "ESSENTRA PLC", "sector": "", "last_price": 108.4, "change_1d_pct": 4.230769230769238, "distance_from_ma200_pct": 7.40452119530135, "distance_from_ma50_pct": 9.771484932749797, "volatility_20d_pct": 98.9832071461764, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "JDW_CFD.UK", "name": "WETHERSPOON (J.D.) PLC", "sector": "", "last_price": 748.5, "change_1d_pct": 9.750733137829904, "distance_from_ma200_pct": 6.242631058659898, "distance_from_ma50_pct": 5.290077328071208, "volatility_20d_pct": 98.2373545531062, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "PAG_CFD.UK", "name": "PARAGON BANKING GROUP PLC", "sector": "", "last_price": 852.5, "change_1d_pct": -3.399433427762044, "distance_from_ma200_pct": -1.3404962254783492, "distance_from_ma50_pct": 0.699141440891915, "volatility_20d_pct": 71.52779356208148, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "INVP_CFD.UK", "name": "INVESTEC PLC", "sector": "", "last_price": 623.5, "change_1d_pct": 8.529155787641418, "distance_from_ma200_pct": 17.34715626999408, "distance_from_ma50_pct": 9.569618971869698, "volatility_20d_pct": 76.97154585310399, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "RHIM_CFD.UK", "name": "RHI MAGNESITA NV", "sector": "", "last_price": 2550.0, "change_1d_pct": -6.764168190127973, "distance_from_ma200_pct": -2.35709026809392, "distance_from_ma50_pct": 0.9429816244979738, "volatility_20d_pct": 151.25590362229855, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "UTG_CFD.UK", "name": "UNITE GROUP PLC/THE", "sector": "", "last_price": 505.0, "change_1d_pct": -8.265213442325159, "distance_from_ma200_pct": -32.12786599325862, "distance_from_ma50_pct": -13.548388422126267, "volatility_20d_pct": 98.87339279796446, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CBG_CFD.UK", "name": "CLOSE BROTHERS GROUP PLC", "sector": "", "last_price": 372.74, "change_1d_pct": -26.625984251968504, "distance_from_ma200_pct": -13.365429078084645, "distance_from_ma50_pct": -22.129222788055436, "volatility_20d_pct": 169.0552301316783, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DLN_CFD.UK", "name": "DERWENT LONDON PLC", "sector": "", "last_price": 1953.0, "change_1d_pct": 10.401356698699837, "distance_from_ma200_pct": 5.069478604951705, "distance_from_ma50_pct": 12.150447212111025, "volatility_20d_pct": 115.39088732649292, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ABDN_CFD.UK", "name": "Aberdeen Group Plc", "sector": "", "last_price": 206.2, "change_1d_pct": 0.4873294346978474, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -3.567353199768042, "volatility_20d_pct": 5122.525857900045, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BBY_CFD.UK", "name": "BALFOUR BEATTY PLC", "sector": "", "last_price": 722.5, "change_1d_pct": -1.0951403148528382, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -1.628407265201648, "volatility_20d_pct": 2239.4661443465884, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CPG_CFD.UK", "name": "COMPASS GROUP PLC", "sector": "", "last_price": 2287.0, "change_1d_pct": -0.823937554206422, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 2.8011537977172374, "volatility_20d_pct": 2808.1897930853006, "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": "BYIT_CFD.UK", "name": "BYTES TECHNOLOGY GROUP PLC", "sector": "", "last_price": 316.4, "change_1d_pct": 1.9329896907216426, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -3.036395062333752, "volatility_20d_pct": 3610.9502328075146, "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"}], "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": "PAGE_CFD.UK",
      "selection_reason": "Extreme 1-day drop (-36.80%) with price 31.73% below MA50 and 40.61% below MA200; strong mean reversion upward signal",
      "mean_reversion_score": 92
    },
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "Sharp 1-day decline (-26.63%) with price 22.13% below MA50; significant gap below short-term average",
      "mean_reversion_score": 88
    },
    {
      "symbol": "BOY_CFD.UK",
      "selection_reason": "Large 1-day gain (+24.16%) with price 18.64% above MA50 and 28.65% above MA200; extended above both averages",
      "mean_reversion_score": 85
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "Strong 1-day rally (+24.85%) with price 17.83% above MA50; momentum extended above short-term average",
      "mean_reversion_score": 78
    },
    {
      "symbol": "UTG_CFD.UK",
      "selection_reason": "Notable drop (-8.27%) with price 13.55% below MA50 and 32.13% below MA200; trading well under long-term average",
      "mean_reversion_score": 72
    }
  ],
  "rejected_common_reasons": [
    "Excluded stocks with extreme volatility readings likely indicating data quality issues (ABDN, BBY, CPG, BYIT, ATG)",
    "Excluded stocks with minimal distance from moving averages (PAG, RHIM, JDW)",
    "Excluded stocks with moderate deviations insufficient for strong mean reversion signal (MSLH, ESNT, INVP, DLN)",
    "Excluded stock with extremely high volatility making mean reversion unreliable (MCG)"
  ]
}
#1740openrouterminimax/minimax-m2.12026-03-27T19:06:06.010295+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": "ABF_CFD.UK", "qty": 0.0, "avg_price": 1868.5, "last_price": 1849.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "AEO_CFD.US", "qty": 0.0, "avg_price": 22.265, "last_price": 18.64, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T21:11:27.888829+00:00"}, {"symbol": "AGFB_CFD.BE", "qty": 0.0, "avg_price": 0.465, "last_price": 0.452, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T21:11:27.888829+00:00"}, {"symbol": "AML_CFD.UK", "qty": 0.0, "avg_price": 36.92, "last_price": 36.04, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "ATG_CFD.UK", "qty": 0.0, "avg_price": 296.0, "last_price": 326.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "ATO_CFD.FR", "qty": 0.0, "avg_price": 40.34, "last_price": 39.505, "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.296, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "BTRW_CFD.UK", "qty": 11.961722488038276, "avg_price": 250.8, "last_price": 272.44, "unrealized_pnl": 258.8516746411481, "opened_at": "2026-03-23T18:04:09.108429+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 20.505809979494188, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "CBG_CFD.UK", "qty": 17.496792254753295, "avg_price": 342.92, "last_price": 342.92, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T18:17:31.188931+00:00"}, {"symbol": "CCL_CFD.UK", "qty": 0.0, "avg_price": 1945.9999999999998, "last_price": 1989.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "CRST_CFD.UK", "qty": 25.246149962130776, "avg_price": 118.83, "last_price": 118.83, "unrealized_pnl": 0.0, "opened_at": "2026-03-23T10:03:51.599067+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 349.265, "last_price": 365.38, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "DKNG_CFD.US", "qty": 0.0, "avg_price": 25.28, "last_price": 24.91, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "DSY_CFD.FR", "qty": 0.0, "avg_price": 17.881, "last_price": 17.133, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "DT_CFD.US", "qty": 0.0, "avg_price": 34.105000000000004, "last_price": 35.864999999999995, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "ERA_CFD.FR", "qty": 0.0, "avg_price": 47.4, "last_price": 48.88, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 7.24287783679382, "avg_price": 414.2, "last_price": 368.42, "unrealized_pnl": -331.57894736842087, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "GO_CFD.US", "qty": 0.0, "avg_price": 6.53, "last_price": 6.34, "unrealized_pnl": -87.28943338437996, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "HAIN_CFD.US", "qty": 0.0, "avg_price": 0.63, "last_price": 0.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-20T18:25:08.105367+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1409.0, "last_price": 1244.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "HYQ_CFD.DE", "qty": 0.0, "avg_price": 82.3, "last_price": 77.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "INF_CFD.UK", "qty": 0.0, "avg_price": 795.2, "last_price": 785.85, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T18:21:09.503139+00:00"}, {"symbol": "LIO_CFD.UK", "qty": 0.0, "avg_price": 250.0, "last_price": 250.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "LMND_CFD.US", "qty": 0.0, "avg_price": 48.96, "last_price": 52.07, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T11:23:36.694156+00:00"}, {"symbol": "LMP_CFD.UK", "qty": 16.54715940430226, "avg_price": 181.3, "last_price": 181.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-23T10:03:51.599067+00:00"}, {"symbol": "LPE_CFD.FR", "qty": 0.0, "avg_price": 88.414, "last_price": 86.679, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T18:21:09.503139+00:00"}, {"symbol": "LXS_CFD.DE", "qty": 0.0, "avg_price": 13.14, "last_price": 13.24, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "MAN_CFD.US", "qty": 0.0, "avg_price": 25.68, "last_price": 27.94, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "MDB_CFD.US", "qty": 0.0, "avg_price": 252.01, "last_price": 263.69, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 14.684287812041115, "avg_price": 204.3, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 0.0, "avg_price": 151.91, "last_price": 152.7, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "PBB_CFD.DE", "qty": 0.0, "avg_price": 2.826, "last_price": 2.7640000000000002, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "PROX_CFD.BE", "qty": 0.0, "avg_price": 6.98, "last_price": 7.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-01T10:30:13.622938+00:00"}, {"symbol": "RCO_CFD.FR", "qty": 0.0, "avg_price": 44.34, "last_price": 43.58, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "RIVN_CFD.US", "qty": 0.0, "avg_price": 15.62, "last_price": 15.1, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 0.0, "avg_price": 424.3, "last_price": 417.16, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "RSW_CFD.UK", "qty": 0.0, "avg_price": 3790.0000000000005, "last_price": 3790.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "SGRO_CFD.UK", "qty": 0.0, "avg_price": 789.8, "last_price": 735.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 110.29411764705883, "avg_price": 27.2, "last_price": 34.9, "unrealized_pnl": 849.2647058823529, "opened_at": "2026-03-21T10:00:02.317290+00:00"}, {"symbol": "TCAP_CFD.UK", "qty": 0.0, "avg_price": 247.99999999999997, "last_price": 255.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 0.0, "avg_price": 184.5, "last_price": 204.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+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-19T09:33:49.074031+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 0.0, "avg_price": 92.35, "last_price": 94.79, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 5.9405940594059405, "avg_price": 505.0, "last_price": 461.2, "unrealized_pnl": -260.19801980198025, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 0.0, "avg_price": 385.0, "last_price": 354.1, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 908.5, "last_price": 878.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 257.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "WTB_CFD.UK", "qty": 0.0, "avg_price": 2345.0, "last_price": 2308.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T18:17:31.188931+00:00"}], "candidates": [{"symbol": "PAGE_CFD.UK", "mean_reversion_score": 92, "selection_reason": "Extreme 1-day drop (-36.80%) with price 31.73% below MA50 and 40.61% below MA200; strong mean reversion upward signal"}, {"symbol": "CBG_CFD.UK", "mean_reversion_score": 88, "selection_reason": "Sharp 1-day decline (-26.63%) with price 22.13% below MA50; significant gap below short-term average"}, {"symbol": "BOY_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Large 1-day gain (+24.16%) with price 18.64% above MA50 and 28.65% above MA200; extended above both averages"}, {"symbol": "CRST_CFD.UK", "mean_reversion_score": 78, "selection_reason": "Strong 1-day rally (+24.85%) with price 17.83% above MA50; momentum extended above short-term average"}, {"symbol": "UTG_CFD.UK", "mean_reversion_score": 72, "selection_reason": "Notable drop (-8.27%) with price 13.55% below MA50 and 32.13% below MA200; trading well under long-term average"}], "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": "Top mean reversion candidate (score 92); extreme 1-day drop (-36.80%) with price 31.73% below MA50 and 40.61% below MA200 - high probability of reversal",
        "symbol": "PAGE_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Strong mean reversion signal (score 88); sharp decline (-26.63%) with price 22.13% below MA50; adding to existing position on pullback",
        "symbol": "CBG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Flat performance, no clear mean reversion signal present",
        "symbol": "AUTO_CFD.UK"
      },
      {
        "reason": "Already in profit (+8.62%), holding as part of max 10 positions",
        "symbol": "BTRW_CFD.UK"
      },
      {
        "reason": "No significant price deviation to trigger action",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "Already in portfolio; price showing sharp decline but no additional buying signal beyond current allocation",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Already in portfolio; strong rally (+24.85%) suggests extended, holding for now",
        "symbol": "CRST_CFD.UK"
      },
      {
        "reason": "Flat performance, maintaining current position",
        "symbol": "LMP_CFD.UK"
      },
      {
        "reason": "No significant price movement to act on",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Strong performer (+28.31% unrealized); taking profit would exceed max sells, holding as position is in profit",
        "symbol": "SYNT_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Mean reversion candidate (score 72) but currently at -8.67% unrealized loss; taking loss to free capital for better opportunities",
        "symbol": "UTG_CFD.UK"
      },
      {
        "reason": "Significant unrealized loss (-12.27%); mean reversion not materializing as expected, close position to reduce exposure",
        "symbol": "FUTR_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Portfolio has 10 positions at max capacity. Selling UTG (-8.67% loss) and FUTR (-12.27% loss) to free 2 slots for top mean reversion candidates. PAGE_CFD.UK offers extreme mean reversion opportunity after 36.8% single-day drop. CBG_CFD.UK shows sharp decline with strong score - adding to existing position on this pullback. Limited to 2 buys and 2 sells per rules. SYNT and BTRW are profitable so held; other positions flat but within max positions limit."
}
Selection logs
#855stage12026-03-27T19:06:06.006388+00:00
{
  "selected_stocks": [
    {
      "symbol": "PAGE_CFD.UK",
      "selection_reason": "Extreme 1-day drop (-36.80%) with price 31.73% below MA50 and 40.61% below MA200; strong mean reversion upward signal",
      "mean_reversion_score": 92
    },
    {
      "symbol": "CBG_CFD.UK",
      "selection_reason": "Sharp 1-day decline (-26.63%) with price 22.13% below MA50; significant gap below short-term average",
      "mean_reversion_score": 88
    },
    {
      "symbol": "BOY_CFD.UK",
      "selection_reason": "Large 1-day gain (+24.16%) with price 18.64% above MA50 and 28.65% above MA200; extended above both averages",
      "mean_reversion_score": 85
    },
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "Strong 1-day rally (+24.85%) with price 17.83% above MA50; momentum extended above short-term average",
      "mean_reversion_score": 78
    },
    {
      "symbol": "UTG_CFD.UK",
      "selection_reason": "Notable drop (-8.27%) with price 13.55% below MA50 and 32.13% below MA200; trading well under long-term average",
      "mean_reversion_score": 72
    }
  ],
  "rejected_common_reasons": [
    "Excluded stocks with extreme volatility readings likely indicating data quality issues (ABDN, BBY, CPG, BYIT, ATG)",
    "Excluded stocks with minimal distance from moving averages (PAG, RHIM, JDW)",
    "Excluded stocks with moderate deviations insufficient for strong mean reversion signal (MSLH, ESNT, INVP, DLN)",
    "Excluded stock with extremely high volatility making mean reversion unreliable (MCG)"
  ]
}