Arena run #582
meanrev-v1 • x-ai • x-ai/grok-4.1-fast • EU • success
Run status
as_of: 2026-03-12T10:21:39.078796+00:00
started_at: 2026-03-12T14:30:36.974594+00:00
finished_at: 2026-03-12T14:31:58.987060+00:00
duration_ms: 82011
Inputs
{
"as_of": "2026-03-12T10:21:39.078796+00:00",
"dry_run": false,
"selected": [
{
"symbol": "VTY_CFD.UK",
"selection_reason": "-32.7% 1d drop, -28.5% below MA50, -26.7% below MA200, vol 206%",
"mean_reversion_score": 96
},
{
"symbol": "TRST_CFD.UK",
"selection_reason": "-27.6% 1d drop, -10.7% below MA50, -26.8% below MA200, vol 229%",
"mean_reversion_score": 94
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "-20.8% 1d drop, -24.3% below MA50, -37.7% below MA200, vol 154%",
"mean_reversion_score": 93
},
{
"symbol": "RSW_CFD.UK",
"selection_reason": "+18.2% 1d rise, +14.3% above MA50, +36.8% above MA200, vol 93%",
"mean_reversion_score": 92
},
{
"symbol": "WIX_CFD.UK",
"selection_reason": "+16.0% 1d rise, +10.2% above MA50, +18.6% above MA200, vol 84%",
"mean_reversion_score": 90
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"SAFE_CFD.UK",
"UTG_CFD.UK",
"TRN_CFD.UK",
"WIX_CFD.UK",
"KGF_CFD.UK",
"RHIM_CFD.UK",
"VTY_CFD.UK",
"RSW_CFD.UK",
"DOM_CFD.UK",
"OCDO_CFD.UK",
"SGRO_CFD.UK",
"LRE_CFD.UK",
"HSBA_CFD.UK",
"LIO_CFD.UK",
"ITV_CFD.UK",
"LSEG_CFD.UK",
"TRST_CFD.UK",
"KWS_CFD.DE",
"OSB_CFD.UK",
"GMM_CFD.DE",
"BME_CFD.UK",
"TBCG_CFD.UK",
"WIZZ_CFD.UK",
"TNG_CFD.FR",
"FUTR_CFD.UK",
"FICO_CFD.US",
"DPLM_CFD.UK",
"SGE_CFD.UK",
"CRDA_CFD.UK",
"OLLI_CFD.US",
"DCC_CFD.UK",
"LAND_CFD.UK",
"BMW_CFD.DE",
"HMSO_CFD.UK",
"MNG_CFD.UK",
"MSLH_CFD.UK",
"DLTR_CFD.US",
"CRBN_CFD.NL"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "High mean-reversion score 94, strong oversold (-27.6% 1d drop, -10.7% below MA50, -26.8% below MA200, high vol)",
"symbol": "TRST_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Profitable (+70 pnl), retain for mean-reversion",
"symbol": "BIG_CFD.FR"
},
{
"reason": "Profitable (+79 pnl), retain for mean-reversion",
"symbol": "BLND_CFD.UK"
},
{
"reason": "Stable flat pnl, no clear sell signal",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "High mean-reversion score 93, oversold signal, hold for rebound",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Small profit (+15 pnl), retain",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "Stable flat pnl, no clear sell signal",
"symbol": "TRN_CFD.UK"
},
{
"reason": "High mean-reversion score 96, strong oversold signal, hold small loss for rebound",
"symbol": "VTY_CFD.UK"
}
],
"sell": [
{
"reason": "Unrealized loss (-36 pnl), recent position, not in top mean-reversion candidates",
"symbol": "ABF_CFD.UK"
},
{
"reason": "Significant unrealized loss (-88 pnl), recent position, not in top mean-reversion candidates",
"symbol": "EVT_CFD.DE"
}
]
},
"portfolio_rationale": "Executed 2 sells on loss-making positions not aligned with current mean-reversion signals to cut losses and free capital. Added 1 new high-score oversold candidate TRST (fills to 8 positions < max 10). Held profits, flats, and top oversold candidates (FUTR/VTY). No action on overbought candidates (RSW/WIX) as long-only mean-reversion favors oversold buys. Gross exposure ~24k < 30k max leverage. Complies with max 2 buys/sells, avoids overtrading by targeting clear signals only."
}Prompts & responses
#1149 • openrouter • x-ai/grok-4.1-fast • 2026-03-12T14:30:37.007108+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": "SAFE_CFD.UK", "name": "SAFESTORE HOLDINGS PLC", "sector": "", "last_price": 802.5, "change_1d_pct": 13.187588152327212, "distance_from_ma200_pct": 21.40724384452035, "distance_from_ma50_pct": 10.29872606002229, "volatility_20d_pct": 81.07249455345375, "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": 315.6, "change_1d_pct": -9.048991354466851, "distance_from_ma200_pct": 7.853280580001876, "distance_from_ma50_pct": -3.0101280045040535, "volatility_20d_pct": 4841.586311080337, "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": "VTY_CFD.UK", "name": "VISTRY GROUP PLC", "sector": "", "last_price": 463.9, "change_1d_pct": -32.72911832946637, "distance_from_ma200_pct": -26.66844502405723, "distance_from_ma50_pct": -28.488957332309774, "volatility_20d_pct": 205.6561667968453, "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": "DOM_CFD.UK", "name": "DOMINO'S PIZZA GROUP PLC", "sector": "", "last_price": 204.15, "change_1d_pct": 11.924342105263165, "distance_from_ma200_pct": -5.759626343727387, "distance_from_ma50_pct": 12.834440951357639, "volatility_20d_pct": 73.60557991984848, "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": "SGRO_CFD.UK", "name": "SEGRO PLC", "sector": "", "last_price": 838.6, "change_1d_pct": 14.312977099236646, "distance_from_ma200_pct": 23.337223471135403, "distance_from_ma50_pct": 14.881685289390623, "volatility_20d_pct": 61.79400737887707, "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": -5.564142194744981, "distance_from_ma200_pct": 0.3541219387989347, "distance_from_ma50_pct": -6.520894339541805, "volatility_20d_pct": 4817.271229246994, "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": "HSBA_CFD.UK", "name": "HSBC HOLDINGS PLC", "sector": "", "last_price": 1205.4, "change_1d_pct": -5.754495699765439, "distance_from_ma200_pct": 13.508671303503107, "distance_from_ma50_pct": -4.766870816663193, "volatility_20d_pct": 5015.147576914964, "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": "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": "LSEG_CFD.UK", "name": "LONDON STOCK EXCHANGE GROUP", "sector": "", "last_price": 8422.0, "change_1d_pct": -4.836158192090401, "distance_from_ma200_pct": -9.453084048707193, "distance_from_ma50_pct": 0.9170776523241386, "volatility_20d_pct": 109.51804758992422, "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": "KWS_CFD.DE", "name": "KWS SAAT AG", "sector": "", "last_price": 65.2, "change_1d_pct": 2.1943573667711602, "distance_from_ma200_pct": -0.4765904378915553, "distance_from_ma50_pct": -6.063486675566621, "volatility_20d_pct": 43.83991611415101, "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": 575.5, "change_1d_pct": -8.50556438791733, "distance_from_ma200_pct": 7.26309045372473, "distance_from_ma50_pct": -3.1605502163448818, "volatility_20d_pct": 83.79306172690484, "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": "GMM_CFD.DE", "name": "Grammer AG", "sector": "", "last_price": 6.95, "change_1d_pct": -9.150326797385622, "distance_from_ma200_pct": 4.306429778510168, "distance_from_ma50_pct": 3.4934627870268464, "volatility_20d_pct": 184.652948783905, "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": 180.0, "change_1d_pct": -0.5799502899751507, "distance_from_ma200_pct": -17.510144533683704, "distance_from_ma50_pct": 3.6906975618860693, "volatility_20d_pct": 107.67302074828436, "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": "TBCG_CFD.UK", "name": "TBC BANK GROUP PLC", "sector": "", "last_price": 4320.0, "change_1d_pct": 7.32919254658384, "distance_from_ma200_pct": -2.181054535330118, "distance_from_ma50_pct": 4.04542083578916, "volatility_20d_pct": 103.56899161014346, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "WIZZ_CFD.UK", "name": "WIZZ AIR HOLDINGS PLC", "sector": "", "last_price": 927.0, "change_1d_pct": -5.0691244239631335, "distance_from_ma200_pct": -24.217738215858287, "distance_from_ma50_pct": -27.277531220454044, "volatility_20d_pct": 8111.240262670523, "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": "TNG_CFD.FR", "name": "Transgene SA", "sector": "", "last_price": 0.778, "change_1d_pct": -4.187192118226601, "distance_from_ma200_pct": -23.223052821158063, "distance_from_ma50_pct": -12.066549120665492, "volatility_20d_pct": 86.61732111556974, "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": "FICO_CFD.US", "name": "FAIR ISAAC CORP", "sector": "", "last_price": 1159.52, "change_1d_pct": -20.122896330332118, "distance_from_ma200_pct": -27.205765379721957, "distance_from_ma50_pct": -20.554343660017103, "volatility_20d_pct": 102.9945402361105, "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": "SGE_CFD.UK", "name": "SAGE GROUP PLC/THE", "sector": "", "last_price": 825.0, "change_1d_pct": 5.07278678502745, "distance_from_ma200_pct": -26.453535550154516, "distance_from_ma50_pct": -13.245015005983463, "volatility_20d_pct": 105.66269444091493, "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": "CRDA_CFD.UK", "name": "CRODA INTERNATIONAL PLC", "sector": "", "last_price": 2852.0, "change_1d_pct": 4.622157006603089, "distance_from_ma200_pct": 0.7062484713757033, "distance_from_ma50_pct": 0.43312312572669764, "volatility_20d_pct": 116.9451780511235, "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": "OLLI_CFD.US", "name": "OLLIE'S BARGAIN OUTLET HOLDI", "sector": "", "last_price": 105.35, "change_1d_pct": -2.2364513734224323, "distance_from_ma200_pct": -13.646337694869526, "distance_from_ma50_pct": -5.060496334893583, "volatility_20d_pct": 75.55467440580614, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DCC_CFD.UK", "name": "DCC PLC", "sector": "", "last_price": 4722.0, "change_1d_pct": 3.871535415750116, "distance_from_ma200_pct": -1.7078152611501807, "distance_from_ma50_pct": -2.095260937900023, "volatility_20d_pct": 101.77420564801834, "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": "LAND_CFD.UK", "name": "LAND SECURITIES GROUP PLC", "sector": "", "last_price": 587.0, "change_1d_pct": -9.203402938901784, "distance_from_ma200_pct": -1.751221707657491, "distance_from_ma50_pct": -6.159306646766682, "volatility_20d_pct": 80.69294894711774, "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": "BMW_CFD.DE", "name": "BAYERISCHE MOTOREN WERKE AG", "sector": "", "last_price": 80.004, "change_1d_pct": 1.967881723171061, "distance_from_ma200_pct": -6.290991980901184, "distance_from_ma50_pct": -8.943591326491218, "volatility_20d_pct": 47.57236440643064, "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": "MNG_CFD.UK", "name": "M&G PLC", "sector": "", "last_price": 300.1, "change_1d_pct": -2.564935064935059, "distance_from_ma200_pct": 12.150356967747356, "distance_from_ma50_pct": -0.6814293137056837, "volatility_20d_pct": 66.02335421814031, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MSLH_CFD.UK", "name": "MARSHALLS PLC", "sector": "", "last_price": 182.32, "change_1d_pct": 0.8407079646017612, "distance_from_ma200_pct": -17.111863069088763, "distance_from_ma50_pct": 6.139091576985178, "volatility_20d_pct": 102.4204512350097, "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": "DLTR_CFD.US", "name": "Dollar Tree Inc", "sector": "", "last_price": 113.23, "change_1d_pct": -1.5562510867675128, "distance_from_ma200_pct": 2.7290377601567606, "distance_from_ma50_pct": -10.047252401546892, "volatility_20d_pct": 76.37221415674689, "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": "CRBN_CFD.NL", "name": "Corbion", "sector": "", "last_price": 21.32, "change_1d_pct": 0.0, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 10.465176526668118, "volatility_20d_pct": 1678.2965924693424, "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": "VTY_CFD.UK",
"selection_reason": "-32.7% 1d drop, -28.5% below MA50, -26.7% below MA200, vol 206%",
"mean_reversion_score": 96
},
{
"symbol": "TRST_CFD.UK",
"selection_reason": "-27.6% 1d drop, -10.7% below MA50, -26.8% below MA200, vol 229%",
"mean_reversion_score": 94
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "-20.8% 1d drop, -24.3% below MA50, -37.7% below MA200, vol 154%",
"mean_reversion_score": 93
},
{
"symbol": "RSW_CFD.UK",
"selection_reason": "+18.2% 1d rise, +14.3% above MA50, +36.8% above MA200, vol 93%",
"mean_reversion_score": 92
},
{
"symbol": "WIX_CFD.UK",
"selection_reason": "+16.0% 1d rise, +10.2% above MA50, +18.6% above MA200, vol 84%",
"mean_reversion_score": 90
}
],
"rejected_common_reasons": [
"Insufficient 1d price move (<10%)",
"Minimal deviation from MA50/MA200",
"Low 20d volatility (<70%)",
"Moderate deviations only"
]
}#1150 • openrouter • x-ai/grok-4.1-fast • 2026-03-12T14:30:59.759420+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": "ABF_CFD.UK", "qty": 1.6055659620016056, "avg_price": 1868.5, "last_price": 1846.0, "unrealized_pnl": -36.125234145036124, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "AML_CFD.UK", "qty": 0.0, "avg_price": 39.92, "last_price": 42.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "ARCAD_CFD.NL", "qty": 0.0, "avg_price": 29.7, "last_price": 28.06, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 10067.114093959732, "avg_price": 0.298, "last_price": 0.305, "unrealized_pnl": 70.46979865771819, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "BLND_CFD.UK", "qty": 8.237232289950576, "avg_price": 364.2, "last_price": 373.8, "unrealized_pnl": 79.07742998352572, "opened_at": "2026-03-10T10:41:24.306870+00:00"}, {"symbol": "BXP_CFD.US", "qty": 0.0, "avg_price": 60.835, "last_price": 59.405, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T17:33:48.338981+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 10.252904989747094, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "CABO_CFD.US", "qty": 0.0, "avg_price": 94.6, "last_price": 96.44, "unrealized_pnl": 58.3509513742073, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "CAR_CFD.US", "qty": 0.0, "avg_price": 92.465, "last_price": 97.54, "unrealized_pnl": 164.65689720434767, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "CCL_CFD.UK", "qty": 0.0, "avg_price": 1945.9999999999998, "last_price": 1858.65, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "COIN_CFD.US", "qty": 0.0, "avg_price": 168.575, "last_price": 171.13, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "CO_CFD.FR", "qty": 0.0, "avg_price": 0.171, "last_price": 0.2196, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 350.79999999999995, "last_price": 350.055, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "DKNG_CFD.US", "qty": 0.0, "avg_price": 25.185000000000002, "last_price": 25.115000000000002, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "ESTC_CFD.US", "qty": 0.0, "avg_price": 58.085, "last_price": 55.28, "unrealized_pnl": -144.87389171042437, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "EVT_CFD.DE", "qty": 666.3705019991115, "avg_price": 4.502, "last_price": 4.369, "unrealized_pnl": -88.62727676588183, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "EXPO_CFD.US", "qty": 0.0, "avg_price": 66.815, "last_price": 70.025, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 0.0, "avg_price": 405.2, "last_price": 394.1, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T10:05:58.226220+00:00"}, {"symbol": "FBIN_CFD.US", "qty": 0.0, "avg_price": 50.974999999999994, "last_price": 54.35, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "FICO_CFD.US", "qty": 0.0, "avg_price": 1208.505, "last_price": 1405.2800000000002, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "FLO_CFD.US", "qty": 0.0, "avg_price": 9.875, "last_price": 10.055, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 7.24287783679382, "avg_price": 414.2, "last_price": 414.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "GO_CFD.US", "qty": 0.0, "avg_price": 5.71, "last_price": 6.05, "unrealized_pnl": 178.63397548161112, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "HAIN_CFD.US", "qty": 0.0, "avg_price": 0.8, "last_price": 0.8, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1275.0, "last_price": 1342.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "HPP_CFD.US", "qty": 0.0, "avg_price": 7.59, "last_price": 7.47, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "ICG_CFD.UK", "qty": 0.0, "avg_price": 1700.0, "last_price": 1719.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "JBLU_CFD.US", "qty": 0.0, "avg_price": 4.22, "last_price": 4.52, "unrealized_pnl": 213.27014218009467, "opened_at": "2026-03-09T18:18:45.954380+00:00"}, {"symbol": "JUN3_CFD.DE", "qty": 0.0, "avg_price": 31.51, "last_price": 30.167, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "LMND_CFD.US", "qty": 0.0, "avg_price": 61.5, "last_price": 59.89, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "LPX_CFD.US", "qty": 0.0, "avg_price": 86.45, "last_price": 86.15, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "LRCX_CFD.US", "qty": 0.0, "avg_price": 199.34, "last_price": 216.7, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "NET_CFD.US", "qty": 0.0, "avg_price": 176.96, "last_price": 164.32, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 0.0, "avg_price": 217.0, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "OKTA_CFD.US", "qty": 0.0, "avg_price": 70.18, "last_price": 80.05, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 19.74853531696399, "avg_price": 151.91, "last_price": 152.7, "unrealized_pnl": 15.601342900401397, "opened_at": "2026-03-07T10:14:47.113218+00:00"}, {"symbol": "PAYC_CFD.US", "qty": 0.0, "avg_price": 121.22, "last_price": 119.79, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "PROX_CFD.BE", "qty": 0.0, "avg_price": 6.98, "last_price": 7.68, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 0.0, "avg_price": 424.3, "last_price": 417.16, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "RVTY_CFD.US", "qty": 0.0, "avg_price": 91.28, "last_price": 91.28, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 0.0, "avg_price": 18.4, "last_price": 18.48, "unrealized_pnl": 13.043478260869868, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "THG_CFD.UK", "qty": 0.0, "avg_price": 34.98, "last_price": 34.98, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 16.260162601626018, "avg_price": 184.5, "last_price": 184.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "TRST_CFD.UK", "qty": 0.0, "avg_price": 134.3, "last_price": 139.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 0.0, "avg_price": 92.35, "last_price": 94.79, "unrealized_pnl": 79.26367081754236, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 7.015902712815715, "avg_price": 427.6, "last_price": 427.1, "unrealized_pnl": -3.5079513564078577, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 872.0, "last_price": 976.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 240.8, "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": 144.45, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "VTY_CFD.UK", "mean_reversion_score": 96, "selection_reason": "-32.7% 1d drop, -28.5% below MA50, -26.7% below MA200, vol 206%"}, {"symbol": "TRST_CFD.UK", "mean_reversion_score": 94, "selection_reason": "-27.6% 1d drop, -10.7% below MA50, -26.8% below MA200, vol 229%"}, {"symbol": "FUTR_CFD.UK", "mean_reversion_score": 93, "selection_reason": "-20.8% 1d drop, -24.3% below MA50, -37.7% below MA200, vol 154%"}, {"symbol": "RSW_CFD.UK", "mean_reversion_score": 92, "selection_reason": "+18.2% 1d rise, +14.3% above MA50, +36.8% above MA200, vol 93%"}, {"symbol": "WIX_CFD.UK", "mean_reversion_score": 90, "selection_reason": "+16.0% 1d rise, +10.2% above MA50, +18.6% above MA200, vol 84%"}], "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": "High mean-reversion score 94, strong oversold (-27.6% 1d drop, -10.7% below MA50, -26.8% below MA200, high vol)",
"symbol": "TRST_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Profitable (+70 pnl), retain for mean-reversion",
"symbol": "BIG_CFD.FR"
},
{
"reason": "Profitable (+79 pnl), retain for mean-reversion",
"symbol": "BLND_CFD.UK"
},
{
"reason": "Stable flat pnl, no clear sell signal",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "High mean-reversion score 93, oversold signal, hold for rebound",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Small profit (+15 pnl), retain",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "Stable flat pnl, no clear sell signal",
"symbol": "TRN_CFD.UK"
},
{
"reason": "High mean-reversion score 96, strong oversold signal, hold small loss for rebound",
"symbol": "VTY_CFD.UK"
}
],
"sell": [
{
"reason": "Unrealized loss (-36 pnl), recent position, not in top mean-reversion candidates",
"symbol": "ABF_CFD.UK"
},
{
"reason": "Significant unrealized loss (-88 pnl), recent position, not in top mean-reversion candidates",
"symbol": "EVT_CFD.DE"
}
]
},
"portfolio_rationale": "Executed 2 sells on loss-making positions not aligned with current mean-reversion signals to cut losses and free capital. Added 1 new high-score oversold candidate TRST (fills to 8 positions < max 10). Held profits, flats, and top oversold candidates (FUTR/VTY). No action on overbought candidates (RSW/WIX) as long-only mean-reversion favors oversold buys. Gross exposure ~24k < 30k max leverage. Complies with max 2 buys/sells, avoids overtrading by targeting clear signals only."
}Selection logs
#572 • stage1 • 2026-03-12T14:30:59.757189+00:00
{
"selected_stocks": [
{
"symbol": "VTY_CFD.UK",
"selection_reason": "-32.7% 1d drop, -28.5% below MA50, -26.7% below MA200, vol 206%",
"mean_reversion_score": 96
},
{
"symbol": "TRST_CFD.UK",
"selection_reason": "-27.6% 1d drop, -10.7% below MA50, -26.8% below MA200, vol 229%",
"mean_reversion_score": 94
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "-20.8% 1d drop, -24.3% below MA50, -37.7% below MA200, vol 154%",
"mean_reversion_score": 93
},
{
"symbol": "RSW_CFD.UK",
"selection_reason": "+18.2% 1d rise, +14.3% above MA50, +36.8% above MA200, vol 93%",
"mean_reversion_score": 92
},
{
"symbol": "WIX_CFD.UK",
"selection_reason": "+16.0% 1d rise, +10.2% above MA50, +18.6% above MA200, vol 84%",
"mean_reversion_score": 90
}
],
"rejected_common_reasons": [
"Insufficient 1d price move (<10%)",
"Minimal deviation from MA50/MA200",
"Low 20d volatility (<70%)",
"Moderate deviations only"
]
}