Arena run #646
meanrev-v1 • openai • openai/gpt-5.2-pro • EU • success
Run status
as_of: 2026-03-15T10:35:48.762746+00:00
started_at: 2026-03-15T16:23:22.673490+00:00
finished_at: 2026-03-15T16:25:51.537234+00:00
duration_ms: 148861
Inputs
{
"as_of": "2026-03-15T10:35:48.762746+00:00",
"dry_run": false,
"selected": [
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "Large 1D selloff (-20.82%) with price deeply below MA200 (-37.68%) and MA50 (-24.30%); high but not anomalous 20D vol (153.6%) fits short-term snapback setup.",
"mean_reversion_score": 90
},
{
"symbol": "BYIT_CFD.UK",
"selection_reason": "Sharp 1D drop (-12.67%) while significantly below MA200 (-28.03%) and MA50 (-14.35%); 20D vol (87.8%) supports mean-reversion bounce potential.",
"mean_reversion_score": 85
},
{
"symbol": "TRN_CFD.UK",
"selection_reason": "Heavy 1D selloff (-12.93%) with price below MA200 (-22.56%) and MA50 (-12.56%); elevated 20D vol (131.1%) suggests oversold rebound window (2-10 days).",
"mean_reversion_score": 83
},
{
"symbol": "ICG_CFD.UK",
"selection_reason": "Down day (-13.36%) combined with below-MA positioning (MA200 -15.04%, MA50 -11.54%); comparatively lower 20D vol (72.6%) vs other selloffs can favor controlled mean reversion.",
"mean_reversion_score": 80
},
{
"symbol": "LTA_CFD.FR",
"selection_reason": "Notable pullback (-8.29%) with price below MA50 (-8.65%) and MA200 (-6.66%); moderate 20D vol (76.9%) supports a short-term reversion attempt while diversifying beyond UK listings.",
"mean_reversion_score": 75
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"ROR_CFD.UK",
"JDW_CFD.UK",
"UTG_CFD.UK",
"TRN_CFD.UK",
"WIX_CFD.UK",
"KGF_CFD.UK",
"RHIM_CFD.UK",
"SGRO_CFD.UK",
"OCDO_CFD.UK",
"LRE_CFD.UK",
"LIO_CFD.UK",
"SMIN_CFD.UK",
"BBY_CFD.UK",
"CCC_CFD.UK",
"ITV_CFD.UK",
"IMI_CFD.UK",
"FOXA_CFD.US",
"DOM_CFD.UK",
"TRST_CFD.UK",
"OSB_CFD.UK",
"IPO_CFD.UK",
"ATG_CFD.UK",
"BME_CFD.UK",
"WEIR_CFD.UK",
"BYIT_CFD.UK",
"WKP_CFD.UK",
"ANTO_CFD.UK",
"FUTR_CFD.UK",
"DPLM_CFD.UK",
"ADBE_CFD.US",
"LTA_CFD.FR",
"PWR_CFD.US",
"IGG_CFD.UK",
"WDC_CFD.US",
"AML_CFD.UK",
"FMC_CFD.US",
"GLPG_CFD.NL",
"ARMK_CFD.US",
"SBGI_CFD.US",
"ICG_CFD.UK",
"APD_CFD.US",
"SGL_CFD.DE",
"NXST_CFD.US",
"THG_CFD.UK",
"SHC_CFD.UK",
"STJ_CFD.UK",
"ABBV_CFD.US",
"UBI_CFD.FR"
]
}Outputs
{
"actions": {
"buy": [],
"hold": [
{
"reason": "Hold to avoid churn; no new information provided indicating a better risk/return swap today.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Hold despite drawdown; no objective exit trigger given, and prioritizing minimal turnover after addressing leverage.",
"symbol": "AMH_CFD.US"
},
{
"reason": "Hold; keep position while leverage is being managed via a single trim elsewhere.",
"symbol": "CSGP_CFD.US"
},
{
"reason": "Hold; large drawdown but no hard risk event supplied—avoid forced selling multiple losers in the same run.",
"symbol": "EZJ_CFD.UK"
},
{
"reason": "Hold; newly opened/flat and no basis provided to change.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Hold; newly opened/flat and no basis provided to change.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Hold; small drawdown and no clear improvement from swapping given leverage constraints.",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Hold; maintain while reducing leverage via a single-position trim to avoid overtrading.",
"symbol": "TMV_CFD.DE"
},
{
"reason": "Hold; moderate drawdown but no explicit exit signal provided.",
"symbol": "ZS_CFD.US"
}
],
"sell": [
{
"reason": "Risk control: with current unrealized losses, estimated equity is reduced while gross exposure remains high; trimming one ~$3k-sized position helps bring gross leverage back toward the 3.0x cap. Prefer exiting WPP here (material drawdown and not a top current mean-reversion candidate list) rather than churning multiple positions.",
"symbol": "WPP_CFD.UK"
}
]
},
"portfolio_rationale": "Primary action is risk management: current unrealized losses imply reduced equity versus initial, making the portfolio’s gross exposure more likely to exceed the 3.0x gross leverage limit. Selling one ~$3k-sized position (WPP_CFD.UK) reduces exposure with minimal turnover (1 sell, 0 buys). No new buys are added because adding exposure would likely re-violate the leverage cap; we keep remaining positions unchanged to avoid churn."
}Prompts & responses
#1276 • openrouter • openai/gpt-5.2-pro • 2026-03-15T16:23:22.723328+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": "ROR_CFD.UK", "name": "ROTORK PLC", "sector": "", "last_price": 371.2, "change_1d_pct": 8.538011695906423, "distance_from_ma200_pct": 13.511525838626781, "distance_from_ma50_pct": 8.597200345451439, "volatility_20d_pct": 70.27413083068154, "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": 664.5, "change_1d_pct": -11.22244488977956, "distance_from_ma200_pct": -5.680389661350038, "distance_from_ma50_pct": -6.526043574477869, "volatility_20d_pct": 5447.939299510829, "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": "TRN_CFD.UK", "name": "TRAINLINE PLC", "sector": "", "last_price": 206.0, "change_1d_pct": -12.93322062552832, "distance_from_ma200_pct": -22.557701091522887, "distance_from_ma50_pct": -12.560104316644482, "volatility_20d_pct": 131.09279103846345, "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": "WIX_CFD.UK", "name": "WICKES GROUP PLC", "sector": "", "last_price": 247.5, "change_1d_pct": 15.984816533108393, "distance_from_ma200_pct": 18.647646929530737, "distance_from_ma50_pct": 10.198455173494668, "volatility_20d_pct": 84.25206447406164, "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": 347.0, "change_1d_pct": 2.6020106445890034, "distance_from_ma200_pct": 18.583930168759967, "distance_from_ma50_pct": 6.639688157278489, "volatility_20d_pct": 88.64906606382688, "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": 2795.0, "change_1d_pct": 2.3809523809523725, "distance_from_ma200_pct": 6.811460460804897, "distance_from_ma50_pct": 10.895008018562113, "volatility_20d_pct": 141.33746334612064, "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": "SGRO_CFD.UK", "name": "SEGRO PLC", "sector": "", "last_price": 789.8, "change_1d_pct": 5.166444740346199, "distance_from_ma200_pct": 16.137238395282736, "distance_from_ma50_pct": 8.124180991500651, "volatility_20d_pct": 71.28658783635437, "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": "LRE_CFD.UK", "name": "LANCASHIRE HOLDINGS LTD", "sector": "", "last_price": 647.0, "change_1d_pct": -2.26586102719033, "distance_from_ma200_pct": 6.266967093949116, "distance_from_ma50_pct": -1.0131237932627712, "volatility_20d_pct": 79.5840954070324, "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": "CCC_CFD.UK", "name": "COMPUTACENTER PLC", "sector": "", "last_price": 3126.0, "change_1d_pct": -1.821608040201006, "distance_from_ma200_pct": 22.396205247786227, "distance_from_ma50_pct": 6.426296215091432, "volatility_20d_pct": 111.01536155240576, "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": "ITV_CFD.UK", "name": "ITV PLC", "sector": "", "last_price": 86.0, "change_1d_pct": 3.92749244712991, "distance_from_ma200_pct": 7.871211807633016, "distance_from_ma50_pct": 5.417994606521215, "volatility_20d_pct": 139.7485078641958, "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": 2774.0, "change_1d_pct": 4.7583081570997, "distance_from_ma200_pct": 25.227479847754264, "distance_from_ma50_pct": 6.661876238540865, "volatility_20d_pct": 87.69330898337377, "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": "FOXA_CFD.US", "name": "FOX CORP - CLASS A", "sector": "", "last_price": 57.38, "change_1d_pct": -0.5890505890505882, "distance_from_ma200_pct": -7.028367041896367, "distance_from_ma50_pct": -12.15177625495275, "volatility_20d_pct": 2991.8935446284513, "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": "TRST_CFD.UK", "name": "TRUSTPILOT AS", "sector": "", "last_price": 156.6, "change_1d_pct": -27.567067530064747, "distance_from_ma200_pct": -26.81677017545049, "distance_from_ma50_pct": -10.671300046318578, "volatility_20d_pct": 228.54402237564213, "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": 558.5, "change_1d_pct": -2.953953084274541, "distance_from_ma200_pct": 4.09458908497875, "distance_from_ma50_pct": -6.0211421300236605, "volatility_20d_pct": 3337.4077571102553, "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": 55.9, "change_1d_pct": -2.951388888888895, "distance_from_ma200_pct": 6.980220141944948, "distance_from_ma50_pct": -4.919036603619542, "volatility_20d_pct": 3048.7333361404435, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 313.0, "change_1d_pct": 0.3205128205128194, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 0.8343803356850588, "volatility_20d_pct": 2871.9337920464413, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BME_CFD.UK", "name": "B&M EUROPEAN VALUE RETAIL SA", "sector": "", "last_price": 187.88, "change_1d_pct": 1.0107526881720341, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 7.318666981973787, "volatility_20d_pct": 3503.713036055361, "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": "WEIR_CFD.UK", "name": "WEIR GROUP PLC/THE", "sector": "", "last_price": 2968.0, "change_1d_pct": -7.250000000000001, "distance_from_ma200_pct": 13.608616555186948, "distance_from_ma50_pct": -2.0329806894725966, "volatility_20d_pct": 126.53973442920609, "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": "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": "ANTO_CFD.UK", "name": "ANTOFAGASTA PLC", "sector": "", "last_price": 3679.0, "change_1d_pct": -3.3622274757026505, "distance_from_ma200_pct": 35.757421893125986, "distance_from_ma50_pct": -1.9752454322435997, "volatility_20d_pct": 123.31702281679799, "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": 423.6, "change_1d_pct": -20.82242990654205, "distance_from_ma200_pct": -37.68377383888033, "distance_from_ma50_pct": -24.301477407850992, "volatility_20d_pct": 153.59085037557008, "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": "DPLM_CFD.UK", "name": "DIPLOMA PLC", "sector": "", "last_price": 5220.0, "change_1d_pct": -5.434782608695654, "distance_from_ma200_pct": 4.8180942215069855, "distance_from_ma50_pct": -4.664614313757087, "volatility_20d_pct": 82.77890721911896, "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": "ADBE_CFD.US", "name": "Adobe Systems Incorporated", "sector": "", "last_price": 254.76, "change_1d_pct": -6.991347522908997, "distance_from_ma200_pct": -24.950575375976236, "distance_from_ma50_pct": -11.024807300743555, "volatility_20d_pct": 75.42837402664499, "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.55, "change_1d_pct": -8.290155440414503, "distance_from_ma200_pct": -6.659993998817693, "distance_from_ma50_pct": -8.646607227894187, "volatility_20d_pct": 76.90024899659345, "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": "PWR_CFD.US", "name": "Quanta Services Inc", "sector": "", "last_price": 563.08, "change_1d_pct": -0.3486417131227215, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 18.496058009769833, "volatility_20d_pct": 4344.4361931144, "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": "IGG_CFD.UK", "name": "IG GROUP HOLDINGS PLC", "sector": "", "last_price": 1356.0, "change_1d_pct": 3.1963470319634757, "distance_from_ma200_pct": 21.69129359819437, "distance_from_ma50_pct": 9.822701129829392, "volatility_20d_pct": 89.02278066392904, "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": "WDC_CFD.US", "name": "WESTERN DIGITAL CORP", "sector": "", "last_price": 277.84, "change_1d_pct": 0.33222591362125353, "distance_from_ma200_pct": 93.67833739443938, "distance_from_ma50_pct": 10.13762446177886, "volatility_20d_pct": 155.57328227015603, "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": "AML_CFD.UK", "name": "ASTON MARTIN LAGONDA GLOBAL", "sector": "", "last_price": 40.48, "change_1d_pct": -8.125283704039955, "distance_from_ma200_pct": -40.753533675571454, "distance_from_ma50_pct": -29.11725770639697, "volatility_20d_pct": 134.03421867122054, "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": "FMC_CFD.US", "name": "FMC Corporation", "sector": "", "last_price": 14.29, "change_1d_pct": 0.7757404795486478, "distance_from_ma200_pct": -47.23374086560298, "distance_from_ma50_pct": -4.264869427733053, "volatility_20d_pct": 124.54433559318134, "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": "GLPG_CFD.NL", "name": "Galapagos", "sector": "", "last_price": 28.28, "change_1d_pct": -0.07067137809186885, "distance_from_ma200_pct": 2.8954256106641596, "distance_from_ma50_pct": -0.9221110457131698, "volatility_20d_pct": 75.5045902569289, "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": "ARMK_CFD.US", "name": "Aramark Holdings", "sector": "", "last_price": 40.6, "change_1d_pct": 1.907630522088355, "distance_from_ma200_pct": 2.8443036034769387, "distance_from_ma50_pct": 2.8775301284195365, "volatility_20d_pct": 79.10676557514627, "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": "SBGI_CFD.US", "name": "SINCLAIR INC", "sector": "", "last_price": 14.31, "change_1d_pct": -1.919122686771757, "distance_from_ma200_pct": -1.4883451969544659, "distance_from_ma50_pct": -3.4439016490782848, "volatility_20d_pct": 151.16131595505473, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ICG_CFD.UK", "name": "ICG Plc", "sector": "", "last_price": 1719.0, "change_1d_pct": -13.356854838709676, "distance_from_ma200_pct": -15.041741119434038, "distance_from_ma50_pct": -11.540628787118589, "volatility_20d_pct": 72.59006184069659, "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": "APD_CFD.US", "name": "Air Products and Chemicals Inc", "sector": "", "last_price": 291.95, "change_1d_pct": 6.726375434107101, "distance_from_ma200_pct": 7.065615508103273, "distance_from_ma50_pct": 7.196228396444293, "volatility_20d_pct": 49.65127045001544, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SGL_CFD.DE", "name": "SGL Carbon SE", "sector": "", "last_price": 3.625, "change_1d_pct": -2.658431793770144, "distance_from_ma200_pct": 5.144388625262497, "distance_from_ma50_pct": -8.381859355412669, "volatility_20d_pct": 78.92643748151579, "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": "NXST_CFD.US", "name": "", "sector": "", "last_price": 236.39, "change_1d_pct": -3.392047079978755, "distance_from_ma200_pct": 18.26418454796057, "distance_from_ma50_pct": 5.009017653277881, "volatility_20d_pct": 103.87063237790765, "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": "THG_CFD.UK", "name": "THG PLC", "sector": "", "last_price": 35.48, "change_1d_pct": -20.090090090090097, "distance_from_ma200_pct": 4.031971945380275, "distance_from_ma50_pct": -18.256005234564732, "volatility_20d_pct": 150.3458448856807, "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": 142.4, "change_1d_pct": -1.0423905489923557, "distance_from_ma200_pct": 1.709599807723139, "distance_from_ma50_pct": 0.43432201895556855, "volatility_20d_pct": 63.20998562569682, "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": 1318.5, "change_1d_pct": -14.880568108457071, "distance_from_ma200_pct": 8.039658298052132, "distance_from_ma50_pct": -4.048142289072931, "volatility_20d_pct": 124.80261018220178, "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": "ABBV_CFD.US", "name": "AbbVie Inc", "sector": "", "last_price": 222.84, "change_1d_pct": -1.9535374868004163, "distance_from_ma200_pct": 3.8495495728509077, "distance_from_ma50_pct": -0.7733657261123961, "volatility_20d_pct": 49.04407754543012, "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": "UBI_CFD.FR", "name": "UBISoft Entertainment", "sector": "", "last_price": 4.051, "change_1d_pct": 1.681726907630532, "distance_from_ma200_pct": -46.56007704002717, "distance_from_ma50_pct": -14.953918501878949, "volatility_20d_pct": 84.88218245391758, "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": "FUTR_CFD.UK",
"selection_reason": "Large 1D selloff (-20.82%) with price deeply below MA200 (-37.68%) and MA50 (-24.30%); high but not anomalous 20D vol (153.6%) fits short-term snapback setup.",
"mean_reversion_score": 90
},
{
"symbol": "BYIT_CFD.UK",
"selection_reason": "Sharp 1D drop (-12.67%) while significantly below MA200 (-28.03%) and MA50 (-14.35%); 20D vol (87.8%) supports mean-reversion bounce potential.",
"mean_reversion_score": 85
},
{
"symbol": "TRN_CFD.UK",
"selection_reason": "Heavy 1D selloff (-12.93%) with price below MA200 (-22.56%) and MA50 (-12.56%); elevated 20D vol (131.1%) suggests oversold rebound window (2-10 days).",
"mean_reversion_score": 83
},
{
"symbol": "ICG_CFD.UK",
"selection_reason": "Down day (-13.36%) combined with below-MA positioning (MA200 -15.04%, MA50 -11.54%); comparatively lower 20D vol (72.6%) vs other selloffs can favor controlled mean reversion.",
"mean_reversion_score": 80
},
{
"symbol": "LTA_CFD.FR",
"selection_reason": "Notable pullback (-8.29%) with price below MA50 (-8.65%) and MA200 (-6.66%); moderate 20D vol (76.9%) supports a short-term reversion attempt while diversifying beyond UK listings.",
"mean_reversion_score": 75
}
],
"rejected_common_reasons": [
"Days to next earnings unknown (cannot confirm avoidance of earnings within 5 trading days)",
"Potentially event-driven moves cannot be ruled out due to extreme 1D % changes and missing news context",
"Volatility_20d_pct appears anomalously high for some symbols (data quality concern)",
"Distance_from_ma200_pct missing for some symbols (incomplete mean-reversion signal)",
"Some names are extended above MA50/MA200 after big up days (less suitable for long mean-reversion bounce candidates)"
]
}#1277 • openrouter • openai/gpt-5.2-pro • 2026-03-15T16:24:36.796538+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": 249.47, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T18:06:47.909233+00:00"}, {"symbol": "AMH_CFD.US", "qty": 101.09519797809605, "avg_price": 29.674999999999997, "last_price": 28.365000000000002, "unrealized_pnl": -132.43470935130534, "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": "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": 43.625, "unrealized_pnl": -229.27913623372496, "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": 372.6, "unrealized_pnl": -445.02857142857124, "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": 1127.4099999999999, "unrealized_pnl": 0.0, "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": 400.6, "last_price": 414.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+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": 14.684287812041115, "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": 1190.0, "unrealized_pnl": -61.72839506172839, "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": 627.4837900020916, "avg_price": 4.781, "last_price": 4.656, "unrealized_pnl": -78.43547375026145, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 0.0, "avg_price": 184.5, "last_price": 184.5, "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": "WPP_CFD.UK", "qty": 11.389521640091116, "avg_price": 263.4, "last_price": 238.0, "unrealized_pnl": -289.2938496583141, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "ZS_CFD.US", "qty": 18.778167250876315, "avg_price": 159.76, "last_price": 153.64, "unrealized_pnl": -114.92238357536313, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "FUTR_CFD.UK", "mean_reversion_score": 90, "selection_reason": "Large 1D selloff (-20.82%) with price deeply below MA200 (-37.68%) and MA50 (-24.30%); high but not anomalous 20D vol (153.6%) fits short-term snapback setup."}, {"symbol": "BYIT_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Sharp 1D drop (-12.67%) while significantly below MA200 (-28.03%) and MA50 (-14.35%); 20D vol (87.8%) supports mean-reversion bounce potential."}, {"symbol": "TRN_CFD.UK", "mean_reversion_score": 83, "selection_reason": "Heavy 1D selloff (-12.93%) with price below MA200 (-22.56%) and MA50 (-12.56%); elevated 20D vol (131.1%) suggests oversold rebound window (2-10 days)."}, {"symbol": "ICG_CFD.UK", "mean_reversion_score": 80, "selection_reason": "Down day (-13.36%) combined with below-MA positioning (MA200 -15.04%, MA50 -11.54%); comparatively lower 20D vol (72.6%) vs other selloffs can favor controlled mean reversion."}, {"symbol": "LTA_CFD.FR", "mean_reversion_score": 75, "selection_reason": "Notable pullback (-8.29%) with price below MA50 (-8.65%) and MA200 (-6.66%); moderate 20D vol (76.9%) supports a short-term reversion attempt while diversifying beyond UK listings."}], "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 to avoid churn; no new information provided indicating a better risk/return swap today.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Hold despite drawdown; no objective exit trigger given, and prioritizing minimal turnover after addressing leverage.",
"symbol": "AMH_CFD.US"
},
{
"reason": "Hold; keep position while leverage is being managed via a single trim elsewhere.",
"symbol": "CSGP_CFD.US"
},
{
"reason": "Hold; large drawdown but no hard risk event supplied—avoid forced selling multiple losers in the same run.",
"symbol": "EZJ_CFD.UK"
},
{
"reason": "Hold; newly opened/flat and no basis provided to change.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Hold; newly opened/flat and no basis provided to change.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Hold; small drawdown and no clear improvement from swapping given leverage constraints.",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Hold; maintain while reducing leverage via a single-position trim to avoid overtrading.",
"symbol": "TMV_CFD.DE"
},
{
"reason": "Hold; moderate drawdown but no explicit exit signal provided.",
"symbol": "ZS_CFD.US"
}
],
"sell": [
{
"reason": "Risk control: with current unrealized losses, estimated equity is reduced while gross exposure remains high; trimming one ~$3k-sized position helps bring gross leverage back toward the 3.0x cap. Prefer exiting WPP here (material drawdown and not a top current mean-reversion candidate list) rather than churning multiple positions.",
"symbol": "WPP_CFD.UK"
}
]
},
"portfolio_rationale": "Primary action is risk management: current unrealized losses imply reduced equity versus initial, making the portfolio’s gross exposure more likely to exceed the 3.0x gross leverage limit. Selling one ~$3k-sized position (WPP_CFD.UK) reduces exposure with minimal turnover (1 sell, 0 buys). No new buys are added because adding exposure would likely re-violate the leverage cap; we keep remaining positions unchanged to avoid churn."
}Selection logs
#635 • stage1 • 2026-03-15T16:24:36.794262+00:00
{
"selected_stocks": [
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "Large 1D selloff (-20.82%) with price deeply below MA200 (-37.68%) and MA50 (-24.30%); high but not anomalous 20D vol (153.6%) fits short-term snapback setup.",
"mean_reversion_score": 90
},
{
"symbol": "BYIT_CFD.UK",
"selection_reason": "Sharp 1D drop (-12.67%) while significantly below MA200 (-28.03%) and MA50 (-14.35%); 20D vol (87.8%) supports mean-reversion bounce potential.",
"mean_reversion_score": 85
},
{
"symbol": "TRN_CFD.UK",
"selection_reason": "Heavy 1D selloff (-12.93%) with price below MA200 (-22.56%) and MA50 (-12.56%); elevated 20D vol (131.1%) suggests oversold rebound window (2-10 days).",
"mean_reversion_score": 83
},
{
"symbol": "ICG_CFD.UK",
"selection_reason": "Down day (-13.36%) combined with below-MA positioning (MA200 -15.04%, MA50 -11.54%); comparatively lower 20D vol (72.6%) vs other selloffs can favor controlled mean reversion.",
"mean_reversion_score": 80
},
{
"symbol": "LTA_CFD.FR",
"selection_reason": "Notable pullback (-8.29%) with price below MA50 (-8.65%) and MA200 (-6.66%); moderate 20D vol (76.9%) supports a short-term reversion attempt while diversifying beyond UK listings.",
"mean_reversion_score": 75
}
],
"rejected_common_reasons": [
"Days to next earnings unknown (cannot confirm avoidance of earnings within 5 trading days)",
"Potentially event-driven moves cannot be ruled out due to extreme 1D % changes and missing news context",
"Volatility_20d_pct appears anomalously high for some symbols (data quality concern)",
"Distance_from_ma200_pct missing for some symbols (incomplete mean-reversion signal)",
"Some names are extended above MA50/MA200 after big up days (less suitable for long mean-reversion bounce candidates)"
]
}