Arena run #936
meanrev-v1 • openai • openai/gpt-5.2-pro • US • success
Run status
as_of: 2026-03-29T18:14:52.152268+00:00
started_at: 2026-03-29T20:16:17.495233+00:00
finished_at: 2026-03-29T20:18:10.118209+00:00
duration_ms: 112621
Inputs
{
"as_of": "2026-03-29T18:14:52.152268+00:00",
"dry_run": false,
"selected": [
{
"symbol": "UTG_CFD.UK",
"selection_reason": "Deeply below trend: -32.1% vs MA200 and -13.5% vs MA50 with a sharp -8.3% 1D drop (oversold setup).",
"mean_reversion_score": 82
},
{
"symbol": "COTY_CFD.US",
"selection_reason": "Strong multi-timeframe oversold: -45.2% vs MA200 and -22.1% vs MA50; modest -3.8% 1D continuation suggests downside extension.",
"mean_reversion_score": 80
},
{
"symbol": "ROR_CFD.UK",
"selection_reason": "Pullback below key averages: -7.5% vs MA50 and -3.4% vs MA200 with a -7.8% 1D selloff (mean-reversion candidate).",
"mean_reversion_score": 72
},
{
"symbol": "NVAX_CFD.US",
"selection_reason": "Short-term oversold: -8.0% vs MA50 and -10.7% 1D drop; 20D vol elevated but not an extreme outlier in this list.",
"mean_reversion_score": 68
},
{
"symbol": "LRE_CFD.UK",
"selection_reason": "Near MA200 (+0.4%) but below MA50 (-6.4%) after a -7.4% 1D move (short-term oversold vs intermediate trend).",
"mean_reversion_score": 65
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"MSLH_CFD.UK",
"MCG_CFD.UK",
"LMP_CFD.UK",
"SPX_CFD.UK",
"FUTR_CFD.UK",
"JDW_CFD.UK",
"SHC_CFD.UK",
"INVP_CFD.UK",
"SAFE_CFD.UK",
"RHIM_CFD.UK",
"UTG_CFD.UK",
"CBG_CFD.UK",
"RSW_CFD.UK",
"DLN_CFD.UK",
"TPK_CFD.UK",
"EMG_CFD.UK",
"PZC_CFD.UK",
"DOM_CFD.UK",
"OCDO_CFD.UK",
"HWDN_CFD.UK",
"LRE_CFD.UK",
"STJ_CFD.UK",
"UN0_CFD.DE",
"LIO_CFD.UK",
"BBY_CFD.UK",
"CPG_CFD.UK",
"MAB_CFD.UK",
"TRST_CFD.UK",
"KGF_CFD.UK",
"PSN_CFD.UK",
"IPO_CFD.UK",
"MRNA_CFD.US",
"GROW_CFD.UK",
"GRG_CFD.UK",
"IWG_CFD.UK",
"SRP_CFD.UK",
"SYNT_CFD.UK",
"FII_CFD.FR",
"WKP_CFD.UK",
"HIK_CFD.UK",
"ATG_CFD.UK",
"ROR_CFD.UK",
"COTY_CFD.US",
"UKW_CFD.UK",
"HMSO_CFD.UK",
"HYQ_CFD.DE",
"NVAX_CFD.US"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Highest-quality US candidate provided: strong multi-timeframe oversold per selection reason (-45.2% vs MA200, -22.1% vs MA50). Add one new mean-reversion position while staying within leverage/position limits and avoiding overtrading.",
"symbol": "COTY_CFD.US",
"position_size": 3000
}
],
"hold": [
{
"reason": "Currently in a drawdown but no new risk/event information provided; keep position for mean-reversion rather than realizing losses without a clearer alternative.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Position is materially below entry; absent any confirmed adverse catalyst in the provided data, maintain to allow for a potential mean-reversion bounce.",
"symbol": "CSGP_CFD.US"
},
{
"reason": "Down since entry; no new information provided to justify exiting. HOLD to avoid churn.",
"symbol": "EZJ_CFD.UK"
},
{
"reason": "Down since entry; no incremental signal provided that clearly improves by rotating out today. Maintain exposure and avoid overtrading.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Moderate drawdown; no risk/event flag provided. HOLD consistent with mean-reversion and churn-avoidance.",
"symbol": "IWG_CFD.UK"
},
{
"reason": "In drawdown; no new risk information provided. HOLD to avoid unnecessary turnover.",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Slightly down; not a clear improvement to rotate away given constraints and lack of new negative information. HOLD.",
"symbol": "ULTA_CFD.US"
},
{
"reason": "Large drawdown; no provided catalyst/constraint breach requiring a forced sell. HOLD to avoid locking losses without a better defined replacement.",
"symbol": "ZS_CFD.US"
}
],
"sell": []
},
"portfolio_rationale": "No sells: current open positions are mostly in drawdowns and no explicit risk/event trigger was provided to justify realizing losses today; selling would risk churn. Add only one new position (COTY) despite capacity for two buys to stay conservative and avoid overtrading, while still incrementally improving the portfolio with a high-scoring, clearly oversold US mean-reversion setup. Resulting positions remain within max_positions (<=10) and gross leverage limits."
}Prompts & responses
#1828 • openrouter • openai/gpt-5.2-pro • 2026-03-29T20:16:17.539421+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": "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": "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": "FUTR_CFD.UK", "name": "FUTURE PLC", "sector": "", "last_price": 419.8, "change_1d_pct": -21.238273921200744, "distance_from_ma200_pct": -37.8057811437588, "distance_from_ma50_pct": -23.777028015845957, "volatility_20d_pct": 154.26286041137905, "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": "SHC_CFD.UK", "name": "SHAFTESBURY CAPITAL PLC", "sector": "", "last_price": 140.4, "change_1d_pct": -2.9045643153526868, "distance_from_ma200_pct": 0.26963533347688085, "distance_from_ma50_pct": -0.771073778544229, "volatility_20d_pct": 63.75522821252001, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": "SAFE_CFD.UK", "name": "SAFESTORE HOLDINGS PLC", "sector": "", "last_price": 708.0, "change_1d_pct": 0.14144271570013522, "distance_from_ma200_pct": 7.079918522466522, "distance_from_ma50_pct": -2.535991476029087, "volatility_20d_pct": 107.99712610776675, "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": "RSW_CFD.UK", "name": "RENISHAW PLC", "sector": "", "last_price": 4100.0, "change_1d_pct": 18.155619596541793, "distance_from_ma200_pct": 36.779911314574385, "distance_from_ma50_pct": 14.333028240759926, "volatility_20d_pct": 92.61568245477878, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DLN_CFD.UK", "name": "DERWENT LONDON PLC", "sector": "", "last_price": 1953.0, "change_1d_pct": 10.401356698699837, "distance_from_ma200_pct": 5.069478604951705, "distance_from_ma50_pct": 12.150447212111025, "volatility_20d_pct": 115.39088732649292, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "TPK_CFD.UK", "name": "TRAVIS PERKINS PLC", "sector": "", "last_price": 601.57, "change_1d_pct": -1.21029986533977, "distance_from_ma200_pct": 0.5267641208837714, "distance_from_ma50_pct": -4.983077425595306, "volatility_20d_pct": 108.19399806448348, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "EMG_CFD.UK", "name": "MAN GROUP PLC/JERSEY", "sector": "", "last_price": 269.6, "change_1d_pct": 2.353834472285521, "distance_from_ma200_pct": 42.186331073171914, "distance_from_ma50_pct": 15.516783354614262, "volatility_20d_pct": 86.92367167139048, "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": "DOM_CFD.UK", "name": "DOMINO'S PIZZA GROUP PLC", "sector": "", "last_price": 183.13, "change_1d_pct": -0.3102885138813294, "distance_from_ma200_pct": -15.070952368916624, "distance_from_ma50_pct": 1.0777282376278619, "volatility_20d_pct": 87.92203351330001, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": "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": "UN0_CFD.DE", "name": "UNIPER SE", "sector": "", "last_price": 40.447, "change_1d_pct": 3.1811224489795897, "distance_from_ma200_pct": 15.001665444298329, "distance_from_ma50_pct": 11.761744419373343, "volatility_20d_pct": 121.66431841152988, "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": "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": "CPG_CFD.UK", "name": "COMPASS GROUP PLC", "sector": "", "last_price": 2141.0, "change_1d_pct": -3.904847396768407, "distance_from_ma200_pct": -12.763815098729692, "distance_from_ma50_pct": -3.1255472094411263, "volatility_20d_pct": 96.30888746538716, "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": "TRST_CFD.UK", "name": "TRUSTPILOT AS", "sector": "", "last_price": 193.5, "change_1d_pct": 44.080416976917334, "distance_from_ma200_pct": -9.566423578720663, "distance_from_ma50_pct": 7.968463165177786, "volatility_20d_pct": 306.1390586005606, "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": "PSN_CFD.UK", "name": "PERSIMMON PLC", "sector": "", "last_price": 1125.0, "change_1d_pct": -18.181818181818176, "distance_from_ma200_pct": -10.441765693528215, "distance_from_ma50_pct": -17.60321899687448, "volatility_20d_pct": 125.39714948121237, "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": "MRNA_CFD.US", "name": "MODERNA INC", "sector": "", "last_price": 51.1, "change_1d_pct": -2.4995229917954553, "distance_from_ma200_pct": 54.45369185128317, "distance_from_ma50_pct": 5.162641948986857, "volatility_20d_pct": 139.59044391419934, "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": "GRG_CFD.UK", "name": "GREGGS PLC", "sector": "", "last_price": 1529.0, "change_1d_pct": -2.9206349206349236, "distance_from_ma200_pct": -8.939548634961259, "distance_from_ma50_pct": -6.2632574039152455, "volatility_20d_pct": 114.30891013276798, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IWG_CFD.UK", "name": "IWG PLC", "sector": "", "last_price": 177.0, "change_1d_pct": -26.786896095301127, "distance_from_ma200_pct": -17.645939421376646, "distance_from_ma50_pct": -22.14236071400294, "volatility_20d_pct": 154.02502086657427, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SRP_CFD.UK", "name": "SERCO GROUP PLC", "sector": "", "last_price": 300.0, "change_1d_pct": -0.3984063745019917, "distance_from_ma200_pct": 34.11120814305375, "distance_from_ma50_pct": 6.89280433272168, "volatility_20d_pct": 77.89780733903845, "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": "SYNT_CFD.UK", "name": "SYNTHOMER PLC", "sector": "", "last_price": 35.8, "change_1d_pct": 79.17917917917916, "distance_from_ma200_pct": -51.1200405785585, "distance_from_ma50_pct": -25.007017499759108, "volatility_20d_pct": 569.2067525949132, "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": "FII_CFD.FR", "name": "Lisi Group", "sector": "", "last_price": 51.8, "change_1d_pct": -0.38461538461539435, "distance_from_ma200_pct": 7.480575427761815, "distance_from_ma50_pct": -5.6333948477291, "volatility_20d_pct": 93.12522215333232, "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": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 320.0, "change_1d_pct": -1.9908116385911168, "distance_from_ma200_pct": -26.480622819403788, "distance_from_ma50_pct": 3.7371301122954392, "volatility_20d_pct": 8967.547090049815, "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": "ROR_CFD.UK", "name": "ROTORK PLC", "sector": "", "last_price": 315.64, "change_1d_pct": -7.815420560747666, "distance_from_ma200_pct": -3.440121571713639, "distance_from_ma50_pct": -7.465605958975752, "volatility_20d_pct": 114.53961834922319, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "COTY_CFD.US", "name": "Coty Inc", "sector": "", "last_price": 2.05, "change_1d_pct": -3.7558685446009377, "distance_from_ma200_pct": -45.233292814875185, "distance_from_ma50_pct": -22.100623195014435, "volatility_20d_pct": 76.36828551252826, "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.7, "change_1d_pct": 1.6658253407370038, "distance_from_ma200_pct": -9.705655680854775, "distance_from_ma50_pct": -2.946868470357833, "volatility_20d_pct": 63.21786303082545, "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": "HYQ_CFD.DE", "name": "HYPOPORT SE", "sector": "", "last_price": 71.617, "change_1d_pct": -8.53512132822477, "distance_from_ma200_pct": -47.20693489030992, "distance_from_ma50_pct": -19.13131515243628, "volatility_20d_pct": 123.23681689318084, "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": "NVAX_CFD.US", "name": "NOVAVAX INC", "sector": "", "last_price": 8.61, "change_1d_pct": -10.68464730290457, "distance_from_ma200_pct": 7.390753918016313, "distance_from_ma50_pct": -8.001025772534954, "volatility_20d_pct": 178.31142153329148, "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": "UTG_CFD.UK",
"selection_reason": "Deeply below trend: -32.1% vs MA200 and -13.5% vs MA50 with a sharp -8.3% 1D drop (oversold setup).",
"mean_reversion_score": 82
},
{
"symbol": "COTY_CFD.US",
"selection_reason": "Strong multi-timeframe oversold: -45.2% vs MA200 and -22.1% vs MA50; modest -3.8% 1D continuation suggests downside extension.",
"mean_reversion_score": 80
},
{
"symbol": "ROR_CFD.UK",
"selection_reason": "Pullback below key averages: -7.5% vs MA50 and -3.4% vs MA200 with a -7.8% 1D selloff (mean-reversion candidate).",
"mean_reversion_score": 72
},
{
"symbol": "NVAX_CFD.US",
"selection_reason": "Short-term oversold: -8.0% vs MA50 and -10.7% 1D drop; 20D vol elevated but not an extreme outlier in this list.",
"mean_reversion_score": 68
},
{
"symbol": "LRE_CFD.UK",
"selection_reason": "Near MA200 (+0.4%) but below MA50 (-6.4%) after a -7.4% 1D move (short-term oversold vs intermediate trend).",
"mean_reversion_score": 65
}
],
"rejected_common_reasons": [
"Large positive 1D spikes and/or trading well above MA50/MA200 (overbought; less mean-reversion long setup)",
"Extreme 1D moves (e.g., >~18–25%) suggesting potentially event-driven/binary behavior",
"Volatility outliers (very high 20D vol) indicating unstable price action for short-horizon mean reversion"
]
}#1829 • openrouter • openai/gpt-5.2-pro • 2026-03-29T20:17:19.290074+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": "ADBE_CFD.US", "qty": 12.025494047380446, "avg_price": 249.47, "last_price": 235.0, "unrealized_pnl": -174.00889886559506, "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": 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": "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": 39.815, "unrealized_pnl": -471.26071768815507, "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": 351.6, "unrealized_pnl": -589.0285714285712, "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": 1014.37, "unrealized_pnl": -300.7956289193813, "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": "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": "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": 16.216216216216218, "avg_price": 185.0, "last_price": 172.2, "unrealized_pnl": -207.56756756756778, "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": 132.9, "last_price": 132.9, "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": 1089.0, "unrealized_pnl": -311.1111111111111, "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": 510.23, "unrealized_pnl": -139.96636771300464, "opened_at": "2026-03-15T18:15:23.812047+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": 18.778167250876315, "avg_price": 159.76, "last_price": 133.3, "unrealized_pnl": -496.8703054581869, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "UTG_CFD.UK", "mean_reversion_score": 82, "selection_reason": "Deeply below trend: -32.1% vs MA200 and -13.5% vs MA50 with a sharp -8.3% 1D drop (oversold setup)."}, {"symbol": "COTY_CFD.US", "mean_reversion_score": 80, "selection_reason": "Strong multi-timeframe oversold: -45.2% vs MA200 and -22.1% vs MA50; modest -3.8% 1D continuation suggests downside extension."}, {"symbol": "ROR_CFD.UK", "mean_reversion_score": 72, "selection_reason": "Pullback below key averages: -7.5% vs MA50 and -3.4% vs MA200 with a -7.8% 1D selloff (mean-reversion candidate)."}, {"symbol": "NVAX_CFD.US", "mean_reversion_score": 68, "selection_reason": "Short-term oversold: -8.0% vs MA50 and -10.7% 1D drop; 20D vol elevated but not an extreme outlier in this list."}, {"symbol": "LRE_CFD.UK", "mean_reversion_score": 65, "selection_reason": "Near MA200 (+0.4%) but below MA50 (-6.4%) after a -7.4% 1D move (short-term oversold vs intermediate trend)."}], "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-quality US candidate provided: strong multi-timeframe oversold per selection reason (-45.2% vs MA200, -22.1% vs MA50). Add one new mean-reversion position while staying within leverage/position limits and avoiding overtrading.",
"symbol": "COTY_CFD.US",
"position_size": 3000
}
],
"hold": [
{
"reason": "Currently in a drawdown but no new risk/event information provided; keep position for mean-reversion rather than realizing losses without a clearer alternative.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Position is materially below entry; absent any confirmed adverse catalyst in the provided data, maintain to allow for a potential mean-reversion bounce.",
"symbol": "CSGP_CFD.US"
},
{
"reason": "Down since entry; no new information provided to justify exiting. HOLD to avoid churn.",
"symbol": "EZJ_CFD.UK"
},
{
"reason": "Down since entry; no incremental signal provided that clearly improves by rotating out today. Maintain exposure and avoid overtrading.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Moderate drawdown; no risk/event flag provided. HOLD consistent with mean-reversion and churn-avoidance.",
"symbol": "IWG_CFD.UK"
},
{
"reason": "In drawdown; no new risk information provided. HOLD to avoid unnecessary turnover.",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Slightly down; not a clear improvement to rotate away given constraints and lack of new negative information. HOLD.",
"symbol": "ULTA_CFD.US"
},
{
"reason": "Large drawdown; no provided catalyst/constraint breach requiring a forced sell. HOLD to avoid locking losses without a better defined replacement.",
"symbol": "ZS_CFD.US"
}
],
"sell": []
},
"portfolio_rationale": "No sells: current open positions are mostly in drawdowns and no explicit risk/event trigger was provided to justify realizing losses today; selling would risk churn. Add only one new position (COTY) despite capacity for two buys to stay conservative and avoid overtrading, while still incrementally improving the portfolio with a high-scoring, clearly oversold US mean-reversion setup. Resulting positions remain within max_positions (<=10) and gross leverage limits."
}Selection logs
#897 • stage1 • 2026-03-29T20:17:19.287655+00:00
{
"selected_stocks": [
{
"symbol": "UTG_CFD.UK",
"selection_reason": "Deeply below trend: -32.1% vs MA200 and -13.5% vs MA50 with a sharp -8.3% 1D drop (oversold setup).",
"mean_reversion_score": 82
},
{
"symbol": "COTY_CFD.US",
"selection_reason": "Strong multi-timeframe oversold: -45.2% vs MA200 and -22.1% vs MA50; modest -3.8% 1D continuation suggests downside extension.",
"mean_reversion_score": 80
},
{
"symbol": "ROR_CFD.UK",
"selection_reason": "Pullback below key averages: -7.5% vs MA50 and -3.4% vs MA200 with a -7.8% 1D selloff (mean-reversion candidate).",
"mean_reversion_score": 72
},
{
"symbol": "NVAX_CFD.US",
"selection_reason": "Short-term oversold: -8.0% vs MA50 and -10.7% 1D drop; 20D vol elevated but not an extreme outlier in this list.",
"mean_reversion_score": 68
},
{
"symbol": "LRE_CFD.UK",
"selection_reason": "Near MA200 (+0.4%) but below MA50 (-6.4%) after a -7.4% 1D move (short-term oversold vs intermediate trend).",
"mean_reversion_score": 65
}
],
"rejected_common_reasons": [
"Large positive 1D spikes and/or trading well above MA50/MA200 (overbought; less mean-reversion long setup)",
"Extreme 1D moves (e.g., >~18–25%) suggesting potentially event-driven/binary behavior",
"Volatility outliers (very high 20D vol) indicating unstable price action for short-horizon mean reversion"
]
}