Arena run #679
meanrev-v1 • minimax • minimax/minimax-m2.1 • EU • success
Run status
as_of: 2026-03-17T10:04:29.123574+00:00
started_at: 2026-03-17T11:17:40.422126+00:00
finished_at: 2026-03-17T11:18:57.592730+00:00
duration_ms: 77169
Inputs
{
"as_of": "2026-03-17T10:04:29.123574+00:00",
"dry_run": false,
"selected": [
{
"symbol": "VTY_CFD.UK",
"selection_reason": "Extreme mean reversion signal: -44.2% daily drop with -35.8% distance from MA200 and -36.1% from MA50; highest displacement across both timeframes combined with 213% volatility confirms oversold condition",
"mean_reversion_score": 95
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "Strong oversold signal: -21.1% daily decline with -15.8% MA200 distance and -5.5% MA50 distance; 241% volatility indicates elevated reversion potential",
"mean_reversion_score": 92
},
{
"symbol": "TRN_CFD.UK",
"selection_reason": "Clear mean reversion setup: -12.9% single-day drop with -22.6% MA200 distance and -12.6% MA50 distance; 131% volatility supports reversion thesis",
"mean_reversion_score": 88
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Oversold condition: -16.6% daily decline with -10.9% MA50 distance and -4.4% MA200 distance; 136% volatility confirms price dislocation",
"mean_reversion_score": 85
},
{
"symbol": "PBB_CFD.DE",
"selection_reason": "Extreme MA displacement: -39.6% from MA200 and -26.2% from MA50; combined with moderate 82% volatility suggests mean reversion opportunity despite modest daily move",
"mean_reversion_score": 82
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"WTB_CFD.UK",
"JDW_CFD.UK",
"TRN_CFD.UK",
"IWG_CFD.UK",
"KGF_CFD.UK",
"RHIM_CFD.UK",
"DLN_CFD.UK",
"MCG_CFD.UK",
"SGRO_CFD.UK",
"OVH_CFD.FR",
"EMG_CFD.UK",
"ABDN_CFD.UK",
"OCDO_CFD.UK",
"LRE_CFD.UK",
"LIO_CFD.UK",
"VTY_CFD.UK",
"SMIN_CFD.UK",
"BBY_CFD.UK",
"ATO_CFD.FR",
"JEN_CFD.DE",
"MAB_CFD.UK",
"IMI_CFD.UK",
"VSVS_CFD.UK",
"NA9_CFD.DE",
"PBB_CFD.DE",
"INTC_CFD.US",
"OSB_CFD.UK",
"IPO_CFD.UK",
"ATG_CFD.UK",
"XFAB_CFD.FR",
"BME_CFD.UK",
"HBR_CFD.UK",
"HPP_CFD.US",
"GROW_CFD.UK",
"AMG_CFD.NL",
"COV_CFD.FR",
"WKP_CFD.UK",
"IPGP_CFD.US",
"MDM_CFD.FR",
"MRN_CFD.FR",
"SLG_CFD.US",
"AMCX_CFD.US",
"DPLM_CFD.UK",
"MELE_CFD.BE",
"SGL_CFD.DE",
"ASM_CFD.NL",
"IGG_CFD.UK",
"ALFEN_CFD.NL"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Highest mean reversion score (95): extreme oversold condition with -44.2% daily drop, -35.8% from MA200, -36.1% from MA50, 213% volatility; classic mean reversion setup",
"symbol": "VTY_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Position at breakeven (last_price = avg_price), no clear mean reversion signal to act on",
"symbol": "ATG_CFD.UK"
},
{
"reason": "Position at breakeven, holding for potential mean reversion setup",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Already held position at avg_price; candidate score 92 but position exists - no action needed",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Small gain (+1.0%), not enough to take profit; holding for further moves",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "Tiny position (0.79 qty) at breakeven, minimal impact either way",
"symbol": "RSW_CFD.UK"
},
{
"reason": "Already held at avg_price; candidate score 88 but position exists",
"symbol": "TRN_CFD.UK"
},
{
"reason": "Good performer (+14.2% / +426.88 P&L), not overextended - holding for continued mean reversion",
"symbol": "TRST_CFD.UK"
},
{
"reason": "Position at breakeven, no clear signal to exit",
"symbol": "UTG_CFD.UK"
},
{
"reason": "Position at breakeven, holding",
"symbol": "WTB_CFD.UK"
}
],
"sell": [
{
"reason": "Exit losing position: -18.6% move against us with -559.54 unrealized P&L; mean reversion failed, cut loss to redeploy capital",
"symbol": "CBG_CFD.UK"
}
]
},
"portfolio_rationale": "Portfolio at max capacity (10 positions). Taking one sell action to exit CBG_CFD.UK which has materialized as a -18.6% losing position (unrealized -559.54). This frees capital for a high-conviction mean reversion buy. VTY_CFD.UK shows the strongest reversion signal in the candidate list with extreme daily drop combined with severe MA displacement across both timeframes. Other existing positions are at or near cost basis with no clear action; holding allows mean reversion thesis to play out. Max 2 buys and 2 sells rule respected; no overtrading."
}Prompts & responses
#1342 • openrouter • minimax/minimax-m2.1 • 2026-03-17T11:17:40.465113+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": "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": "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": "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": "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": "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": "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": "OVH_CFD.FR", "name": "OVH Groupe SA ", "sector": "", "last_price": 9.29, "change_1d_pct": 2.765486725663724, "distance_from_ma200_pct": -5.457946341024078, "distance_from_ma50_pct": 2.972114397696246, "volatility_20d_pct": 88.37583159078285, "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": "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": "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": "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": "ATO_CFD.FR", "name": "Atos SE", "sector": "", "last_price": 39.852, "change_1d_pct": 5.058919674162321, "distance_from_ma200_pct": -9.167119098837183, "distance_from_ma50_pct": -15.895057494503384, "volatility_20d_pct": 112.40541399176134, "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": "JEN_CFD.DE", "name": "Jenoptik AG", "sector": "", "last_price": 26.36, "change_1d_pct": -2.2255192878338326, "distance_from_ma200_pct": 28.726336890887815, "distance_from_ma50_pct": 3.711829050171178, "volatility_20d_pct": 80.88961956178072, "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": "VSVS_CFD.UK", "name": "VESUVIUS PLC", "sector": "", "last_price": 425.0, "change_1d_pct": -15.506958250497016, "distance_from_ma200_pct": 8.502290547178326, "distance_from_ma50_pct": -5.9126275880115315, "volatility_20d_pct": 115.61003156027519, "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": "NA9_CFD.DE", "name": "Nagarro N", "sector": "", "last_price": 47.587, "change_1d_pct": -7.743161241542429, "distance_from_ma200_pct": -19.068062455026702, "distance_from_ma50_pct": -22.913362051090658, "volatility_20d_pct": 128.39289153108797, "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": "PBB_CFD.DE", "name": "DEUTSCHE PFANDBRIEFBANK AG", "sector": "", "last_price": 2.822, "change_1d_pct": -0.21216407355020284, "distance_from_ma200_pct": -39.643528950039084, "distance_from_ma50_pct": -26.17976352411844, "volatility_20d_pct": 81.95260145296834, "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": "INTC_CFD.US", "name": "INTEL CORP", "sector": "", "last_price": 47.17, "change_1d_pct": -2.1166217057480674, "distance_from_ma200_pct": 40.009171684131964, "distance_from_ma50_pct": 2.1314002632855322, "volatility_20d_pct": 99.01898733898086, "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": "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": "XFAB_CFD.FR", "name": "X-FAB Silicon Foundries SE", "sector": "", "last_price": 4.784, "change_1d_pct": 0.5464480874316946, "distance_from_ma200_pct": -17.981353787704755, "distance_from_ma50_pct": -2.0458975576995497, "volatility_20d_pct": 87.17896861156424, "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": "HBR_CFD.UK", "name": "HARBOUR ENERGY PLC", "sector": "", "last_price": 281.4, "change_1d_pct": -1.6083916083916128, "distance_from_ma200_pct": 31.53672429150014, "distance_from_ma50_pct": 21.003113228641702, "volatility_20d_pct": 146.8436669232312, "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": "HPP_CFD.US", "name": "HUDSON PACIFIC PROPERTIES IN", "sector": "", "last_price": 6.52, "change_1d_pct": 4.99194847020934, "distance_from_ma200_pct": -55.72501977774231, "distance_from_ma50_pct": -19.2449651960663, "volatility_20d_pct": 198.93728211618148, "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": "AMG_CFD.NL", "name": "AMG ADVANCED METALLURGICAL", "sector": "", "last_price": 32.12, "change_1d_pct": -10.579064587973285, "distance_from_ma200_pct": 13.417918901244485, "distance_from_ma50_pct": -10.434243342241578, "volatility_20d_pct": 127.52335786766218, "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": "COV_CFD.FR", "name": "Covivio SA", "sector": "", "last_price": 56.35, "change_1d_pct": -0.4416961130742081, "distance_from_ma200_pct": 1.6182091174706592, "distance_from_ma50_pct": 0.8610869871835902, "volatility_20d_pct": 74.61530605197072, "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": "IPGP_CFD.US", "name": "IPG PHOTONICS CORP", "sector": "", "last_price": 114.45, "change_1d_pct": 3.1081081081081097, "distance_from_ma200_pct": 34.341629178368, "distance_from_ma50_pct": 7.462568848343043, "volatility_20d_pct": 7457.40227362749, "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": "MDM_CFD.FR", "name": "Maisons Du Monde", "sector": "", "last_price": 1.218, "change_1d_pct": -5.581395348837215, "distance_from_ma200_pct": -37.51218461096462, "distance_from_ma50_pct": -20.420243835509034, "volatility_20d_pct": 90.45703714762206, "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": "MRN_CFD.FR", "name": "Mersen", "sector": "", "last_price": 24.55, "change_1d_pct": -2.964426877470361, "distance_from_ma200_pct": 3.4320045164606627, "distance_from_ma50_pct": -4.59884104107341, "volatility_20d_pct": 63.97599574805438, "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": "SLG_CFD.US", "name": "SL GREEN REALTY CORP", "sector": "", "last_price": 37.61, "change_1d_pct": 0.3468516542155964, "distance_from_ma200_pct": -28.0183121720058, "distance_from_ma50_pct": -11.592417774601794, "volatility_20d_pct": 104.13435562013662, "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": "AMCX_CFD.US", "name": "AMC Networks Inc", "sector": "", "last_price": 7.06, "change_1d_pct": -10.406091370558379, "distance_from_ma200_pct": -7.38068375619868, "distance_from_ma50_pct": -11.908564583749259, "volatility_20d_pct": 111.76893297293266, "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": "MELE_CFD.BE", "name": "Melexis", "sector": "", "last_price": 53.574, "change_1d_pct": -1.6088154269972565, "distance_from_ma200_pct": -13.266892023157329, "distance_from_ma50_pct": -10.122108713092338, "volatility_20d_pct": 65.40009901295295, "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.548, "change_1d_pct": -4.649287825853266, "distance_from_ma200_pct": 2.955173294333413, "distance_from_ma50_pct": -10.544097624930671, "volatility_20d_pct": 77.66150883460772, "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": "ASM_CFD.NL", "name": "ASM International NV", "sector": "", "last_price": 680.6, "change_1d_pct": -5.261692650334071, "distance_from_ma200_pct": 24.99006699934054, "distance_from_ma50_pct": -1.2104262916707742, "volatility_20d_pct": 80.17117799072929, "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": "ALFEN_CFD.NL", "name": "Alfen", "sector": "", "last_price": 8.744, "change_1d_pct": -0.8391925606713535, "distance_from_ma200_pct": -14.91916396207753, "distance_from_ma50_pct": -12.76952759471749, "volatility_20d_pct": 62.00864280318604, "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": "Extreme mean reversion signal: -44.2% daily drop with -35.8% distance from MA200 and -36.1% from MA50; highest displacement across both timeframes combined with 213% volatility confirms oversold condition",
"mean_reversion_score": 95
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "Strong oversold signal: -21.1% daily decline with -15.8% MA200 distance and -5.5% MA50 distance; 241% volatility indicates elevated reversion potential",
"mean_reversion_score": 92
},
{
"symbol": "TRN_CFD.UK",
"selection_reason": "Clear mean reversion setup: -12.9% single-day drop with -22.6% MA200 distance and -12.6% MA50 distance; 131% volatility supports reversion thesis",
"mean_reversion_score": 88
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Oversold condition: -16.6% daily decline with -10.9% MA50 distance and -4.4% MA200 distance; 136% volatility confirms price dislocation",
"mean_reversion_score": 85
},
{
"symbol": "PBB_CFD.DE",
"selection_reason": "Extreme MA displacement: -39.6% from MA200 and -26.2% from MA50; combined with moderate 82% volatility suggests mean reversion opportunity despite modest daily move",
"mean_reversion_score": 82
}
],
"rejected_common_reasons": [
"Stocks with positive daily returns and above-MA positioning rejected as mean reversion candidates",
"Low-volatility stocks (<65%) excluded due to insufficient reversion catalyst",
"Stocks within 5% of moving averages rejected for lack of meaningful price dislocation"
]
}#1343 • openrouter • minimax/minimax-m2.1 • 2026-03-17T11:17:56.376695+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": 0.0, "avg_price": 1868.5, "last_price": 1849.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "AEO_CFD.US", "qty": 0.0, "avg_price": 22.265, "last_price": 18.64, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T21:11:27.888829+00:00"}, {"symbol": "AGFB_CFD.BE", "qty": 0.0, "avg_price": 0.465, "last_price": 0.452, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T21:11:27.888829+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": "ATG_CFD.UK", "qty": 10.135135135135135, "avg_price": 296.0, "last_price": 296.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "ATO_CFD.FR", "qty": 0.0, "avg_price": 40.34, "last_price": 39.505, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 0.0, "avg_price": 0.453, "last_price": 0.296, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 20.505809979494188, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "CBG_CFD.UK", "qty": 6.547359231776517, "avg_price": 458.2, "last_price": 372.74, "unrealized_pnl": -559.5373199476211, "opened_at": "2026-03-13T18:17:31.188931+00:00"}, {"symbol": "CCL_CFD.UK", "qty": 0.0, "avg_price": 1945.9999999999998, "last_price": 1989.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 349.265, "last_price": 365.38, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "DKNG_CFD.US", "qty": 0.0, "avg_price": 25.28, "last_price": 24.91, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "DSY_CFD.FR", "qty": 0.0, "avg_price": 17.881, "last_price": 17.133, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "DT_CFD.US", "qty": 0.0, "avg_price": 34.105000000000004, "last_price": 35.864999999999995, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "ERA_CFD.FR", "qty": 0.0, "avg_price": 47.4, "last_price": 48.88, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 0.0, "avg_price": 414.2, "last_price": 414.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "GO_CFD.US", "qty": 0.0, "avg_price": 6.53, "last_price": 6.34, "unrealized_pnl": -87.28943338437996, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1409.0, "last_price": 1244.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "INF_CFD.UK", "qty": 0.0, "avg_price": 795.2, "last_price": 785.85, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T18:21:09.503139+00:00"}, {"symbol": "LIO_CFD.UK", "qty": 0.0, "avg_price": 250.0, "last_price": 250.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "LMND_CFD.US", "qty": 0.0, "avg_price": 48.96, "last_price": 52.07, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T11:23:36.694156+00:00"}, {"symbol": "LPE_CFD.FR", "qty": 0.0, "avg_price": 88.414, "last_price": 86.679, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T18:21:09.503139+00:00"}, {"symbol": "LXS_CFD.DE", "qty": 0.0, "avg_price": 13.14, "last_price": 13.24, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "MAN_CFD.US", "qty": 0.0, "avg_price": 25.68, "last_price": 27.94, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "MDB_CFD.US", "qty": 0.0, "avg_price": 252.01, "last_price": 263.69, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 14.684287812041115, "avg_price": 204.3, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+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-06T10:33:43.857578+00:00"}, {"symbol": "PROX_CFD.BE", "qty": 0.0, "avg_price": 6.98, "last_price": 7.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-01T10:30:13.622938+00:00"}, {"symbol": "RCO_CFD.FR", "qty": 0.0, "avg_price": 44.34, "last_price": 43.58, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "RIVN_CFD.US", "qty": 0.0, "avg_price": 15.62, "last_price": 15.1, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+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-19T00:47:27.070066+00:00"}, {"symbol": "RSW_CFD.UK", "qty": 0.7915567282321899, "avg_price": 3790.0000000000005, "last_price": 3790.0, "unrealized_pnl": -3.599583252399452e-13, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "SGRO_CFD.UK", "qty": 0.0, "avg_price": 789.8, "last_price": 735.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "TCAP_CFD.UK", "qty": 0.0, "avg_price": 247.99999999999997, "last_price": 255.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 16.260162601626018, "avg_price": 184.5, "last_price": 184.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "TRST_CFD.UK", "qty": 19.76284584980237, "avg_price": 151.8, "last_price": 173.4, "unrealized_pnl": 426.8774703557311, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 0.0, "avg_price": 92.35, "last_price": 94.79, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 5.9405940594059405, "avg_price": 505.0, "last_price": 505.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 0.0, "avg_price": 427.6, "last_price": 406.1, "unrealized_pnl": 0.0, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 1087.0, "last_price": 1003.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 257.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "WTB_CFD.UK", "qty": 1.279317697228145, "avg_price": 2345.0, "last_price": 2345.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T18:17:31.188931+00:00"}], "candidates": [{"symbol": "VTY_CFD.UK", "mean_reversion_score": 95, "selection_reason": "Extreme mean reversion signal: -44.2% daily drop with -35.8% distance from MA200 and -36.1% from MA50; highest displacement across both timeframes combined with 213% volatility confirms oversold condition"}, {"symbol": "OCDO_CFD.UK", "mean_reversion_score": 92, "selection_reason": "Strong oversold signal: -21.1% daily decline with -15.8% MA200 distance and -5.5% MA50 distance; 241% volatility indicates elevated reversion potential"}, {"symbol": "TRN_CFD.UK", "mean_reversion_score": 88, "selection_reason": "Clear mean reversion setup: -12.9% single-day drop with -22.6% MA200 distance and -12.6% MA50 distance; 131% volatility supports reversion thesis"}, {"symbol": "IWG_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Oversold condition: -16.6% daily decline with -10.9% MA50 distance and -4.4% MA200 distance; 136% volatility confirms price dislocation"}, {"symbol": "PBB_CFD.DE", "mean_reversion_score": 82, "selection_reason": "Extreme MA displacement: -39.6% from MA200 and -26.2% from MA50; combined with moderate 82% volatility suggests mean reversion opportunity despite modest daily move"}], "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 (95): extreme oversold condition with -44.2% daily drop, -35.8% from MA200, -36.1% from MA50, 213% volatility; classic mean reversion setup",
"symbol": "VTY_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Position at breakeven (last_price = avg_price), no clear mean reversion signal to act on",
"symbol": "ATG_CFD.UK"
},
{
"reason": "Position at breakeven, holding for potential mean reversion setup",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Already held position at avg_price; candidate score 92 but position exists - no action needed",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Small gain (+1.0%), not enough to take profit; holding for further moves",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "Tiny position (0.79 qty) at breakeven, minimal impact either way",
"symbol": "RSW_CFD.UK"
},
{
"reason": "Already held at avg_price; candidate score 88 but position exists",
"symbol": "TRN_CFD.UK"
},
{
"reason": "Good performer (+14.2% / +426.88 P&L), not overextended - holding for continued mean reversion",
"symbol": "TRST_CFD.UK"
},
{
"reason": "Position at breakeven, no clear signal to exit",
"symbol": "UTG_CFD.UK"
},
{
"reason": "Position at breakeven, holding",
"symbol": "WTB_CFD.UK"
}
],
"sell": [
{
"reason": "Exit losing position: -18.6% move against us with -559.54 unrealized P&L; mean reversion failed, cut loss to redeploy capital",
"symbol": "CBG_CFD.UK"
}
]
},
"portfolio_rationale": "Portfolio at max capacity (10 positions). Taking one sell action to exit CBG_CFD.UK which has materialized as a -18.6% losing position (unrealized -559.54). This frees capital for a high-conviction mean reversion buy. VTY_CFD.UK shows the strongest reversion signal in the candidate list with extreme daily drop combined with severe MA displacement across both timeframes. Other existing positions are at or near cost basis with no clear action; holding allows mean reversion thesis to play out. Max 2 buys and 2 sells rule respected; no overtrading."
}Selection logs
#668 • stage1 • 2026-03-17T11:17:56.374186+00:00
{
"selected_stocks": [
{
"symbol": "VTY_CFD.UK",
"selection_reason": "Extreme mean reversion signal: -44.2% daily drop with -35.8% distance from MA200 and -36.1% from MA50; highest displacement across both timeframes combined with 213% volatility confirms oversold condition",
"mean_reversion_score": 95
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "Strong oversold signal: -21.1% daily decline with -15.8% MA200 distance and -5.5% MA50 distance; 241% volatility indicates elevated reversion potential",
"mean_reversion_score": 92
},
{
"symbol": "TRN_CFD.UK",
"selection_reason": "Clear mean reversion setup: -12.9% single-day drop with -22.6% MA200 distance and -12.6% MA50 distance; 131% volatility supports reversion thesis",
"mean_reversion_score": 88
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Oversold condition: -16.6% daily decline with -10.9% MA50 distance and -4.4% MA200 distance; 136% volatility confirms price dislocation",
"mean_reversion_score": 85
},
{
"symbol": "PBB_CFD.DE",
"selection_reason": "Extreme MA displacement: -39.6% from MA200 and -26.2% from MA50; combined with moderate 82% volatility suggests mean reversion opportunity despite modest daily move",
"mean_reversion_score": 82
}
],
"rejected_common_reasons": [
"Stocks with positive daily returns and above-MA positioning rejected as mean reversion candidates",
"Low-volatility stocks (<65%) excluded due to insufficient reversion catalyst",
"Stocks within 5% of moving averages rejected for lack of meaningful price dislocation"
]
}