Arena run #656
meanrev-v1 • openai • openai/gpt-5.2-pro • US • success
Run status
as_of: 2026-03-15T18:15:23.812047+00:00
started_at: 2026-03-15T21:44:28.396998+00:00
finished_at: 2026-03-15T21:46:27.876688+00:00
duration_ms: 119478
Inputs
{
"as_of": "2026-03-15T18:15:23.812047+00:00",
"dry_run": false,
"selected": [
{
"symbol": "ULTA_CFD.US",
"selection_reason": "Severe 1D selloff (-16.26%) with price extended below MA50 (-18.17%) and elevated short-term vol (20D vol ~81.5%) -> classic oversold bounce setup (earnings timing unknown).",
"mean_reversion_score": 90
},
{
"symbol": "ADBE_CFD.US",
"selection_reason": "Down hard on the day (-6.99%) while well below MA200 (-24.95%) and below MA50 (-11.02%); volatility moderate-high (20D vol ~75.4%) supportive of snapback (earnings timing unknown).",
"mean_reversion_score": 82
},
{
"symbol": "MPT_CFD.US",
"selection_reason": "Large 1D drop (-10.40%) with price below MA50 (-8.14%) and near MA200 (~+0.15%); high 20D vol (~139.4%) suggests potential short-horizon reversal (earnings timing unknown).",
"mean_reversion_score": 80
},
{
"symbol": "GT_CFD.US",
"selection_reason": "Oversold trend/short-term capitulation: down (-5.09%) and deeply below MA50 (-22.55%) and MA200 (-23.08%); high 20D vol (~122.5%) favors mean-reversion attempts (earnings timing unknown).",
"mean_reversion_score": 78
},
{
"symbol": "MTN_CFD.US",
"selection_reason": "Mild pullback (-1.25%) with price below MA200 (-9.65%) and slightly below MA50 (-2.41%); lower extension than others but still negative drift that can mean-revert over 2-10 days (earnings timing unknown).",
"mean_reversion_score": 60
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"SAFE_CFD.UK",
"UTG_CFD.UK",
"WIX_CFD.UK",
"KGF_CFD.UK",
"CBG_CFD.UK",
"SGRO_CFD.UK",
"EMG_CFD.UK",
"OCDO_CFD.UK",
"LRE_CFD.UK",
"LIO_CFD.UK",
"SMIN_CFD.UK",
"BBY_CFD.UK",
"CCC_CFD.UK",
"DOM_CFD.UK",
"OSB_CFD.UK",
"ATG_CFD.UK",
"BME_CFD.UK",
"GROW_CFD.UK",
"WEIR_CFD.UK",
"BYIT_CFD.UK",
"WKP_CFD.UK",
"ANTO_CFD.UK",
"MPT_CFD.US",
"DPLM_CFD.UK",
"ADBE_CFD.US",
"LTA_CFD.FR",
"MTN_CFD.US",
"IGG_CFD.UK",
"WDC_CFD.US",
"GT_CFD.US",
"HMSO_CFD.UK",
"MSLH_CFD.UK",
"AML_CFD.UK",
"UKW_CFD.UK",
"SBGI_CFD.US",
"ICG_CFD.UK",
"GRI_CFD.UK",
"SGL_CFD.DE",
"NXST_CFD.US",
"THG_CFD.UK",
"SHC_CFD.UK",
"ABBV_CFD.US",
"UBI_CFD.FR",
"GRG_CFD.UK",
"ULTA_CFD.US",
"GDX_CFD.ETF",
"VBK_CFD.DE",
"STX_CFD.US"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Top candidate mean-reversion setup (score 90): severe 1D selloff and large extension below MA50 with elevated short-term volatility per provided candidate notes. Fits adding one new position while staying within max_positions and leverage constraints.",
"symbol": "ULTA_CFD.US",
"position_size": 3000
}
],
"hold": [
{
"reason": "Already held at ~fixed position size; candidate list also flags it as a high mean-reversion setup. No new information provided that would justify trimming/adding today.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Modest unrealized loss; no explicit replacement signal or risk event provided. Avoid overtrading—maintain position for potential reversion.",
"symbol": "AMH_CFD.US"
},
{
"reason": "Unrealized drawdown but no exit trigger supplied; keep exposure rather than churn without a clear improvement candidate-vs-holding case.",
"symbol": "CSGP_CFD.US"
},
{
"reason": "Largest unrealized loss in book, but no supporting data for a forced exit or superior rotation. Hold to avoid loss-chasing churn.",
"symbol": "EZJ_CFD.UK"
},
{
"reason": "Position is at target sizing with no provided catalyst to change. Hold to minimize turnover.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Position is at target sizing and flat; absent a clear better alternative signal, keep to avoid unnecessary trading.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Small unrealized loss and near target sizing; no risk event or stronger rotation case provided. Hold.",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Small unrealized loss; no explicit reason to exit and no constraint breach. Hold to avoid marginal turnover.",
"symbol": "TMV_CFD.DE"
},
{
"reason": "Unrealized loss but no new information indicating deterioration or a superior swap. Hold for potential mean reversion.",
"symbol": "ZS_CFD.US"
}
],
"sell": []
},
"portfolio_rationale": "Portfolio currently has 9 active positions, leaving capacity for 1 additional position under the 10-position cap; adding ULTA uses the strongest provided mean-reversion signal while keeping total gross exposure consistent with the 3.0x leverage limit (fixed $3,000 sizing). No sells are taken because no risk event or clear holding-vs-candidate improvement case is provided, and the strategy explicitly prefers avoiding overtrading/churn when changes are marginal."
}Prompts & responses
#1296 • openrouter • openai/gpt-5.2-pro • 2026-03-15T21:44:28.441753+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": "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": "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": "CBG_CFD.UK", "name": "CLOSE BROTHERS GROUP PLC", "sector": "", "last_price": 497.8, "change_1d_pct": -5.89792060491493, "distance_from_ma200_pct": 15.793508864321094, "distance_from_ma50_pct": 3.592137485786795, "volatility_20d_pct": 116.76618625853061, "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": "EMG_CFD.UK", "name": "MAN GROUP PLC/JERSEY", "sector": "", "last_price": 269.6, "change_1d_pct": 2.353834472285521, "distance_from_ma200_pct": 42.186331073171914, "distance_from_ma50_pct": 15.516783354614262, "volatility_20d_pct": 86.92367167139048, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": 722.5, "change_1d_pct": -1.0951403148528382, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -1.628407265201648, "volatility_20d_pct": 2239.4661443465884, "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": 3230.0, "change_1d_pct": 1.000625390869292, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 3.7824360276067726, "volatility_20d_pct": 3216.515047539989, "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": "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": "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": "GROW_CFD.UK", "name": "MOLTEN VENTURES PLC", "sector": "", "last_price": 465.0, "change_1d_pct": 1.572739187418093, "distance_from_ma200_pct": 22.569628774815076, "distance_from_ma50_pct": -4.275686024250158, "volatility_20d_pct": 115.72658030340939, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": "MPT_CFD.US", "name": "MEDICAL PROPERTIES TRUST INC", "sector": "", "last_price": 4.91, "change_1d_pct": -10.401459854014606, "distance_from_ma200_pct": 0.14787619193310508, "distance_from_ma50_pct": -8.138447146866223, "volatility_20d_pct": 139.4173956877411, "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": "MTN_CFD.US", "name": "VAIL RESORTS INC", "sector": "", "last_price": 134.14, "change_1d_pct": -1.251472320376923, "distance_from_ma200_pct": -9.650746994476266, "distance_from_ma50_pct": -2.409284431756342, "volatility_20d_pct": 78.42663697712976, "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": "GT_CFD.US", "name": "", "sector": "", "last_price": 6.9, "change_1d_pct": -5.089408528198058, "distance_from_ma200_pct": -23.075636716333058, "distance_from_ma50_pct": -22.546752576162355, "volatility_20d_pct": 122.51572489644428, "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": "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": "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": "UKW_CFD.UK", "name": "GREENCOAT UK WIND PLC", "sector": "", "last_price": 96.65, "change_1d_pct": -2.864321608040199, "distance_from_ma200_pct": -13.509595378826178, "distance_from_ma50_pct": -7.518333665048904, "volatility_20d_pct": 52.20244024852636, "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": "GRI_CFD.UK", "name": "GRAINGER PLC", "sector": "", "last_price": 192.4, "change_1d_pct": 0.08322929671245038, "distance_from_ma200_pct": -4.9312468607917275, "distance_from_ma50_pct": 0.9128310349964197, "volatility_20d_pct": 71.43116862190418, "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": "ABBV_CFD.US", "name": "AbbVie Inc", "sector": "", "last_price": 232.35, "change_1d_pct": -1.6258097294550966, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 3.546593186617497, "volatility_20d_pct": 2402.931036269666, "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"}, {"symbol": "GRG_CFD.UK", "name": "GREGGS PLC", "sector": "", "last_price": 1672.0, "change_1d_pct": 3.3374536464771287, "distance_from_ma200_pct": -1.4910380116743616, "distance_from_ma50_pct": 1.012004962637647, "volatility_20d_pct": 108.66633645285333, "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": "ULTA_CFD.US", "name": "", "sector": "", "last_price": 542.6, "change_1d_pct": -16.2589705995833, "distance_from_ma200_pct": -2.3761845388777014, "distance_from_ma50_pct": -18.174097049803716, "volatility_20d_pct": 81.51499528061828, "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": "GDX_CFD.ETF", "name": "", "sector": "", "last_price": 94.67, "change_1d_pct": -9.975275770254843, "distance_from_ma200_pct": 25.53738274381463, "distance_from_ma50_pct": -6.393741521351359, "volatility_20d_pct": 115.47770237612703, "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": "VBK_CFD.DE", "name": "VERBIO Vereinigte BioEnergie AG", "sector": "", "last_price": 35.075, "change_1d_pct": 14.597967785147192, "distance_from_ma200_pct": 114.29027458175214, "distance_from_ma50_pct": 36.82315933354345, "volatility_20d_pct": 107.69743440491352, "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": "STX_CFD.US", "name": "SEAGATE TECHNOLOGY HOLDINGS", "sector": "", "last_price": 388.64, "change_1d_pct": -1.3353643056613351, "distance_from_ma200_pct": 58.794008860251346, "distance_from_ma50_pct": 3.822719180702383, "volatility_20d_pct": 138.56106636030106, "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": "ULTA_CFD.US",
"selection_reason": "Severe 1D selloff (-16.26%) with price extended below MA50 (-18.17%) and elevated short-term vol (20D vol ~81.5%) -> classic oversold bounce setup (earnings timing unknown).",
"mean_reversion_score": 90
},
{
"symbol": "ADBE_CFD.US",
"selection_reason": "Down hard on the day (-6.99%) while well below MA200 (-24.95%) and below MA50 (-11.02%); volatility moderate-high (20D vol ~75.4%) supportive of snapback (earnings timing unknown).",
"mean_reversion_score": 82
},
{
"symbol": "MPT_CFD.US",
"selection_reason": "Large 1D drop (-10.40%) with price below MA50 (-8.14%) and near MA200 (~+0.15%); high 20D vol (~139.4%) suggests potential short-horizon reversal (earnings timing unknown).",
"mean_reversion_score": 80
},
{
"symbol": "GT_CFD.US",
"selection_reason": "Oversold trend/short-term capitulation: down (-5.09%) and deeply below MA50 (-22.55%) and MA200 (-23.08%); high 20D vol (~122.5%) favors mean-reversion attempts (earnings timing unknown).",
"mean_reversion_score": 78
},
{
"symbol": "MTN_CFD.US",
"selection_reason": "Mild pullback (-1.25%) with price below MA200 (-9.65%) and slightly below MA50 (-2.41%); lower extension than others but still negative drift that can mean-revert over 2-10 days (earnings timing unknown).",
"mean_reversion_score": 60
}
],
"rejected_common_reasons": [
"Non-US listings/regions present in universe (region constraint: US).",
"ETFs excluded (target: liquid equities).",
"Not mean-reversion long setups (price far above MA200/MA50 after run-up; more like short/overbought).",
"Insufficient drawdown/extension vs moving averages for a 2-10 day oversold bounce.",
"Data quality anomalies (e.g., implausible 20D volatility / missing MA fields) reduce confidence."
]
}#1297 • openrouter • openai/gpt-5.2-pro • 2026-03-15T21:45:39.703206+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": 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": 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": 153.64, "unrealized_pnl": -114.92238357536313, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "ULTA_CFD.US", "mean_reversion_score": 90, "selection_reason": "Severe 1D selloff (-16.26%) with price extended below MA50 (-18.17%) and elevated short-term vol (20D vol ~81.5%) -> classic oversold bounce setup (earnings timing unknown)."}, {"symbol": "ADBE_CFD.US", "mean_reversion_score": 82, "selection_reason": "Down hard on the day (-6.99%) while well below MA200 (-24.95%) and below MA50 (-11.02%); volatility moderate-high (20D vol ~75.4%) supportive of snapback (earnings timing unknown)."}, {"symbol": "MPT_CFD.US", "mean_reversion_score": 80, "selection_reason": "Large 1D drop (-10.40%) with price below MA50 (-8.14%) and near MA200 (~+0.15%); high 20D vol (~139.4%) suggests potential short-horizon reversal (earnings timing unknown)."}, {"symbol": "GT_CFD.US", "mean_reversion_score": 78, "selection_reason": "Oversold trend/short-term capitulation: down (-5.09%) and deeply below MA50 (-22.55%) and MA200 (-23.08%); high 20D vol (~122.5%) favors mean-reversion attempts (earnings timing unknown)."}, {"symbol": "MTN_CFD.US", "mean_reversion_score": 60, "selection_reason": "Mild pullback (-1.25%) with price below MA200 (-9.65%) and slightly below MA50 (-2.41%); lower extension than others but still negative drift that can mean-revert over 2-10 days (earnings timing unknown)."}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}Output JSON
{
"actions": {
"buy": [
{
"reason": "Top candidate mean-reversion setup (score 90): severe 1D selloff and large extension below MA50 with elevated short-term volatility per provided candidate notes. Fits adding one new position while staying within max_positions and leverage constraints.",
"symbol": "ULTA_CFD.US",
"position_size": 3000
}
],
"hold": [
{
"reason": "Already held at ~fixed position size; candidate list also flags it as a high mean-reversion setup. No new information provided that would justify trimming/adding today.",
"symbol": "ADBE_CFD.US"
},
{
"reason": "Modest unrealized loss; no explicit replacement signal or risk event provided. Avoid overtrading—maintain position for potential reversion.",
"symbol": "AMH_CFD.US"
},
{
"reason": "Unrealized drawdown but no exit trigger supplied; keep exposure rather than churn without a clear improvement candidate-vs-holding case.",
"symbol": "CSGP_CFD.US"
},
{
"reason": "Largest unrealized loss in book, but no supporting data for a forced exit or superior rotation. Hold to avoid loss-chasing churn.",
"symbol": "EZJ_CFD.UK"
},
{
"reason": "Position is at target sizing with no provided catalyst to change. Hold to minimize turnover.",
"symbol": "FICO_CFD.US"
},
{
"reason": "Position is at target sizing and flat; absent a clear better alternative signal, keep to avoid unnecessary trading.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Small unrealized loss and near target sizing; no risk event or stronger rotation case provided. Hold.",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Small unrealized loss; no explicit reason to exit and no constraint breach. Hold to avoid marginal turnover.",
"symbol": "TMV_CFD.DE"
},
{
"reason": "Unrealized loss but no new information indicating deterioration or a superior swap. Hold for potential mean reversion.",
"symbol": "ZS_CFD.US"
}
],
"sell": []
},
"portfolio_rationale": "Portfolio currently has 9 active positions, leaving capacity for 1 additional position under the 10-position cap; adding ULTA uses the strongest provided mean-reversion signal while keeping total gross exposure consistent with the 3.0x leverage limit (fixed $3,000 sizing). No sells are taken because no risk event or clear holding-vs-candidate improvement case is provided, and the strategy explicitly prefers avoiding overtrading/churn when changes are marginal."
}Selection logs
#645 • stage1 • 2026-03-15T21:45:39.700566+00:00
{
"selected_stocks": [
{
"symbol": "ULTA_CFD.US",
"selection_reason": "Severe 1D selloff (-16.26%) with price extended below MA50 (-18.17%) and elevated short-term vol (20D vol ~81.5%) -> classic oversold bounce setup (earnings timing unknown).",
"mean_reversion_score": 90
},
{
"symbol": "ADBE_CFD.US",
"selection_reason": "Down hard on the day (-6.99%) while well below MA200 (-24.95%) and below MA50 (-11.02%); volatility moderate-high (20D vol ~75.4%) supportive of snapback (earnings timing unknown).",
"mean_reversion_score": 82
},
{
"symbol": "MPT_CFD.US",
"selection_reason": "Large 1D drop (-10.40%) with price below MA50 (-8.14%) and near MA200 (~+0.15%); high 20D vol (~139.4%) suggests potential short-horizon reversal (earnings timing unknown).",
"mean_reversion_score": 80
},
{
"symbol": "GT_CFD.US",
"selection_reason": "Oversold trend/short-term capitulation: down (-5.09%) and deeply below MA50 (-22.55%) and MA200 (-23.08%); high 20D vol (~122.5%) favors mean-reversion attempts (earnings timing unknown).",
"mean_reversion_score": 78
},
{
"symbol": "MTN_CFD.US",
"selection_reason": "Mild pullback (-1.25%) with price below MA200 (-9.65%) and slightly below MA50 (-2.41%); lower extension than others but still negative drift that can mean-revert over 2-10 days (earnings timing unknown).",
"mean_reversion_score": 60
}
],
"rejected_common_reasons": [
"Non-US listings/regions present in universe (region constraint: US).",
"ETFs excluded (target: liquid equities).",
"Not mean-reversion long setups (price far above MA200/MA50 after run-up; more like short/overbought).",
"Insufficient drawdown/extension vs moving averages for a 2-10 day oversold bounce.",
"Data quality anomalies (e.g., implausible 20D volatility / missing MA fields) reduce confidence."
]
}