Arena run #1756
meanrev-v1 • openai • openai/gpt-5.2-pro • EU • success
Run status
as_of: 2026-05-10T10:12:52.141379+00:00
started_at: 2026-05-10T11:30:51.067166+00:00
finished_at: 2026-05-10T11:33:07.043438+00:00
duration_ms: 135975
Inputs
{
"as_of": "2026-05-10T10:12:52.141379+00:00",
"dry_run": false,
"selected": [
{
"symbol": "CTEC_CFD.UK",
"selection_reason": "Sharp selloff (-9.34% 1d) with price well below MA50 (-11.11%) and MA200 (-16.70%): classic short-term oversold mean-reversion setup (earnings/news unknown).",
"mean_reversion_score": 82
},
{
"symbol": "MNDI_CFD.UK",
"selection_reason": "Down day (-6.70% 1d) and meaningfully below MA50 (-7.46%) and MA200 (-16.48%), indicating downside stretch with room to snap back over 2–10 sessions (earnings/news unknown).",
"mean_reversion_score": 77
},
{
"symbol": "TPK_CFD.UK",
"selection_reason": "Mild pullback (-1.21% 1d) with price below MA50 (-4.98%) while near MA200 (+0.53%): candidate for rebound toward MA50/MA200 confluence (earnings/news unknown).",
"mean_reversion_score": 64
},
{
"symbol": "SBT_CFD.FR",
"selection_reason": "Moderate down move (-3.62% 1d) with price slightly below MA50 (-2.09%) and MA200 (-2.47%) plus comparatively lower 20d volatility (44.83%): cleaner mean-reversion profile vs higher-vol names (earnings/news unknown).",
"mean_reversion_score": 61
},
{
"symbol": "ASHM_CFD.UK",
"selection_reason": "Strongly extended above MA50 (+24.89%) and MA200 (+40.46%) after continued strength (+1.41% 1d): potential short-side mean reversion via pullback toward moving averages (earnings/news unknown).",
"mean_reversion_score": 70
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"BOY_CFD.UK",
"ASHM_CFD.UK",
"GRI_CFD.UK",
"N91_CFD.UK",
"CBG_CFD.UK",
"DLN_CFD.UK",
"GFTU_CFD.UK",
"TPK_CFD.UK",
"PNN_CFD.UK",
"MGNS_CFD.UK",
"INVP_CFD.UK",
"BRNK_CFD.DE",
"BNZL_CFD.UK",
"HAIN_CFD.US",
"OPTU_CFD.US",
"MCG_CFD.UK",
"HFG_CFD.UK",
"HE_CFD.US",
"WKP_CFD.UK",
"OCDO_CFD.UK",
"ADJ_CFD.DE",
"PSON_CFD.UK",
"LMP_CFD.UK",
"HAS_CFD.UK",
"SBT_CFD.FR",
"ATG_CFD.UK",
"MOS_CFD.US",
"CPG_CFD.UK",
"GPK_CFD.US",
"HMSO_CFD.UK",
"SPX_CFD.UK",
"BLND_CFD.UK",
"CTEC_CFD.UK",
"ECMPA_CFD.NL",
"PHP_CFD.UK",
"REC_CFD.BE",
"MNDI_CFD.UK",
"GLW_CFD.US",
"TER_CFD.US",
"UKW_CFD.UK",
"NXI_CFD.FR",
"AKAM_CFD.US",
"SFM_CFD.US",
"APH_CFD.US",
"ALB_CFD.US",
"GT_CFD.US",
"TSCO_CFD.US",
"CDW_CFD.US",
"SMIN_CFD.UK"
]
}Outputs
{
"actions": {
"buy": [],
"hold": [
{
"reason": "Hold: position is modestly profitable and there is no new risk/event data provided to justify trimming; also portfolio is already at max positions/leverage so rotating without a clear edge would be churn.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Hold: newly opened and currently flat; avoid overtrading immediately after entry without new information.",
"symbol": "CDW_CFD.US"
},
{
"reason": "Hold: large drawdown, but no news/fundamental catalyst is provided to justify a forced exit; selling purely on P&L would be overtrading and may conflict with mean-reversion intent.",
"symbol": "CRST_CFD.UK"
},
{
"reason": "Hold: down but not accompanied by any provided risk event; maintain mean-reversion stance rather than churning.",
"symbol": "DLTR_CFD.US"
},
{
"reason": "Hold: near flat; no clear improvement opportunity that justifies rotation given max positions/leverage constraints.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Hold: near flat; keep exposure rather than rotate without stronger conviction signal.",
"symbol": "FIS_CFD.US"
},
{
"reason": "Hold: small gain and no new information suggesting exit; keep to avoid unnecessary turnover.",
"symbol": "HAS_CFD.UK"
},
{
"reason": "Hold: mild loss; absent any provided risk event, avoid selling into weakness purely to fund new buys.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Hold: newly opened and flat; avoid immediate rotation (overtrading).",
"symbol": "TSCO_CFD.US"
},
{
"reason": "Hold: modest loss; no catalyst/risk event provided to justify exit; maintain mean-reversion posture.",
"symbol": "ULTA_CFD.US"
}
],
"sell": []
},
"portfolio_rationale": "No trades this run. The portfolio is already at the strategy limits (10 active positions and ~3.0x gross exposure via fixed ~$3k sizing). While there are attractive mean-reversion candidates (e.g., CTEC_CFD.UK, MNDI_CFD.UK), adding them would require selling existing holdings; without additional comparative edge signals or risk-event data, rotating would be marginal and would violate the 'avoid overtrading' principle. Maintain current positions and reassess on the next run when clearer relative opportunities or risk constraints emerge."
}Prompts & responses
#2879 • openrouter • openai/gpt-5.2-pro • 2026-05-10T11:30:51.111495+00:00
System prompt
You are an Arena strategy executor. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices, fundamentals, earnings dates, or sentiment. If a field is null/empty, treat it as unknown. You are a constrained selector (no narrative).
User prompt
{"task": "stage1_universe_scan", "region": "EU", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "selection_rules": {"horizon": "2-10 trading days", "target": "short-term mean reversion in liquid equities", "constraints": ["Select exactly 5 candidates", "Avoid earnings within 5 trading days (if known)", "Avoid highly binary/event-driven moves (if known)", "Avoid sector concentration: max 1 per sector unless clearly justified (sector may be unknown)"]}, "universe": [{"symbol": "BOY_CFD.UK", "name": "BODYCOTE PLC", "sector": "", "last_price": 775.4, "change_1d_pct": 24.163330664531625, "distance_from_ma200_pct": 28.652243313347768, "distance_from_ma50_pct": 18.63612217470385, "volatility_20d_pct": 103.46484337510964, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ASHM_CFD.UK", "name": "ASHMORE GROUP PLC", "sector": "", "last_price": 244.8, "change_1d_pct": 1.4084507042253502, "distance_from_ma200_pct": 40.45532080672305, "distance_from_ma50_pct": 24.88993054528128, "volatility_20d_pct": 134.25405461264828, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GRI_CFD.UK", "name": "GRAINGER PLC", "sector": "", "last_price": 189.6, "change_1d_pct": -1.455301455301461, "distance_from_ma200_pct": -6.198447178618971, "distance_from_ma50_pct": -0.23237017579308406, "volatility_20d_pct": 71.77829509727196, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "N91_CFD.UK", "name": "NINETY ONE PLC", "sector": "", "last_price": 241.4, "change_1d_pct": -2.739726027397249, "distance_from_ma200_pct": 22.140556255617817, "distance_from_ma50_pct": 6.809338693563394, "volatility_20d_pct": 84.21236037483679, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CBG_CFD.UK", "name": "CLOSE BROTHERS GROUP PLC", "sector": "", "last_price": 372.74, "change_1d_pct": -26.625984251968504, "distance_from_ma200_pct": -13.365429078084645, "distance_from_ma50_pct": -22.129222788055436, "volatility_20d_pct": 169.0552301316783, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DLN_CFD.UK", "name": "DERWENT LONDON PLC", "sector": "", "last_price": 1953.0, "change_1d_pct": 10.401356698699837, "distance_from_ma200_pct": 5.069478604951705, "distance_from_ma50_pct": 12.150447212111025, "volatility_20d_pct": 115.39088732649292, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GFTU_CFD.UK", "name": "GRAFTON GROUP PLC-UTS", "sector": "", "last_price": 955.8, "change_1d_pct": 1.0434175890393638, "distance_from_ma200_pct": 3.963270661870655, "distance_from_ma50_pct": 3.4837359036161253, "volatility_20d_pct": 51.04515943079597, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "TPK_CFD.UK", "name": "TRAVIS PERKINS PLC", "sector": "", "last_price": 601.57, "change_1d_pct": -1.21029986533977, "distance_from_ma200_pct": 0.5267641208837714, "distance_from_ma50_pct": -4.983077425595306, "volatility_20d_pct": 108.19399806448348, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "PNN_CFD.UK", "name": "PENNON GROUP PLC", "sector": "", "last_price": 551.0, "change_1d_pct": 7.699224018295192, "distance_from_ma200_pct": 13.698549858568065, "distance_from_ma50_pct": 7.285607918028347, "volatility_20d_pct": 97.33547101641821, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MGNS_CFD.UK", "name": "MORGAN SINDALL GROUP PLC", "sector": "", "last_price": 4860.0, "change_1d_pct": 8.928311274976753, "distance_from_ma200_pct": 19.027421064583947, "distance_from_ma50_pct": 4.129720434840567, "volatility_20d_pct": 174.2493967907277, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "INVP_CFD.UK", "name": "INVESTEC PLC", "sector": "", "last_price": 642.0, "change_1d_pct": 9.369676320272568, "distance_from_ma200_pct": 20.33187982293969, "distance_from_ma50_pct": 11.734877154290203, "volatility_20d_pct": 115.28654302325035, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BRNK_CFD.DE", "name": "Branicks Group AG", "sector": "", "last_price": 1.45, "change_1d_pct": 5.072463768115942, "distance_from_ma200_pct": -21.736689839803102, "distance_from_ma50_pct": -6.741616392894367, "volatility_20d_pct": 192.10029439414404, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BNZL_CFD.UK", "name": "BUNZL PLC", "sector": "", "last_price": 2463.0, "change_1d_pct": 11.246612466124661, "distance_from_ma200_pct": 6.753831191506032, "distance_from_ma50_pct": 13.385480526561633, "volatility_20d_pct": 95.72449919502712, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HAIN_CFD.US", "name": "The Hain Celestial Group Inc", "sector": "", "last_price": 0.7051, "change_1d_pct": -0.18403171007929098, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -33.19918220868079, "volatility_20d_pct": 9562.636249272142, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OPTU_CFD.US", "name": "Optimum Communications Inc.", "sector": "", "last_price": 1.16, "change_1d_pct": -18.881118881118887, "distance_from_ma200_pct": -39.28291023292333, "distance_from_ma50_pct": -19.388464211257826, "volatility_20d_pct": 155.53996036728756, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MCG_CFD.UK", "name": "MOBICO GROUP PLC", "sector": "", "last_price": 26.38, "change_1d_pct": -4.142441860465118, "distance_from_ma200_pct": -3.657754948131142, "distance_from_ma50_pct": 12.38635685863516, "volatility_20d_pct": 328.69037941810484, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HFG_CFD.UK", "name": "HILTON FOOD GROUP PLC", "sector": "", "last_price": 548.0, "change_1d_pct": 10.261569416498983, "distance_from_ma200_pct": -29.343342424790787, "distance_from_ma50_pct": -8.640994786201595, "volatility_20d_pct": 169.6338077414147, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HE_CFD.US", "name": "", "sector": "", "last_price": 15.21, "change_1d_pct": -0.5232177894048284, "distance_from_ma200_pct": 15.418325030448132, "distance_from_ma50_pct": 0.38013779995249575, "volatility_20d_pct": 56.2273665181513, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "WKP_CFD.UK", "name": "WORKSPACE GROUP PLC", "sector": "", "last_price": 423.0, "change_1d_pct": 3.6764705882353033, "distance_from_ma200_pct": 1.8640028868691871, "distance_from_ma50_pct": 5.808194506978848, "volatility_20d_pct": 70.2233148398582, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OCDO_CFD.UK", "name": "OCADO GROUP PLC", "sector": "", "last_price": 186.0, "change_1d_pct": -27.372120265521282, "distance_from_ma200_pct": -27.532109898724187, "distance_from_ma50_pct": -19.095469955276336, "volatility_20d_pct": 249.4549801604736, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ADJ_CFD.DE", "name": "ADLER GROUP SA", "sector": "", "last_price": 0.172, "change_1d_pct": 0.0, "distance_from_ma200_pct": -12.882720895484601, "distance_from_ma50_pct": -4.603438713255703, "volatility_20d_pct": 273.6401010011234, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "PSON_CFD.UK", "name": "PEARSON PLC", "sector": "", "last_price": 1130.5, "change_1d_pct": 10.887690044139276, "distance_from_ma200_pct": 8.656877487760717, "distance_from_ma50_pct": 14.070566544762686, "volatility_20d_pct": 113.35458813581232, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "LMP_CFD.UK", "name": "LONDONMETRIC PROPERTY PLC", "sector": "", "last_price": 192.3, "change_1d_pct": -1.5864892528147378, "distance_from_ma200_pct": 0.9846926531141609, "distance_from_ma50_pct": -0.5701060895768606, "volatility_20d_pct": 115.33658818601971, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HAS_CFD.UK", "name": "HAYS PLC", "sector": "", "last_price": 33.32, "change_1d_pct": -41.13074204946997, "distance_from_ma200_pct": -48.070043100929105, "distance_from_ma50_pct": -36.93550462952447, "volatility_20d_pct": 238.64976019705142, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SBT_CFD.FR", "name": "Oeneo Bouchage", "sector": "", "last_price": 9.06, "change_1d_pct": -3.6170212765957444, "distance_from_ma200_pct": -2.470898704832891, "distance_from_ma50_pct": -2.093216767347117, "volatility_20d_pct": 44.82674811022072, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 326.5, "change_1d_pct": 12.006861063464846, "distance_from_ma200_pct": -24.987260470422935, "distance_from_ma50_pct": 5.84429056770146, "volatility_20d_pct": 172.45012969704524, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MOS_CFD.US", "name": "MOSAIC CO/THE", "sector": "", "last_price": 22.68, "change_1d_pct": -0.8307826847398392, "distance_from_ma200_pct": -20.041178088180335, "distance_from_ma50_pct": -10.675604357518132, "volatility_20d_pct": 58.492818534138344, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CPG_CFD.UK", "name": "COMPASS GROUP PLC", "sector": "", "last_price": 29.86, "change_1d_pct": 10.38817005545285, "distance_from_ma200_pct": -98.62792901945058, "distance_from_ma50_pct": -97.64592728075431, "volatility_20d_pct": 603.5168554995487, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GPK_CFD.US", "name": "GRAPHIC PACKAGING HOLDING CO", "sector": "", "last_price": 10.83, "change_1d_pct": 3.3396946564885566, "distance_from_ma200_pct": -30.55310635378158, "distance_from_ma50_pct": 8.776440810751085, "volatility_20d_pct": 88.64166136593849, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HMSO_CFD.UK", "name": "HAMMERSON PLC", "sector": "", "last_price": 355.4, "change_1d_pct": 14.129736673089276, "distance_from_ma200_pct": 22.516025502913806, "distance_from_ma50_pct": 10.006914897239172, "volatility_20d_pct": 87.54938293511039, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SPX_CFD.UK", "name": "SPIRAX-SARCO ENGINEERING PLC", "sector": "", "last_price": 7168.0, "change_1d_pct": 7.064973861090373, "distance_from_ma200_pct": 9.233977228616963, "distance_from_ma50_pct": 1.207072239512863, "volatility_20d_pct": 136.31219199190863, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BLND_CFD.UK", "name": "BRITISH LAND CO PLC", "sector": "", "last_price": 391.7, "change_1d_pct": 13.077367205542734, "distance_from_ma200_pct": 4.463250377902539, "distance_from_ma50_pct": -0.22954591071041586, "volatility_20d_pct": 119.37084138774277, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CTEC_CFD.UK", "name": "CONVATEC GROUP PLC", "sector": "", "last_price": 207.6, "change_1d_pct": -9.344978165938866, "distance_from_ma200_pct": -16.703012133032836, "distance_from_ma50_pct": -11.110882751143869, "volatility_20d_pct": 116.55231905033538, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ECMPA_CFD.NL", "name": "Eurocommercial Properties", "sector": "", "last_price": 27.55, "change_1d_pct": -1.0771992818671472, "distance_from_ma200_pct": 3.6903216093641333, "distance_from_ma50_pct": 1.1231830861841097, "volatility_20d_pct": 61.36817383080048, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "PHP_CFD.UK", "name": "PRIMARY HEALTH PROPERTIES", "sector": "", "last_price": 94.45, "change_1d_pct": 2.9427792915531326, "distance_from_ma200_pct": -1.7938096307572038, "distance_from_ma50_pct": -3.243122527295772, "volatility_20d_pct": 111.6461438724416, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "REC_CFD.BE", "name": "Recticel SA", "sector": "", "last_price": 10.46, "change_1d_pct": 4.809619238476959, "distance_from_ma200_pct": 8.058074500153921, "distance_from_ma50_pct": 4.356848542895064, "volatility_20d_pct": 90.40840090493766, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MNDI_CFD.UK", "name": "MONDI PLC", "sector": "", "last_price": 791.2, "change_1d_pct": -6.698113207547163, "distance_from_ma200_pct": -16.479426249971617, "distance_from_ma50_pct": -7.4613389099806415, "volatility_20d_pct": 122.60907560467662, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GLW_CFD.US", "name": "CORNING INC", "sector": "", "last_price": 188.85, "change_1d_pct": 15.110325490674148, "distance_from_ma200_pct": 82.89928046057497, "distance_from_ma50_pct": 24.75557552055807, "volatility_20d_pct": 146.84474569423688, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "TER_CFD.US", "name": "Teradyne Inc", "sector": "", "last_price": 364.83, "change_1d_pct": 0.42390376833933985, "distance_from_ma200_pct": 68.88921190821016, "distance_from_ma50_pct": 9.709846130159061, "volatility_20d_pct": 157.6172997157301, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "UKW_CFD.UK", "name": "GREENCOAT UK WIND PLC", "sector": "", "last_price": 100.4, "change_1d_pct": 3.976801988401002, "distance_from_ma200_pct": -9.084405711745047, "distance_from_ma50_pct": 0.06418459649417674, "volatility_20d_pct": 80.6750581480199, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "NXI_CFD.FR", "name": "Nexity SA", "sector": "", "last_price": 8.87, "change_1d_pct": 2.9002320185614883, "distance_from_ma200_pct": -3.8172723359173766, "distance_from_ma50_pct": 5.139882271780061, "volatility_20d_pct": 60.36558349705058, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "AKAM_CFD.US", "name": "Akamai Technologies Inc", "sector": "", "last_price": 149.65, "change_1d_pct": 29.533454513979063, "distance_from_ma200_pct": 67.35414384628247, "distance_from_ma50_pct": 40.951064126376544, "volatility_20d_pct": 154.28386628635903, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SFM_CFD.US", "name": "SPROUTS FARMERS MARKET INC", "sector": "", "last_price": 83.96, "change_1d_pct": 5.823040080665476, "distance_from_ma200_pct": -11.859033241826022, "distance_from_ma50_pct": 8.726337517838312, "volatility_20d_pct": 109.60367883354618, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "APH_CFD.US", "name": "Amphenol Corporation", "sector": "", "last_price": 129.32, "change_1d_pct": -6.405153072302228, "distance_from_ma200_pct": -2.0376873106913607, "distance_from_ma50_pct": -5.5835102608208125, "volatility_20d_pct": 75.0166002676417, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ALB_CFD.US", "name": "Albemarle Corp", "sector": "", "last_price": 206.33, "change_1d_pct": 5.340276714147141, "distance_from_ma200_pct": 55.2867137024927, "distance_from_ma50_pct": 14.528901159776497, "volatility_20d_pct": 129.20248363317458, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GT_CFD.US", "name": "GOODYEAR TIRE & RUBBER CO", "sector": "", "last_price": 6.6, "change_1d_pct": -6.647807637906656, "distance_from_ma200_pct": -19.067063973807162, "distance_from_ma50_pct": -5.438707089231487, "volatility_20d_pct": 91.97055948582533, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "TSCO_CFD.US", "name": "TRACTOR SUPPLY COMPANY", "sector": "", "last_price": 30.97, "change_1d_pct": -4.941682013505222, "distance_from_ma200_pct": -40.941691123328326, "distance_from_ma50_pct": -28.859547567855635, "volatility_20d_pct": 73.43852653574369, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CDW_CFD.US", "name": "CDW Corp", "sector": "", "last_price": 105.95, "change_1d_pct": -22.522851919561237, "distance_from_ma200_pct": -26.021248903759897, "distance_from_ma50_pct": -15.385807177072463, "volatility_20d_pct": 133.8807652870453, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SMIN_CFD.UK", "name": "SMITHS GROUP PLC", "sector": "", "last_price": 2557.0, "change_1d_pct": 4.6235679214402525, "distance_from_ma200_pct": 14.883274190387418, "distance_from_ma50_pct": 3.9730049158046343, "volatility_20d_pct": 101.30183705216716, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}], "output_schema": {"selected_stocks": [{"symbol": "string", "mean_reversion_score": "integer 0-100", "selection_reason": "short, concrete, indicator-based"}], "rejected_common_reasons": ["string"]}}Output JSON
{
"selected_stocks": [
{
"symbol": "CTEC_CFD.UK",
"selection_reason": "Sharp selloff (-9.34% 1d) with price well below MA50 (-11.11%) and MA200 (-16.70%): classic short-term oversold mean-reversion setup (earnings/news unknown).",
"mean_reversion_score": 82
},
{
"symbol": "MNDI_CFD.UK",
"selection_reason": "Down day (-6.70% 1d) and meaningfully below MA50 (-7.46%) and MA200 (-16.48%), indicating downside stretch with room to snap back over 2–10 sessions (earnings/news unknown).",
"mean_reversion_score": 77
},
{
"symbol": "TPK_CFD.UK",
"selection_reason": "Mild pullback (-1.21% 1d) with price below MA50 (-4.98%) while near MA200 (+0.53%): candidate for rebound toward MA50/MA200 confluence (earnings/news unknown).",
"mean_reversion_score": 64
},
{
"symbol": "SBT_CFD.FR",
"selection_reason": "Moderate down move (-3.62% 1d) with price slightly below MA50 (-2.09%) and MA200 (-2.47%) plus comparatively lower 20d volatility (44.83%): cleaner mean-reversion profile vs higher-vol names (earnings/news unknown).",
"mean_reversion_score": 61
},
{
"symbol": "ASHM_CFD.UK",
"selection_reason": "Strongly extended above MA50 (+24.89%) and MA200 (+40.46%) after continued strength (+1.41% 1d): potential short-side mean reversion via pullback toward moving averages (earnings/news unknown).",
"mean_reversion_score": 70
}
],
"rejected_common_reasons": [
"Extreme 1-day moves suggesting elevated event/binary risk (e.g., very large gap-like % change) with no confirming news/earnings data",
"Very low-priced/penny-like instruments with very high reported volatility (potential liquidity/market-microstructure noise)",
"Missing/invalid key technicals (e.g., MA200 null) reducing signal reliability",
"Too close to MA50/MA200 with minimal stretch (weak mean-reversion edge)",
"Non-EU region symbols present in the input universe (excluded for EU scan)"
]
}#2880 • openrouter • openai/gpt-5.2-pro • 2026-05-10T11:31:58.373931+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": 253.14, "unrealized_pnl": 44.13356315388609, "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": "AUTO_CFD.UK", "qty": 0.0, "avg_price": 482.8, "last_price": 482.8, "unrealized_pnl": 0.0, "opened_at": "2026-04-03T10:08:21.824313+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": 0.0, "avg_price": 342.92, "last_price": 342.92, "unrealized_pnl": 0.0, "opened_at": "2026-03-20T10:26:40.341409+00:00"}, {"symbol": "CDW_CFD.US", "qty": 28.66698518872432, "avg_price": 104.65, "last_price": 104.65, "unrealized_pnl": 0.0, "opened_at": "2026-05-09T18:07:46.147407+00:00"}, {"symbol": "CLX_CFD.US", "qty": 0.0, "avg_price": 100.96000000000001, "last_price": 105.17, "unrealized_pnl": 0.0, "opened_at": "2026-04-03T18:06:55.972569+00:00"}, {"symbol": "COTY_CFD.US", "qty": 0.0, "avg_price": 2.005, "last_price": 2.175, "unrealized_pnl": 0.0, "opened_at": "2026-03-29T18:14:52.152268+00:00"}, {"symbol": "CRST_CFD.UK", "qty": 29.013539651837522, "avg_price": 103.4, "last_price": 74.5, "unrealized_pnl": -838.4912959381046, "opened_at": "2026-04-07T18:08:48.203875+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": 0.0, "avg_price": 47.235, "last_price": 40.870000000000005, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "DLTR_CFD.US", "qty": 30.060120240480963, "avg_price": 99.8, "last_price": 94.245, "unrealized_pnl": -166.98396793587153, "opened_at": "2026-04-10T18:00:56.644490+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": "EEFT_CFD.US", "qty": 0.0, "avg_price": 63.91, "last_price": 63.91, "unrealized_pnl": 0.0, "opened_at": "2026-04-03T18:06:55.972569+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": 0.0, "avg_price": 437.5, "last_price": 348.5, "unrealized_pnl": 0.0, "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": 1123.245, "unrealized_pnl": -11.082924579345486, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "FIS_CFD.US", "qty": 68.88633754305397, "avg_price": 43.55, "last_price": 43.504999999999995, "unrealized_pnl": -3.099885189437546, "opened_at": "2026-04-10T18:00:56.644490+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": 284.2, "last_price": 297.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "HAS_CFD.UK", "qty": 92.36453201970444, "avg_price": 32.48, "last_price": 32.56, "unrealized_pnl": 7.389162561576854, "opened_at": "2026-04-07T18:08:48.203875+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1236.0, "last_price": 1236.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-28T10:05:22.022266+00:00"}, {"symbol": "ICG_CFD.UK", "qty": 0.0, "avg_price": 1496.0, "last_price": 1876.0, "unrealized_pnl": 0.0, "opened_at": "2026-04-07T10:08:43.931517+00:00"}, {"symbol": "ITRK_CFD.UK", "qty": 0.0, "avg_price": 3620.0, "last_price": 3620.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-28T10:05:22.022266+00:00"}, {"symbol": "IWG_CFD.UK", "qty": 0.0, "avg_price": 185.0, "last_price": 172.2, "unrealized_pnl": 0.0, "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": 16.129032258064516, "avg_price": 186.0, "last_price": 181.4, "unrealized_pnl": -74.19354838709668, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 0.0, "avg_price": 132.9, "last_price": 139.0, "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": 0.0, "avg_price": 1215.0, "last_price": 1087.73, "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": 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": "TSCO_CFD.US", "qty": 98.0392156862745, "avg_price": 30.6, "last_price": 30.6, "unrealized_pnl": 0.0, "opened_at": "2026-05-09T18:07:46.147407+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": 521.37, "unrealized_pnl": -77.5224215246639, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 0.0, "avg_price": 461.2, "last_price": 457.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-30T10:23:56.039732+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 232.09999999999997, "last_price": 232.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "ZS_CFD.US", "qty": 0.0, "avg_price": 159.76, "last_price": 138.82, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "CTEC_CFD.UK", "mean_reversion_score": 82, "selection_reason": "Sharp selloff (-9.34% 1d) with price well below MA50 (-11.11%) and MA200 (-16.70%): classic short-term oversold mean-reversion setup (earnings/news unknown)."}, {"symbol": "MNDI_CFD.UK", "mean_reversion_score": 77, "selection_reason": "Down day (-6.70% 1d) and meaningfully below MA50 (-7.46%) and MA200 (-16.48%), indicating downside stretch with room to snap back over 2–10 sessions (earnings/news unknown)."}, {"symbol": "TPK_CFD.UK", "mean_reversion_score": 64, "selection_reason": "Mild pullback (-1.21% 1d) with price below MA50 (-4.98%) while near MA200 (+0.53%): candidate for rebound toward MA50/MA200 confluence (earnings/news unknown)."}, {"symbol": "SBT_CFD.FR", "mean_reversion_score": 61, "selection_reason": "Moderate down move (-3.62% 1d) with price slightly below MA50 (-2.09%) and MA200 (-2.47%) plus comparatively lower 20d volatility (44.83%): cleaner mean-reversion profile vs higher-vol names (earnings/news unknown)."}, {"symbol": "ASHM_CFD.UK", "mean_reversion_score": 70, "selection_reason": "Strongly extended above MA50 (+24.89%) and MA200 (+40.46%) after continued strength (+1.41% 1d): potential short-side mean reversion via pullback toward moving averages (earnings/news unknown)."}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}Output JSON
{
"actions": {
"buy": [],
"hold": [
{
"reason": "Hold: position is modestly profitable and there is no new risk/event data provided to justify trimming; also portfolio is already at max positions/leverage so rotating without a clear edge would be churn.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Hold: newly opened and currently flat; avoid overtrading immediately after entry without new information.",
"symbol": "CDW_CFD.US"
},
{
"reason": "Hold: large drawdown, but no news/fundamental catalyst is provided to justify a forced exit; selling purely on P&L would be overtrading and may conflict with mean-reversion intent.",
"symbol": "CRST_CFD.UK"
},
{
"reason": "Hold: down but not accompanied by any provided risk event; maintain mean-reversion stance rather than churning.",
"symbol": "DLTR_CFD.US"
},
{
"reason": "Hold: near flat; no clear improvement opportunity that justifies rotation given max positions/leverage constraints.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Hold: near flat; keep exposure rather than rotate without stronger conviction signal.",
"symbol": "FIS_CFD.US"
},
{
"reason": "Hold: small gain and no new information suggesting exit; keep to avoid unnecessary turnover.",
"symbol": "HAS_CFD.UK"
},
{
"reason": "Hold: mild loss; absent any provided risk event, avoid selling into weakness purely to fund new buys.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Hold: newly opened and flat; avoid immediate rotation (overtrading).",
"symbol": "TSCO_CFD.US"
},
{
"reason": "Hold: modest loss; no catalyst/risk event provided to justify exit; maintain mean-reversion posture.",
"symbol": "ULTA_CFD.US"
}
],
"sell": []
},
"portfolio_rationale": "No trades this run. The portfolio is already at the strategy limits (10 active positions and ~3.0x gross exposure via fixed ~$3k sizing). While there are attractive mean-reversion candidates (e.g., CTEC_CFD.UK, MNDI_CFD.UK), adding them would require selling existing holdings; without additional comparative edge signals or risk-event data, rotating would be marginal and would violate the 'avoid overtrading' principle. Maintain current positions and reassess on the next run when clearer relative opportunities or risk constraints emerge."
}Selection logs
#1128 • stage1 • 2026-05-10T11:31:58.371409+00:00
{
"selected_stocks": [
{
"symbol": "CTEC_CFD.UK",
"selection_reason": "Sharp selloff (-9.34% 1d) with price well below MA50 (-11.11%) and MA200 (-16.70%): classic short-term oversold mean-reversion setup (earnings/news unknown).",
"mean_reversion_score": 82
},
{
"symbol": "MNDI_CFD.UK",
"selection_reason": "Down day (-6.70% 1d) and meaningfully below MA50 (-7.46%) and MA200 (-16.48%), indicating downside stretch with room to snap back over 2–10 sessions (earnings/news unknown).",
"mean_reversion_score": 77
},
{
"symbol": "TPK_CFD.UK",
"selection_reason": "Mild pullback (-1.21% 1d) with price below MA50 (-4.98%) while near MA200 (+0.53%): candidate for rebound toward MA50/MA200 confluence (earnings/news unknown).",
"mean_reversion_score": 64
},
{
"symbol": "SBT_CFD.FR",
"selection_reason": "Moderate down move (-3.62% 1d) with price slightly below MA50 (-2.09%) and MA200 (-2.47%) plus comparatively lower 20d volatility (44.83%): cleaner mean-reversion profile vs higher-vol names (earnings/news unknown).",
"mean_reversion_score": 61
},
{
"symbol": "ASHM_CFD.UK",
"selection_reason": "Strongly extended above MA50 (+24.89%) and MA200 (+40.46%) after continued strength (+1.41% 1d): potential short-side mean reversion via pullback toward moving averages (earnings/news unknown).",
"mean_reversion_score": 70
}
],
"rejected_common_reasons": [
"Extreme 1-day moves suggesting elevated event/binary risk (e.g., very large gap-like % change) with no confirming news/earnings data",
"Very low-priced/penny-like instruments with very high reported volatility (potential liquidity/market-microstructure noise)",
"Missing/invalid key technicals (e.g., MA200 null) reducing signal reliability",
"Too close to MA50/MA200 with minimal stretch (weak mean-reversion edge)",
"Non-EU region symbols present in the input universe (excluded for EU scan)"
]
}