Arena run #696
meanrev-v1 • openai • openai/gpt-5.2-pro • US • success
Run status
as_of: 2026-03-17T18:12:35.221859+00:00
started_at: 2026-03-17T19:45:11.152920+00:00
finished_at: 2026-03-17T19:47:37.485091+00:00
duration_ms: 146330
Inputs
{
"as_of": "2026-03-17T18:12:35.221859+00:00",
"dry_run": false,
"selected": [
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "Large 1d selloff (-20.82%) with price far below MA200 (-37.68%) and MA50 (-24.30%) -> oversold setup for 2-10d bounce (earnings timing unknown).",
"mean_reversion_score": 84
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Sharp 1d drop (-16.57%) and below MA50 (-10.86%) with modest MA200 gap (-4.41%) -> short-term oversold mean-reversion candidate (earnings/event context unknown).",
"mean_reversion_score": 78
},
{
"symbol": "DOCS_CFD.UK",
"selection_reason": "Below MA200 (-13.08%) and MA50 (-12.14%) with only mild 1d move (-1.50%) -> extended downtrend with potential reflex rally window (earnings timing unknown).",
"mean_reversion_score": 71
},
{
"symbol": "UTG_CFD.UK",
"selection_reason": "Deeply below MA200 (-23.93%) while near MA50 (-3.69%) and small positive 1d (+3.46%) -> possible basing/mean-reversion back toward longer trend (earnings timing unknown).",
"mean_reversion_score": 67
},
{
"symbol": "DLTR_CFD.US",
"selection_reason": "Below MA50 (-8.52%) and flat 1d (-0.10%) -> mild oversold vs MA50 for short horizon; volatility_20d appears anomalously high (data-quality caution) and MA200 is missing.",
"mean_reversion_score": 60
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"WTB_CFD.UK",
"ESNT_CFD.UK",
"SAFE_CFD.UK",
"JDW_CFD.UK",
"UTG_CFD.UK",
"IWG_CFD.UK",
"KGF_CFD.UK",
"RHIM_CFD.UK",
"RSW_CFD.UK",
"DLN_CFD.UK",
"MCG_CFD.UK",
"CCL_CFD.UK",
"SGRO_CFD.UK",
"ABDN_CFD.UK",
"OCDO_CFD.UK",
"ADJ_CFD.DE",
"DOCS_CFD.UK",
"VTY_CFD.UK",
"SMIN_CFD.UK",
"BBY_CFD.UK",
"MAB_CFD.UK",
"IMI_CFD.UK",
"DOM_CFD.UK",
"IPO_CFD.UK",
"ATG_CFD.UK",
"BME_CFD.UK",
"WKP_CFD.UK",
"HLMA_CFD.UK",
"FUTR_CFD.UK",
"DPLM_CFD.UK",
"DLTR_CFD.US",
"ASY_CFD.FR",
"CW_CFD.US",
"AAL_CFD.UK",
"CO_CFD.FR"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Highest mean-reversion score (84): sharp 1d selloff with price far below MA50/MA200 indicates a stronger short-horizon oversold setup than most current holdings; funded by trimming a winner to stay within max positions and leverage.",
"symbol": "FUTR_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Recently opened and slightly profitable; no new mean-reversion signal provided that justifies churning the position.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Down vs entry (potential mean-reversion candidate); without a stronger alternative signal on this name or a risk event, prefer HOLD to avoid overtrading.",
"symbol": "CSGP_CFD.US"
},
{
"reason": "Large unrealized loss suggests it may still be in an oversold regime; absent new information indicating a thesis break, hold rather than crystallize the drawdown.",
"symbol": "EZJ_CFD.UK"
},
{
"reason": "Recently opened and working; no provided catalyst to exit and avoid unnecessary turnover.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Just opened and is also highlighted as an oversold candidate; maintain exposure for the expected short-horizon bounce.",
"symbol": "IWG_CFD.UK"
},
{
"reason": "No updated negative signal provided; keep position to avoid churn.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Small unrealized loss and no new information; hold per anti-overtrading rules.",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Modestly down and recently opened; no clear improvement from switching given limited buy capacity.",
"symbol": "ULTA_CFD.US"
},
{
"reason": "Modestly down; maintain as a potential mean-reversion hold rather than rotate without a clearly superior signal.",
"symbol": "ZS_CFD.US"
}
],
"sell": [
{
"reason": "Position is meaningfully in profit (~+10.7% vs avg) and no longer a clear oversold/mean-reversion setup; taking gains frees one slot and keeps gross leverage at/under the 3.0 cap for redeployment into a stronger oversold candidate.",
"symbol": "TRN_CFD.UK"
}
]
},
"portfolio_rationale": "Portfolio is already at the 10-position limit and approximately at the 3.0 gross leverage cap (fixed $3k sizing). To avoid overtrading while still improving expected mean-reversion payoff, rotate out of a position that has already rebounded (TRN) and redeploy into the strongest oversold candidate (FUTR). All other holdings are kept to minimize churn in the absence of clear, incremental signals or risk events."
}Prompts & responses
#1376 • openrouter • openai/gpt-5.2-pro • 2026-03-17T19:45:11.196718+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": "WTB_CFD.UK", "name": "WHITBREAD PLC", "sector": "", "last_price": 2691.0, "change_1d_pct": 11.659751037344401, "distance_from_ma200_pct": -5.969827496214986, "distance_from_ma50_pct": -5.069507041577781, "volatility_20d_pct": 87.61035263352142, "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": "ESNT_CFD.UK", "name": "ESSENTRA PLC", "sector": "", "last_price": 108.4, "change_1d_pct": 4.230769230769238, "distance_from_ma200_pct": 7.40452119530135, "distance_from_ma50_pct": 9.771484932749797, "volatility_20d_pct": 98.9832071461764, "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": 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": "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": "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": "IWG_CFD.UK", "name": "IWG PLC", "sector": "", "last_price": 205.4, "change_1d_pct": -16.5718927701056, "distance_from_ma200_pct": -4.40871742234894, "distance_from_ma50_pct": -10.856111173800208, "volatility_20d_pct": 135.80434164824575, "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": "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": "MCG_CFD.UK", "name": "MOBICO GROUP PLC", "sector": "", "last_price": 25.72, "change_1d_pct": 2.9623698959167166, "distance_from_ma200_pct": -7.132760074308242, "distance_from_ma50_pct": 8.327577202351844, "volatility_20d_pct": 232.19808875565576, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CCL_CFD.UK", "name": "CARNIVAL PLC", "sector": "", "last_price": 1989.0, "change_1d_pct": -3.9594398841139578, "distance_from_ma200_pct": 4.932242734391812, "distance_from_ma50_pct": -4.47172238108916, "volatility_20d_pct": 163.30913338012496, "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": "ABDN_CFD.UK", "name": "Aberdeen Group Plc", "sector": "", "last_price": 215.2, "change_1d_pct": -0.6463527239150557, "distance_from_ma200_pct": 13.219747060140353, "distance_from_ma50_pct": 3.663782514155023, "volatility_20d_pct": 74.75396598460024, "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": "ADJ_CFD.DE", "name": "ADLER GROUP SA", "sector": "", "last_price": 0.192, "change_1d_pct": 3.7837837837837895, "distance_from_ma200_pct": -7.07579130771464, "distance_from_ma50_pct": 0.6289308176100628, "volatility_20d_pct": 281.9328754959748, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DOCS_CFD.UK", "name": "DR. MARTENS PLC", "sector": "", "last_price": 65.6, "change_1d_pct": -1.501501501501501, "distance_from_ma200_pct": -13.08259339811949, "distance_from_ma50_pct": -12.14348468939509, "volatility_20d_pct": 121.2025974369199, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "VTY_CFD.UK", "name": "VISTRY GROUP PLC", "sector": "", "last_price": 403.2, "change_1d_pct": -44.21693414499169, "distance_from_ma200_pct": -35.825419675413826, "distance_from_ma50_pct": -36.113069725802745, "volatility_20d_pct": 213.0917779123437, "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": "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": "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": "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": "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": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 305.0, "change_1d_pct": 4.2735042735042805, "distance_from_ma200_pct": -30.344980756373573, "distance_from_ma50_pct": -1.1704016694101371, "volatility_20d_pct": 159.9931345477538, "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": "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": "HLMA_CFD.UK", "name": "HALMA PLC", "sector": "", "last_price": 3904.0, "change_1d_pct": 7.548209366391179, "distance_from_ma200_pct": 16.52280895184093, "distance_from_ma50_pct": 5.778818225170168, "volatility_20d_pct": 86.60562444492528, "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": "DLTR_CFD.US", "name": "Dollar Tree Inc", "sector": "", "last_price": 115.79, "change_1d_pct": -0.10352859977568185, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -8.524831570032731, "volatility_20d_pct": 3589.913318697127, "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": "ASY_CFD.FR", "name": "Assystem SA", "sector": "", "last_price": 44.6, "change_1d_pct": 0.5636978579481422, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -1.1656251385010918, "volatility_20d_pct": 4780.971545500114, "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": "CW_CFD.US", "name": "Curtiss-Wright Corporation", "sector": "", "last_price": 684.22, "change_1d_pct": 1.96107650582662, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 13.161251227173265, "volatility_20d_pct": 4308.002175856081, "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": "AAL_CFD.UK", "name": "ANGLO AMERICAN PLC", "sector": "", "last_price": 3586.0, "change_1d_pct": 0.055803571428580945, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 11.748904636364198, "volatility_20d_pct": 4209.946938281094, "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": "CO_CFD.FR", "name": "Casino Guichard Perrachon", "sector": "", "last_price": 0.2196, "change_1d_pct": -3.0891438658429027, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -7.3057895892076345, "volatility_20d_pct": 3846.671951006259, "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 far below MA200 (-37.68%) and MA50 (-24.30%) -> oversold setup for 2-10d bounce (earnings timing unknown).",
"mean_reversion_score": 84
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Sharp 1d drop (-16.57%) and below MA50 (-10.86%) with modest MA200 gap (-4.41%) -> short-term oversold mean-reversion candidate (earnings/event context unknown).",
"mean_reversion_score": 78
},
{
"symbol": "DOCS_CFD.UK",
"selection_reason": "Below MA200 (-13.08%) and MA50 (-12.14%) with only mild 1d move (-1.50%) -> extended downtrend with potential reflex rally window (earnings timing unknown).",
"mean_reversion_score": 71
},
{
"symbol": "UTG_CFD.UK",
"selection_reason": "Deeply below MA200 (-23.93%) while near MA50 (-3.69%) and small positive 1d (+3.46%) -> possible basing/mean-reversion back toward longer trend (earnings timing unknown).",
"mean_reversion_score": 67
},
{
"symbol": "DLTR_CFD.US",
"selection_reason": "Below MA50 (-8.52%) and flat 1d (-0.10%) -> mild oversold vs MA50 for short horizon; volatility_20d appears anomalously high (data-quality caution) and MA200 is missing.",
"mean_reversion_score": 60
}
],
"rejected_common_reasons": [
"Price extended above MA50/MA200 after strong up-day (more momentum than mean reversion)",
"Extreme one-day spikes suggest event-driven/binary move risk (with no news/earnings data to verify)",
"Potentially distressed/very low-priced names (higher gap/halting risk for short-horizon mean reversion)",
"Volatility/technical metrics appear inconsistent or missing (e.g., MA200 null or implausibly high vol_20d), reducing signal reliability",
"Earnings within 5 trading days cannot be ruled out because earnings dates are unknown"
]
}#1377 • openrouter • openai/gpt-5.2-pro • 2026-03-17T19:46:13.880180+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": 254.4, "unrealized_pnl": 59.28568565358568, "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": "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": 44.09, "unrealized_pnl": -199.74595109558567, "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": 361.6, "unrealized_pnl": -520.4571428571427, "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": 1201.595, "unrealized_pnl": 197.40378389405856, "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": "IWG_CFD.UK", "qty": 16.216216216216218, "avg_price": 185.0, "last_price": 185.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-17T10:04:29.123574+00:00"}, {"symbol": "MLCO_CFD.US", "qty": 0.0, "avg_price": 5.51, "last_price": 6.06, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 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": 1197.5, "unrealized_pnl": -43.20987654320987, "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": 16.260162601626018, "avg_price": 184.5, "last_price": 204.2, "unrealized_pnl": 320.32520325203234, "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": 528.79, "unrealized_pnl": -35.93049327354306, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 238.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": 156.72, "unrealized_pnl": -57.08562844266385, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "FUTR_CFD.UK", "mean_reversion_score": 84, "selection_reason": "Large 1d selloff (-20.82%) with price far below MA200 (-37.68%) and MA50 (-24.30%) -> oversold setup for 2-10d bounce (earnings timing unknown)."}, {"symbol": "IWG_CFD.UK", "mean_reversion_score": 78, "selection_reason": "Sharp 1d drop (-16.57%) and below MA50 (-10.86%) with modest MA200 gap (-4.41%) -> short-term oversold mean-reversion candidate (earnings/event context unknown)."}, {"symbol": "DOCS_CFD.UK", "mean_reversion_score": 71, "selection_reason": "Below MA200 (-13.08%) and MA50 (-12.14%) with only mild 1d move (-1.50%) -> extended downtrend with potential reflex rally window (earnings timing unknown)."}, {"symbol": "UTG_CFD.UK", "mean_reversion_score": 67, "selection_reason": "Deeply below MA200 (-23.93%) while near MA50 (-3.69%) and small positive 1d (+3.46%) -> possible basing/mean-reversion back toward longer trend (earnings timing unknown)."}, {"symbol": "DLTR_CFD.US", "mean_reversion_score": 60, "selection_reason": "Below MA50 (-8.52%) and flat 1d (-0.10%) -> mild oversold vs MA50 for short horizon; volatility_20d appears anomalously high (data-quality caution) and MA200 is missing."}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}Output JSON
{
"actions": {
"buy": [
{
"reason": "Highest mean-reversion score (84): sharp 1d selloff with price far below MA50/MA200 indicates a stronger short-horizon oversold setup than most current holdings; funded by trimming a winner to stay within max positions and leverage.",
"symbol": "FUTR_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Recently opened and slightly profitable; no new mean-reversion signal provided that justifies churning the position.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Down vs entry (potential mean-reversion candidate); without a stronger alternative signal on this name or a risk event, prefer HOLD to avoid overtrading.",
"symbol": "CSGP_CFD.US"
},
{
"reason": "Large unrealized loss suggests it may still be in an oversold regime; absent new information indicating a thesis break, hold rather than crystallize the drawdown.",
"symbol": "EZJ_CFD.UK"
},
{
"reason": "Recently opened and working; no provided catalyst to exit and avoid unnecessary turnover.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Just opened and is also highlighted as an oversold candidate; maintain exposure for the expected short-horizon bounce.",
"symbol": "IWG_CFD.UK"
},
{
"reason": "No updated negative signal provided; keep position to avoid churn.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Small unrealized loss and no new information; hold per anti-overtrading rules.",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Modestly down and recently opened; no clear improvement from switching given limited buy capacity.",
"symbol": "ULTA_CFD.US"
},
{
"reason": "Modestly down; maintain as a potential mean-reversion hold rather than rotate without a clearly superior signal.",
"symbol": "ZS_CFD.US"
}
],
"sell": [
{
"reason": "Position is meaningfully in profit (~+10.7% vs avg) and no longer a clear oversold/mean-reversion setup; taking gains frees one slot and keeps gross leverage at/under the 3.0 cap for redeployment into a stronger oversold candidate.",
"symbol": "TRN_CFD.UK"
}
]
},
"portfolio_rationale": "Portfolio is already at the 10-position limit and approximately at the 3.0 gross leverage cap (fixed $3k sizing). To avoid overtrading while still improving expected mean-reversion payoff, rotate out of a position that has already rebounded (TRN) and redeploy into the strongest oversold candidate (FUTR). All other holdings are kept to minimize churn in the absence of clear, incremental signals or risk events."
}Selection logs
#685 • stage1 • 2026-03-17T19:46:13.877228+00:00
{
"selected_stocks": [
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "Large 1d selloff (-20.82%) with price far below MA200 (-37.68%) and MA50 (-24.30%) -> oversold setup for 2-10d bounce (earnings timing unknown).",
"mean_reversion_score": 84
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Sharp 1d drop (-16.57%) and below MA50 (-10.86%) with modest MA200 gap (-4.41%) -> short-term oversold mean-reversion candidate (earnings/event context unknown).",
"mean_reversion_score": 78
},
{
"symbol": "DOCS_CFD.UK",
"selection_reason": "Below MA200 (-13.08%) and MA50 (-12.14%) with only mild 1d move (-1.50%) -> extended downtrend with potential reflex rally window (earnings timing unknown).",
"mean_reversion_score": 71
},
{
"symbol": "UTG_CFD.UK",
"selection_reason": "Deeply below MA200 (-23.93%) while near MA50 (-3.69%) and small positive 1d (+3.46%) -> possible basing/mean-reversion back toward longer trend (earnings timing unknown).",
"mean_reversion_score": 67
},
{
"symbol": "DLTR_CFD.US",
"selection_reason": "Below MA50 (-8.52%) and flat 1d (-0.10%) -> mild oversold vs MA50 for short horizon; volatility_20d appears anomalously high (data-quality caution) and MA200 is missing.",
"mean_reversion_score": 60
}
],
"rejected_common_reasons": [
"Price extended above MA50/MA200 after strong up-day (more momentum than mean reversion)",
"Extreme one-day spikes suggest event-driven/binary move risk (with no news/earnings data to verify)",
"Potentially distressed/very low-priced names (higher gap/halting risk for short-horizon mean reversion)",
"Volatility/technical metrics appear inconsistent or missing (e.g., MA200 null or implausibly high vol_20d), reducing signal reliability",
"Earnings within 5 trading days cannot be ruled out because earnings dates are unknown"
]
}