Arena run #846
meanrev-v1 • openai • openai/gpt-5.2-pro • EU • success
Run status
as_of: 2026-03-25T10:07:27.710110+00:00
started_at: 2026-03-25T12:30:17.285712+00:00
finished_at: 2026-03-25T12:33:08.461732+00:00
duration_ms: 171174
Inputs
{
"as_of": "2026-03-25T10:07:27.710110+00:00",
"dry_run": false,
"selected": [
{
"symbol": "BYIT_CFD.UK",
"selection_reason": "Sharp selloff (-12.67% 1d) with deep dislocation vs MA200 (-28.03%) and MA50 (-14.35%); volatility moderate vs other oversold names (87.83% 20d).",
"mean_reversion_score": 86
},
{
"symbol": "WIZZ_CFD.UK",
"selection_reason": "Oversold on multiple horizons: below MA200 (-23.34%) and MA50 (-24.41%) with a down day (-8.92% 1d); elevated vol (185.66% 20d) but strong mean-reversion setup.",
"mean_reversion_score": 82
},
{
"symbol": "INF_CFD.UK",
"selection_reason": "Large down move (-14.49% 1d) and below both MA50 (-13.85%) and MA200 (-10.93%), supporting 2–10 day rebound potential; 20d vol 89.54%.",
"mean_reversion_score": 79
},
{
"symbol": "BME_CFD.UK",
"selection_reason": "Trading well below MA200 (-22.14%) with a further down day (-5.12% 1d); modestly below MA50 (-2.81%) suggests potential snapback toward MA50 over short horizon.",
"mean_reversion_score": 74
},
{
"symbol": "LTA_CFD.FR",
"selection_reason": "Consistently below trend: MA200 (-7.97%) and MA50 (-8.57%) plus a down day (-4.64% 1d); comparatively lower 20d vol (79.25%) vs other candidates.",
"mean_reversion_score": 66
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"CRST_CFD.UK",
"MSLH_CFD.UK",
"LMP_CFD.UK",
"SPX_CFD.UK",
"UTG_CFD.UK",
"PAG_CFD.UK",
"INVP_CFD.UK",
"RHIM_CFD.UK",
"CBG_CFD.UK",
"DLN_CFD.UK",
"MCG_CFD.UK",
"BT_CFD.UK",
"IWG_CFD.UK",
"PZC_CFD.UK",
"OCDO_CFD.UK",
"HWDN_CFD.UK",
"LRE_CFD.UK",
"IMI_CFD.UK",
"BME_CFD.UK",
"DCC_CFD.UK",
"DOCS_CFD.UK",
"STJ_CFD.UK",
"TCAP_CFD.UK",
"ABDN_CFD.UK",
"LIO_CFD.UK",
"SMIN_CFD.UK",
"BBY_CFD.UK",
"LTA_CFD.FR",
"OSB_CFD.UK",
"MAB_CFD.UK",
"CABO_CFD.US",
"KGF_CFD.UK",
"HLMA_CFD.UK",
"DOM_CFD.UK",
"QDT_CFD.FR",
"IPO_CFD.UK",
"GROW_CFD.UK",
"CEN_CFD.FR",
"KSS_CFD.US",
"BYIT_CFD.UK",
"SRP_CFD.UK",
"HPP_CFD.US",
"WKP_CFD.UK",
"HIK_CFD.UK",
"OPTU_CFD.US",
"HHFA_CFD.DE",
"XRAY_CFD.US",
"WIZZ_CFD.UK",
"INF_CFD.UK",
"ATG_CFD.UK"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Highest mean-reversion score among candidates (86) with sharp selloff and deep dislocation vs MA200/MA50 per provided signal; rotate in after freeing one slot to stay within max positions and gross leverage limits.",
"symbol": "BYIT_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Maintain position; currently in drawdown and consistent with mean-reversion holding behavior. No clear replacement signal provided that justifies rotation given overtrading constraints.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Maintain position; no new risk/event data provided and no stronger relative improvement signal versus current holding set.",
"symbol": "CBG_CFD.UK"
},
{
"reason": "Maintain position; currently oversold versus entry and fits mean-reversion profile. Avoid churn absent a clear superior alternative signal.",
"symbol": "CSGP_CFD.US"
},
{
"reason": "Maintain position; currently in a sizeable drawdown where mean-reversion upside remains plausible. No forced-risk event indicated.",
"symbol": "EZJ_CFD.UK"
},
{
"reason": "Maintain position; drawdown position retained to allow mean-reversion to play out. No better-proven swap opportunity supplied.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Maintain position; modest drawdown and no explicit catalyst/risk event requiring a reduction.",
"symbol": "IWG_CFD.UK"
},
{
"reason": "Maintain position; no new information suggesting thesis break or a higher-priority reallocation beyond the single rotation executed.",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Maintain position; drawdown is moderate and consistent with mean-reversion holding. Avoid overtrading.",
"symbol": "ULTA_CFD.US"
},
{
"reason": "Maintain position; currently in drawdown and fits mean-reversion hold behavior. No explicit superior swap signal provided.",
"symbol": "ZS_CFD.US"
}
],
"sell": [
{
"reason": "Position appears largely mean-reverted/flat versus other names that show stronger current dislocation; trimming a low-upside slot to stay within the 10-position and max gross leverage constraints while reallocating to a higher-scored mean-reversion setup.",
"symbol": "WPP_CFD.UK"
}
]
},
"portfolio_rationale": "Portfolio is already at the 10-position limit and near the maximum gross exposure implied by fixed sizing. To respect the no-churn guidance while still improving expected mean-reversion edge, execute a single rotation: sell a largely flat/mean-reverted holding (WPP) and redeploy one fixed-size slot into the strongest current mean-reversion candidate (BYIT). All other positions are held due to lack of new, clearly superior replacement information and to avoid overtrading."
}Prompts & responses
#1666 • openrouter • openai/gpt-5.2-pro • 2026-03-25T12:30:17.333407+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": "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": "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": "SPX_CFD.UK", "name": "SPIRAX-SARCO ENGINEERING PLC", "sector": "", "last_price": 7608.71, "change_1d_pct": 10.91413994169097, "distance_from_ma200_pct": 15.905097055024719, "distance_from_ma50_pct": 8.459177525660632, "volatility_20d_pct": 84.71063298478786, "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": 567.5, "change_1d_pct": 3.4639927073837784, "distance_from_ma200_pct": -23.929923575376698, "distance_from_ma50_pct": -3.6875042216270137, "volatility_20d_pct": 73.84223442053181, "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": "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": "MCG_CFD.UK", "name": "MOBICO GROUP PLC", "sector": "", "last_price": 25.72, "change_1d_pct": 2.9623698959167166, "distance_from_ma200_pct": -7.132760074308242, "distance_from_ma50_pct": 8.327577202351844, "volatility_20d_pct": 232.19808875565576, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BT_CFD.UK", "name": "BT GROUP PLC", "sector": "", "last_price": 217.3, "change_1d_pct": 4.521404521404526, "distance_from_ma200_pct": 12.48931662093067, "distance_from_ma50_pct": 10.274676813493189, "volatility_20d_pct": 92.38992239372133, "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": 189.6, "change_1d_pct": -24.09927942353883, "distance_from_ma200_pct": -11.798015594910993, "distance_from_ma50_pct": -17.03351041019402, "volatility_20d_pct": 148.96998448946707, "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": "PZC_CFD.UK", "name": "PZ CUSSONS PLC", "sector": "", "last_price": 77.7, "change_1d_pct": -13.858093126385807, "distance_from_ma200_pct": 2.9808107121248817, "distance_from_ma50_pct": 2.5905093876257723, "volatility_20d_pct": 92.73478468401771, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OCDO_CFD.UK", "name": "OCADO GROUP PLC", "sector": "", "last_price": 217.0, "change_1d_pct": -21.148255813953487, "distance_from_ma200_pct": -15.81606625159202, "distance_from_ma50_pct": -5.48311196636071, "volatility_20d_pct": 241.3119670937803, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HWDN_CFD.UK", "name": "HOWDEN JOINERY GROUP PLC", "sector": "", "last_price": 843.0, "change_1d_pct": -2.686229466563539, "distance_from_ma200_pct": 2.9144756901175572, "distance_from_ma50_pct": 0.6796292983215046, "volatility_20d_pct": 44.16384759940265, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "LRE_CFD.UK", "name": "LANCASHIRE HOLDINGS LTD", "sector": "", "last_price": 611.0, "change_1d_pct": -7.424242424242422, "distance_from_ma200_pct": 0.4068944205071867, "distance_from_ma50_pct": -6.396619125545266, "volatility_20d_pct": 86.32350801127552, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IMI_CFD.UK", "name": "IMI PLC", "sector": "", "last_price": 2676.0, "change_1d_pct": 1.5945330296127658, "distance_from_ma200_pct": 20.655603593859716, "distance_from_ma50_pct": 2.743599661176499, "volatility_20d_pct": 90.40898907393799, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BME_CFD.UK", "name": "B&M EUROPEAN VALUE RETAIL SA", "sector": "", "last_price": 168.5, "change_1d_pct": -5.123873873873874, "distance_from_ma200_pct": -22.143264248764517, "distance_from_ma50_pct": -2.809133288189092, "volatility_20d_pct": 127.41578734735941, "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": "DCC_CFD.UK", "name": "DCC PLC", "sector": "", "last_price": 4738.0, "change_1d_pct": 4.131868131868122, "distance_from_ma200_pct": -1.2358165497191043, "distance_from_ma50_pct": -1.6950365081147445, "volatility_20d_pct": 101.79870451788292, "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": 65.6, "change_1d_pct": -1.501501501501501, "distance_from_ma200_pct": -13.08259339811949, "distance_from_ma50_pct": -12.14348468939509, "volatility_20d_pct": 121.2025974369199, "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": "STJ_CFD.UK", "name": "ST JAMES'S PLACE PLC", "sector": "", "last_price": 1280.0, "change_1d_pct": -14.836992681304062, "distance_from_ma200_pct": 4.633703562254432, "distance_from_ma50_pct": -6.669417974449299, "volatility_20d_pct": 125.87476157380789, "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": "TCAP_CFD.UK", "name": "TP ICAP GROUP PLC", "sector": "", "last_price": 280.0, "change_1d_pct": 12.676056338028175, "distance_from_ma200_pct": 4.459662807939169, "distance_from_ma50_pct": 8.616550990039862, "volatility_20d_pct": 83.88167277686827, "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": 202.6, "change_1d_pct": -7.741347905282336, "distance_from_ma200_pct": 6.460345885775287, "distance_from_ma50_pct": -2.3285905331046353, "volatility_20d_pct": 82.55854119558269, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "LIO_CFD.UK", "name": "LIONTRUST ASSET MANAGEMENT", "sector": "", "last_price": 270.0, "change_1d_pct": 7.784431137724557, "distance_from_ma200_pct": -17.148878096081223, "distance_from_ma50_pct": 4.440258238208905, "volatility_20d_pct": 138.52252179896075, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SMIN_CFD.UK", "name": "SMITHS GROUP PLC", "sector": "", "last_price": 2544.0, "change_1d_pct": 1.4333845019038671, "distance_from_ma200_pct": 14.948150770494873, "distance_from_ma50_pct": 4.167383226889343, "volatility_20d_pct": 72.718462979927, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BBY_CFD.UK", "name": "BALFOUR BEATTY PLC", "sector": "", "last_price": 759.18, "change_1d_pct": 5.222453222453205, "distance_from_ma200_pct": 33.313724414201815, "distance_from_ma50_pct": 8.832962232591, "volatility_20d_pct": 54.25956465831767, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "LTA_CFD.FR", "name": "ALTAMIR", "sector": "", "last_price": 26.13, "change_1d_pct": -4.635036496350365, "distance_from_ma200_pct": -7.971797740818576, "distance_from_ma50_pct": -8.569741028077814, "volatility_20d_pct": 79.25399931048894, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OSB_CFD.UK", "name": "OSB GROUP PLC", "sector": "", "last_price": 544.0, "change_1d_pct": -12.82051282051282, "distance_from_ma200_pct": 1.2037008184198061, "distance_from_ma50_pct": -8.431783193394438, "volatility_20d_pct": 87.0803157010617, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MAB_CFD.UK", "name": "MITCHELLS & BUTLERS PLC", "sector": "", "last_price": 292.81, "change_1d_pct": 14.37890625, "distance_from_ma200_pct": 11.595067041457764, "distance_from_ma50_pct": 10.935906392690597, "volatility_20d_pct": 118.87119977937589, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CABO_CFD.US", "name": "Cable One Inc", "sector": "", "last_price": 94.24, "change_1d_pct": -4.003259651624735, "distance_from_ma200_pct": -27.404159470506396, "distance_from_ma50_pct": -3.626680192746645, "volatility_20d_pct": 159.60714028290116, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "KGF_CFD.UK", "name": "KINGFISHER PLC", "sector": "", "last_price": 298.6, "change_1d_pct": -16.592178770949715, "distance_from_ma200_pct": 1.7661505198389493, "distance_from_ma50_pct": -8.10124743477527, "volatility_20d_pct": 106.76236046208503, "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": "HLMA_CFD.UK", "name": "HALMA PLC", "sector": "", "last_price": 3658.0, "change_1d_pct": -5.478036175710599, "distance_from_ma200_pct": 8.890890613176584, "distance_from_ma50_pct": -0.8317338451695466, "volatility_20d_pct": 89.73890792125391, "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": 189.21, "change_1d_pct": 4.190528634361246, "distance_from_ma200_pct": -12.46581454882838, "distance_from_ma50_pct": 4.428944053991102, "volatility_20d_pct": 85.812071272284, "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": "QDT_CFD.FR", "name": "", "sector": "", "last_price": 12.4, "change_1d_pct": -3.7267080745341685, "distance_from_ma200_pct": -17.10520686261927, "distance_from_ma50_pct": -13.576202789258351, "volatility_20d_pct": 75.72548033286846, "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": "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": "CEN_CFD.FR", "name": "Groupe Crit SA", "sector": "", "last_price": 59.4, "change_1d_pct": -2.941176470588247, "distance_from_ma200_pct": -3.677141345119539, "distance_from_ma50_pct": -3.0022596880983854, "volatility_20d_pct": 51.89642657284126, "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": "KSS_CFD.US", "name": "KOHLS CORP", "sector": "", "last_price": 12.69, "change_1d_pct": 0.5546751188589605, "distance_from_ma200_pct": -19.556769846149948, "distance_from_ma50_pct": -24.251468411250666, "volatility_20d_pct": 143.73397179503831, "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": 300.4, "change_1d_pct": -12.674418604651173, "distance_from_ma200_pct": -28.03446775272175, "distance_from_ma50_pct": -14.34777426817815, "volatility_20d_pct": 87.82535981934274, "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": "SRP_CFD.UK", "name": "", "sector": "", "last_price": 310.8, "change_1d_pct": 2.8457974851092027, "distance_from_ma200_pct": 39.79374126148558, "distance_from_ma50_pct": 11.383876574623253, "volatility_20d_pct": 75.94490281091494, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HPP_CFD.US", "name": "HUDSON PACIFIC PROPERTIES IN", "sector": "", "last_price": 5.84, "change_1d_pct": -3.1509121061359946, "distance_from_ma200_pct": -59.67992488314773, "distance_from_ma50_pct": -22.394089193642696, "volatility_20d_pct": 184.7522103723787, "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": "HIK_CFD.UK", "name": "HIKMA PHARMACEUTICALS PLC", "sector": "", "last_price": 1267.0, "change_1d_pct": -19.55555555555556, "distance_from_ma200_pct": -28.881851790845626, "distance_from_ma50_pct": -15.711709832205766, "volatility_20d_pct": 155.5956600941246, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OPTU_CFD.US", "name": "Optimum Communications Inc.", "sector": "", "last_price": 1.28, "change_1d_pct": -3.759398496240607, "distance_from_ma200_pct": -37.65828949931813, "distance_from_ma50_pct": -18.81263478371178, "volatility_20d_pct": 145.35266291068936, "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": "HHFA_CFD.DE", "name": "HAMBURGER HAFEN UND LOGISTIK", "sector": "", "last_price": 22.9, "change_1d_pct": 0.0, "distance_from_ma200_pct": 8.286007461804346, "distance_from_ma50_pct": 0.3750256416550135, "volatility_20d_pct": 55.586552774997564, "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": "XRAY_CFD.US", "name": "DENTSPLY SIRONA INC", "sector": "", "last_price": 11.71, "change_1d_pct": 3.536693191865603, "distance_from_ma200_pct": -11.177186721330745, "distance_from_ma50_pct": -7.076766811090474, "volatility_20d_pct": 140.2617625831256, "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": "WIZZ_CFD.UK", "name": "WIZZ AIR HOLDINGS PLC", "sector": "", "last_price": 913.5, "change_1d_pct": -8.923230309072782, "distance_from_ma200_pct": -23.338442565282858, "distance_from_ma50_pct": -24.408324468102716, "volatility_20d_pct": 185.6607172574384, "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": "INF_CFD.UK", "name": "INFORMA PLC", "sector": "", "last_price": 756.4, "change_1d_pct": -14.492425955234012, "distance_from_ma200_pct": -10.927806304012677, "distance_from_ma50_pct": -13.84600805409979, "volatility_20d_pct": 89.53684626030801, "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"}], "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": "BYIT_CFD.UK",
"selection_reason": "Sharp selloff (-12.67% 1d) with deep dislocation vs MA200 (-28.03%) and MA50 (-14.35%); volatility moderate vs other oversold names (87.83% 20d).",
"mean_reversion_score": 86
},
{
"symbol": "WIZZ_CFD.UK",
"selection_reason": "Oversold on multiple horizons: below MA200 (-23.34%) and MA50 (-24.41%) with a down day (-8.92% 1d); elevated vol (185.66% 20d) but strong mean-reversion setup.",
"mean_reversion_score": 82
},
{
"symbol": "INF_CFD.UK",
"selection_reason": "Large down move (-14.49% 1d) and below both MA50 (-13.85%) and MA200 (-10.93%), supporting 2–10 day rebound potential; 20d vol 89.54%.",
"mean_reversion_score": 79
},
{
"symbol": "BME_CFD.UK",
"selection_reason": "Trading well below MA200 (-22.14%) with a further down day (-5.12% 1d); modestly below MA50 (-2.81%) suggests potential snapback toward MA50 over short horizon.",
"mean_reversion_score": 74
},
{
"symbol": "LTA_CFD.FR",
"selection_reason": "Consistently below trend: MA200 (-7.97%) and MA50 (-8.57%) plus a down day (-4.64% 1d); comparatively lower 20d vol (79.25%) vs other candidates.",
"mean_reversion_score": 66
}
],
"rejected_common_reasons": [
"Non-EU listing in an EU scan (e.g., symbols ending _CFD.US).",
"Momentum/upside extension (large positive 1d move and/or far above MA50/MA200), not a mean-reversion long setup.",
"Move appears too extreme/gap-like (very large 1d drop with very high 20d volatility), increasing event/binary risk with no news context provided.",
"Insufficient dislocation from key moving averages (near MA50/MA200), offering weaker mean-reversion edge for 2–10 trading days.",
"Earnings/news/sentiment fields unknown; unable to screen for near-term earnings or event-driven catalysts beyond price/technical signals."
]
}#1667 • openrouter • openai/gpt-5.2-pro • 2026-03-25T12:31:54.375318+00:00
System prompt
You are an Arena portfolio manager. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices/fundamentals/news/earnings. If a field is null/empty, treat it as unknown. Avoid overtrading: if changes are marginal, prefer HOLD. Do not churn.
User prompt
{"task": "stage2_portfolio_management", "region": "EU", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "portfolio_constraints": {"initial_equity": 10000.0, "max_positions": 10, "fixed_position_size": 3000.0, "max_gross_leverage": 3.0, "overtrading_rules": ["Max 2 SELL actions per run unless risk event forces more", "Max 2 BUY actions per run", "If no clear improvement vs current holdings, output HOLD for everything"]}, "current_portfolio": [{"symbol": "ADBE_CFD.US", "qty": 12.025494047380446, "avg_price": 249.47, "last_price": 238.69, "unrealized_pnl": -129.63482583076123, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "AMH_CFD.US", "qty": 0.0, "avg_price": 29.674999999999997, "last_price": 28.435000000000002, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "ARCAD_CFD.NL", "qty": 0.0, "avg_price": 28.6, "last_price": 30.0, "unrealized_pnl": 146.8531468531467, "opened_at": "2026-02-23T10:32:09.961595+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-16T09:30:55.514112+00:00"}, {"symbol": "CABO_CFD.US", "qty": 0.0, "avg_price": 94.325, "last_price": 108.6, "unrealized_pnl": 0.0, "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-20T10:26:40.341409+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 350.45000000000005, "last_price": 382.96500000000003, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "CSGP_CFD.US", "qty": 63.51222610352493, "avg_price": 47.235, "last_price": 41.445, "unrealized_pnl": -367.7357891394093, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "DSY_CFD.FR", "qty": 0.0, "avg_price": 17.881, "last_price": 17.45, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "ETSY_CFD.US", "qty": 0.0, "avg_price": 44.13, "last_price": 50.769999999999996, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 6.857142857142857, "avg_price": 437.5, "last_price": 350.8, "unrealized_pnl": -594.5142857142856, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "FBIN_CFD.US", "qty": 0.0, "avg_price": 50.974999999999994, "last_price": 54.185, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "FICO_CFD.US", "qty": 2.6609662855571625, "avg_price": 1127.4099999999999, "last_price": 993.365, "unrealized_pnl": -356.68922574750945, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "FLO_CFD.US", "qty": 0.0, "avg_price": 9.875, "last_price": 9.885000000000002, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 0.0, "avg_price": 414.2, "last_price": 414.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "IWG_CFD.UK", "qty": 16.216216216216218, "avg_price": 185.0, "last_price": 177.0, "unrealized_pnl": -129.72972972972974, "opened_at": "2026-03-17T10:04:29.123574+00:00"}, {"symbol": "MLCO_CFD.US", "qty": 0.0, "avg_price": 5.51, "last_price": 6.06, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 0.0, "avg_price": 204.3, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+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-05T10:27:11.178069+00:00"}, {"symbol": "PAYC_CFD.US", "qty": 0.0, "avg_price": 121.22, "last_price": 134.24, "unrealized_pnl": 322.2240554363969, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "PSN_CFD.UK", "qty": 2.4691358024691357, "avg_price": 1215.0, "last_price": 1134.0, "unrealized_pnl": -200.0, "opened_at": "2026-03-12T18:01:52.554929+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-18T09:36:37.284518+00:00"}, {"symbol": "TMV_CFD.DE", "qty": 0.0, "avg_price": 4.781, "last_price": 4.467, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+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-05T10:27:11.178069+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 0.0, "avg_price": 92.35, "last_price": 92.35, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "ULTA_CFD.US", "qty": 5.605381165919282, "avg_price": 535.2, "last_price": 514.96, "unrealized_pnl": -113.45291479820632, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 12.925463162429988, "avg_price": 232.09999999999997, "last_price": 232.0, "unrealized_pnl": -1.292546316242558, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "ZS_CFD.US", "qty": 18.778167250876315, "avg_price": 159.76, "last_price": 139.34, "unrealized_pnl": -383.4501752628941, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "BYIT_CFD.UK", "mean_reversion_score": 86, "selection_reason": "Sharp selloff (-12.67% 1d) with deep dislocation vs MA200 (-28.03%) and MA50 (-14.35%); volatility moderate vs other oversold names (87.83% 20d)."}, {"symbol": "WIZZ_CFD.UK", "mean_reversion_score": 82, "selection_reason": "Oversold on multiple horizons: below MA200 (-23.34%) and MA50 (-24.41%) with a down day (-8.92% 1d); elevated vol (185.66% 20d) but strong mean-reversion setup."}, {"symbol": "INF_CFD.UK", "mean_reversion_score": 79, "selection_reason": "Large down move (-14.49% 1d) and below both MA50 (-13.85%) and MA200 (-10.93%), supporting 2–10 day rebound potential; 20d vol 89.54%."}, {"symbol": "BME_CFD.UK", "mean_reversion_score": 74, "selection_reason": "Trading well below MA200 (-22.14%) with a further down day (-5.12% 1d); modestly below MA50 (-2.81%) suggests potential snapback toward MA50 over short horizon."}, {"symbol": "LTA_CFD.FR", "mean_reversion_score": 66, "selection_reason": "Consistently below trend: MA200 (-7.97%) and MA50 (-8.57%) plus a down day (-4.64% 1d); comparatively lower 20d vol (79.25%) vs other candidates."}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}Output JSON
{
"actions": {
"buy": [
{
"reason": "Highest mean-reversion score among candidates (86) with sharp selloff and deep dislocation vs MA200/MA50 per provided signal; rotate in after freeing one slot to stay within max positions and gross leverage limits.",
"symbol": "BYIT_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Maintain position; currently in drawdown and consistent with mean-reversion holding behavior. No clear replacement signal provided that justifies rotation given overtrading constraints.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Maintain position; no new risk/event data provided and no stronger relative improvement signal versus current holding set.",
"symbol": "CBG_CFD.UK"
},
{
"reason": "Maintain position; currently oversold versus entry and fits mean-reversion profile. Avoid churn absent a clear superior alternative signal.",
"symbol": "CSGP_CFD.US"
},
{
"reason": "Maintain position; currently in a sizeable drawdown where mean-reversion upside remains plausible. No forced-risk event indicated.",
"symbol": "EZJ_CFD.UK"
},
{
"reason": "Maintain position; drawdown position retained to allow mean-reversion to play out. No better-proven swap opportunity supplied.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Maintain position; modest drawdown and no explicit catalyst/risk event requiring a reduction.",
"symbol": "IWG_CFD.UK"
},
{
"reason": "Maintain position; no new information suggesting thesis break or a higher-priority reallocation beyond the single rotation executed.",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Maintain position; drawdown is moderate and consistent with mean-reversion holding. Avoid overtrading.",
"symbol": "ULTA_CFD.US"
},
{
"reason": "Maintain position; currently in drawdown and fits mean-reversion hold behavior. No explicit superior swap signal provided.",
"symbol": "ZS_CFD.US"
}
],
"sell": [
{
"reason": "Position appears largely mean-reverted/flat versus other names that show stronger current dislocation; trimming a low-upside slot to stay within the 10-position and max gross leverage constraints while reallocating to a higher-scored mean-reversion setup.",
"symbol": "WPP_CFD.UK"
}
]
},
"portfolio_rationale": "Portfolio is already at the 10-position limit and near the maximum gross exposure implied by fixed sizing. To respect the no-churn guidance while still improving expected mean-reversion edge, execute a single rotation: sell a largely flat/mean-reverted holding (WPP) and redeploy one fixed-size slot into the strongest current mean-reversion candidate (BYIT). All other positions are held due to lack of new, clearly superior replacement information and to avoid overtrading."
}Selection logs
#825 • stage1 • 2026-03-25T12:31:54.372889+00:00
{
"selected_stocks": [
{
"symbol": "BYIT_CFD.UK",
"selection_reason": "Sharp selloff (-12.67% 1d) with deep dislocation vs MA200 (-28.03%) and MA50 (-14.35%); volatility moderate vs other oversold names (87.83% 20d).",
"mean_reversion_score": 86
},
{
"symbol": "WIZZ_CFD.UK",
"selection_reason": "Oversold on multiple horizons: below MA200 (-23.34%) and MA50 (-24.41%) with a down day (-8.92% 1d); elevated vol (185.66% 20d) but strong mean-reversion setup.",
"mean_reversion_score": 82
},
{
"symbol": "INF_CFD.UK",
"selection_reason": "Large down move (-14.49% 1d) and below both MA50 (-13.85%) and MA200 (-10.93%), supporting 2–10 day rebound potential; 20d vol 89.54%.",
"mean_reversion_score": 79
},
{
"symbol": "BME_CFD.UK",
"selection_reason": "Trading well below MA200 (-22.14%) with a further down day (-5.12% 1d); modestly below MA50 (-2.81%) suggests potential snapback toward MA50 over short horizon.",
"mean_reversion_score": 74
},
{
"symbol": "LTA_CFD.FR",
"selection_reason": "Consistently below trend: MA200 (-7.97%) and MA50 (-8.57%) plus a down day (-4.64% 1d); comparatively lower 20d vol (79.25%) vs other candidates.",
"mean_reversion_score": 66
}
],
"rejected_common_reasons": [
"Non-EU listing in an EU scan (e.g., symbols ending _CFD.US).",
"Momentum/upside extension (large positive 1d move and/or far above MA50/MA200), not a mean-reversion long setup.",
"Move appears too extreme/gap-like (very large 1d drop with very high 20d volatility), increasing event/binary risk with no news context provided.",
"Insufficient dislocation from key moving averages (near MA50/MA200), offering weaker mean-reversion edge for 2–10 trading days.",
"Earnings/news/sentiment fields unknown; unable to screen for near-term earnings or event-driven catalysts beyond price/technical signals."
]
}