Arena run #375
meanrev-v1 • minimax • minimax/minimax-m2.1 • US • success
Run status
as_of: 2026-03-02T18:21:09.503139+00:00
started_at: 2026-03-02T20:09:20.266280+00:00
finished_at: 2026-03-02T20:10:00.778141+00:00
duration_ms: 40510
Inputs
{
"dry_run": false,
"selected": [
{
"symbol": "INF_CFD.UK",
"selection_reason": "Negative 1d change (-5.1%) with price near MA200 (-1%) and MA50 (-6%); moderate volatility (82%); candidate for short-term mean reversion bounce",
"mean_reversion_score": 85
},
{
"symbol": "LPE_CFD.FR",
"selection_reason": "Small positive 1d change (+2.3%) with price near MA200 (-3%) and MA50 (-0.6%); lowest volatility (53%) in universe; stable mean reversion setup",
"mean_reversion_score": 82
},
{
"symbol": "ULVR_CFD.UK",
"selection_reason": "Positive 1d change (+1.4%) with price above MA200 (+7.4%) and MA50 (+8.9%); moderate volatility (53%); large cap liquidity proxy",
"mean_reversion_score": 78
},
{
"symbol": "RHK_CFD.DE",
"selection_reason": "Flat price (0.02% change) with price near MA200 (+3%) and MA50 (+0.3%); moderate volatility (114%); tight range mean reversion",
"mean_reversion_score": 76
},
{
"symbol": "WKP_CFD.UK",
"selection_reason": "Positive 1d change (+3.7%) with price near MA200 (+1.9%) and MA50 (+5.8%); moderate volatility (70%); sector-agnostic mean reversion",
"mean_reversion_score": 74
}
],
"universe_symbols": [
"DLN_CFD.UK",
"CRDA_CFD.UK",
"RHIM_CFD.UK",
"INF_CFD.UK",
"PSN_CFD.UK",
"BIG_CFD.FR",
"BTRW_CFD.UK",
"S92_CFD.DE",
"TCAP_CFD.UK",
"ATG_CFD.UK",
"BLND_CFD.UK",
"NA9_CFD.DE",
"IMI_CFD.UK",
"BYIT_CFD.UK",
"TBCG_CFD.UK",
"WKP_CFD.UK",
"BT_CFD.UK",
"MCG_CFD.UK",
"ELV_CFD.US",
"FUTR_CFD.UK",
"MKS_CFD.UK",
"LPE_CFD.FR",
"ZS_CFD.US",
"LSS_CFD.FR",
"BYW6_CFD.DE",
"MSLH_CFD.UK",
"MRCY_CFD.US",
"ULVR_CFD.UK",
"AML_CFD.UK",
"TMV_CFD.DE",
"RHK_CFD.DE",
"ETL_CFD.FR",
"ICG_CFD.UK",
"FII_CFD.FR",
"REC_CFD.BE",
"THG_CFD.UK",
"MOS_CFD.US"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Top mean reversion score (85); significant negative 1d change (-5.1%) with price near MA200 (-1%) and MA50 (-6%); strong bounce candidate with moderate volatility (82%); excellent risk/reward setup",
"symbol": "INF_CFD.UK",
"position_size": 3000
},
{
"reason": "Second highest mean reversion score (82); stable setup with small positive 1d change (+2.3%) near MA200 (-3%) and MA50 (-0.6%); lowest volatility (53%) in universe provides excellent risk control for mean reversion strategy",
"symbol": "LPE_CFD.FR",
"position_size": 3000
}
],
"hold": [
{
"reason": "Position at cost basis with no unrealized P&L; price stable at MA200/MA50 levels; no clear mean reversion signal to exit",
"symbol": "BIG_CFD.FR"
},
{
"reason": "Position at cost basis; price exactly at MA200 and MA50; no clear directional signal for mean reversion trade",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Position at cost basis; price at MA200/MA50 equilibrium; holding for now as no clear mean reversion edge",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Position at cost basis; price at MA200/MA50 equilibrium; maintaining position without clear reversion signal",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Solid unrealized gain (+3.7%) with price above MA200 (+3.7%) and MA50 (+3.8%); momentum positive but not overextended; holding for continued mean reversion upside",
"symbol": "PROX_CFD.BE"
},
{
"reason": "Good unrealized gain (+3.0%) with price above MA200 (+3.0%) and MA50 (+3.1%); price in favorable position; holding for potential continuation",
"symbol": "UKW_CFD.UK"
},
{
"reason": "Minor unrealized loss (-2.4%) with price near MA200 (-2.4%) and MA50 (-5.4%); small enough to hold for mean reversion bounce",
"symbol": "WPP_CFD.UK"
}
],
"sell": [
{
"reason": "Significant unrealized loss (-11.7%) with price far below MA200 (-12%) and MA50 (-13%); weak technicals suggest continued mean reversion downside; freeing capital for better opportunities",
"symbol": "HIK_CFD.UK"
},
{
"reason": "Unrealized loss (-2.1%) with price below MA200 (-1%) and MA50 (-6%); price showing negative momentum; better to reallocate to stronger mean reversion candidates",
"symbol": "ATO_CFD.FR"
}
]
},
"portfolio_rationale": "Mean reversion rebalancing: Selling 2 underperformers (HIK_CFD.UK at -11.7% loss, ATO_CFD.FR at -2.1% loss) to free $6,600+ capital. Buying top 2 mean reversion candidates (INF_CFD.UK score 85, LPE_CFD.FR score 82) at $3,000 each. This maintains 9 positions (under 10 max), respects 2-buy/2-sell limits, and improves portfolio mean reversion exposure while reducing exposure to weak technical positions. Holdings with gains (PROX, UKW) kept for potential continuation; small loser (WPP) held as mean reversion bounce candidate."
}Prompts & responses
#737 • openrouter • minimax/minimax-m2.1 • 2026-03-02T20:09:20.300750+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": "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": "CRDA_CFD.UK", "name": "CRODA INTERNATIONAL PLC", "sector": "", "last_price": 3121.0, "change_1d_pct": 13.367235742826011, "distance_from_ma200_pct": 10.093851216079353, "distance_from_ma50_pct": 9.83246554776207, "volatility_20d_pct": 109.18178749390499, "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": "", "sector": "", "last_price": 2960.0, "change_1d_pct": 9.023941068139973, "distance_from_ma200_pct": 12.939755835694466, "distance_from_ma50_pct": 17.95826987098712, "volatility_20d_pct": 137.0123103901981, "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": "INF_CFD.UK", "name": "INFORMA PLC", "sector": "", "last_price": 841.2, "change_1d_pct": -5.142083897158312, "distance_from_ma200_pct": -0.9669030259720546, "distance_from_ma50_pct": -5.993674353237144, "volatility_20d_pct": 82.19219236094925, "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": "PSN_CFD.UK", "name": "", "sector": "", "last_price": 1534.5, "change_1d_pct": 7.382785164450656, "distance_from_ma200_pct": 21.219431937066368, "distance_from_ma50_pct": 9.190705106538676, "volatility_20d_pct": 86.88935643255697, "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": "BIG_CFD.FR", "name": "Bigben Interactive", "sector": "", "last_price": 0.473, "change_1d_pct": -40.65244667503137, "distance_from_ma200_pct": -57.481044006670004, "distance_from_ma50_pct": -45.84258856396987, "volatility_20d_pct": 245.7660340614924, "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": "BTRW_CFD.UK", "name": "Barratt Redrow Plc", "sector": "", "last_price": 377.4, "change_1d_pct": 0.9090909090909038, "distance_from_ma200_pct": -5.28549121293298, "distance_from_ma50_pct": -0.5047525194126434, "volatility_20d_pct": 106.95952062178588, "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": "S92_CFD.DE", "name": "SMA Solar Technology AG", "sector": "", "last_price": 31.14, "change_1d_pct": -5.1708386625251235, "distance_from_ma200_pct": 18.486658265300516, "distance_from_ma50_pct": -9.5837717678376, "volatility_20d_pct": 98.8717509048974, "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": "TCAP_CFD.UK", "name": "TP ICAP GROUP PLC", "sector": "", "last_price": 265.0, "change_1d_pct": 7.72357723577235, "distance_from_ma200_pct": -1.0410112189618959, "distance_from_ma50_pct": 3.1700858141521238, "volatility_20d_pct": 67.76567663345816, "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": "BLND_CFD.UK", "name": "BRITISH LAND CO PLC", "sector": "", "last_price": 412.2, "change_1d_pct": -1.1036468330134386, "distance_from_ma200_pct": 10.038592258830414, "distance_from_ma50_pct": 2.655801721389861, "volatility_20d_pct": 88.77968057978609, "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": 53.0, "change_1d_pct": 4.330708661417337, "distance_from_ma200_pct": -10.5807971249533, "distance_from_ma50_pct": -21.072484944948812, "volatility_20d_pct": 128.31257124496162, "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": "", "sector": "", "last_price": 2904.0, "change_1d_pct": 16.814159292035402, "distance_from_ma200_pct": 32.70582912867817, "distance_from_ma50_pct": 14.464370599684507, "volatility_20d_pct": 76.61600707633436, "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": "TBCG_CFD.UK", "name": "TBC BANK GROUP PLC", "sector": "", "last_price": 4850.0, "change_1d_pct": 23.096446700507613, "distance_from_ma200_pct": 9.813098898141014, "distance_from_ma50_pct": 16.90579807924497, "volatility_20d_pct": 97.89018560398101, "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": "BT_CFD.UK", "name": "BT GROUP PLC", "sector": "", "last_price": 216.2, "change_1d_pct": 8.137848246886392, "distance_from_ma200_pct": 13.016588922021931, "distance_from_ma50_pct": 12.284390080749198, "volatility_20d_pct": 89.91179246153717, "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": 31.26, "change_1d_pct": 23.851030110935035, "distance_from_ma200_pct": 12.691085471826336, "distance_from_ma50_pct": 32.023515896881435, "volatility_20d_pct": 210.87769115491298, "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": "ELV_CFD.US", "name": "Elevance Health Inc", "sector": "", "last_price": 348.18, "change_1d_pct": 0.5603049907578539, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -0.9956733590839151, "volatility_20d_pct": 6143.828814681021, "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": "MKS_CFD.UK", "name": "MARKS & SPENCER GROUP PLC", "sector": "", "last_price": 397.6, "change_1d_pct": 9.411117226197053, "distance_from_ma200_pct": 10.111525306334212, "distance_from_ma50_pct": 12.600812560994456, "volatility_20d_pct": 102.27498035906231, "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": "LPE_CFD.FR", "name": "", "sector": "", "last_price": 90.2, "change_1d_pct": 2.26757369614512, "distance_from_ma200_pct": -2.9581361722202715, "distance_from_ma50_pct": -0.587656998761199, "volatility_20d_pct": 53.26712560046399, "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": "ZS_CFD.US", "name": "Zscaler Inc", "sector": "", "last_price": 151.55, "change_1d_pct": 1.0400693379558623, "distance_from_ma200_pct": -42.90452642215009, "distance_from_ma50_pct": -23.760472559303825, "volatility_20d_pct": 152.59535765367136, "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": "LSS_CFD.FR", "name": "Lectra SA", "sector": "", "last_price": 19.66, "change_1d_pct": 4.574468085106376, "distance_from_ma200_pct": -16.089998811346117, "distance_from_ma50_pct": -12.652425072574891, "volatility_20d_pct": 99.45446194059893, "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": "BYW6_CFD.DE", "name": "BayWa AG vNa", "sector": "", "last_price": 3.005, "change_1d_pct": -3.685897435897445, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -5.657415546904431, "volatility_20d_pct": 6647.725279931619, "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": "MRCY_CFD.US", "name": "Mercury Systems Inc", "sector": "", "last_price": 85.37, "change_1d_pct": 3.8564476885644794, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 3.0149086235919498, "volatility_20d_pct": 9454.668191215436, "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": "ULVR_CFD.UK", "name": "Unilever Plc", "sector": "", "last_price": 5467.0, "change_1d_pct": 1.4097570024114159, "distance_from_ma200_pct": 7.415794279282739, "distance_from_ma50_pct": 8.90828754815911, "volatility_20d_pct": 53.276021992395115, "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": 44.06, "change_1d_pct": -23.57328707718993, "distance_from_ma200_pct": -37.014582710888924, "distance_from_ma50_pct": -27.543858495096142, "volatility_20d_pct": 106.62447985948238, "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": "TMV_CFD.DE", "name": "TEAMVIEWER SE", "sector": "", "last_price": 4.54, "change_1d_pct": 0.48694112439133796, "distance_from_ma200_pct": -41.16175721578471, "distance_from_ma50_pct": -17.628573813143877, "volatility_20d_pct": 87.46690312314288, "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": "RHK_CFD.DE", "name": "Rhoen-Klinikum AG", "sector": "", "last_price": 13.0, "change_1d_pct": 0.015386982612719535, "distance_from_ma200_pct": 2.9486879981627467, "distance_from_ma50_pct": 0.2914624192460913, "volatility_20d_pct": 114.49395403103814, "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": "ETL_CFD.FR", "name": "Eutelsat Communications", "sector": "", "last_price": 2.31, "change_1d_pct": -1.9108280254777066, "distance_from_ma200_pct": -19.835367525342086, "distance_from_ma50_pct": 9.62414578587698, "volatility_20d_pct": 105.4431156650748, "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": "FII_CFD.FR", "name": "Lisi Group", "sector": "", "last_price": 54.0, "change_1d_pct": -14.960629921259837, "distance_from_ma200_pct": 16.40525065283944, "distance_from_ma50_pct": -3.567743481625907, "volatility_20d_pct": 93.59362468468639, "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": "REC_CFD.BE", "name": "", "sector": "", "last_price": 11.24, "change_1d_pct": 6.037735849056602, "distance_from_ma200_pct": 14.193407464225661, "distance_from_ma50_pct": 10.37289147516709, "volatility_20d_pct": 68.35106317682154, "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": "MOS_CFD.US", "name": "The Mosaic Company", "sector": "", "last_price": 31.14, "change_1d_pct": 3.3864541832669293, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 19.517814672936073, "volatility_20d_pct": 4137.377654101071, "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": "INF_CFD.UK",
"selection_reason": "Negative 1d change (-5.1%) with price near MA200 (-1%) and MA50 (-6%); moderate volatility (82%); candidate for short-term mean reversion bounce",
"mean_reversion_score": 85
},
{
"symbol": "LPE_CFD.FR",
"selection_reason": "Small positive 1d change (+2.3%) with price near MA200 (-3%) and MA50 (-0.6%); lowest volatility (53%) in universe; stable mean reversion setup",
"mean_reversion_score": 82
},
{
"symbol": "ULVR_CFD.UK",
"selection_reason": "Positive 1d change (+1.4%) with price above MA200 (+7.4%) and MA50 (+8.9%); moderate volatility (53%); large cap liquidity proxy",
"mean_reversion_score": 78
},
{
"symbol": "RHK_CFD.DE",
"selection_reason": "Flat price (0.02% change) with price near MA200 (+3%) and MA50 (+0.3%); moderate volatility (114%); tight range mean reversion",
"mean_reversion_score": 76
},
{
"symbol": "WKP_CFD.UK",
"selection_reason": "Positive 1d change (+3.7%) with price near MA200 (+1.9%) and MA50 (+5.8%); moderate volatility (70%); sector-agnostic mean reversion",
"mean_reversion_score": 74
}
],
"rejected_common_reasons": [
"Extreme price moves >20% in 1 day (potential binary/event risk): BIG_CFD.FR (-40.7%), AML_CFD.UK (-23.6%), FUTR_CFD.UK (-20.8%), THG_CFD.UK (-20.1%)",
"Extreme distance from moving averages (>30%): ATG_CFD.UK (-30.3% from MA200), ZS_CFD.US (-42.9% from MA200), TMV_CFD.DE (-41.2% from MA200), FUTR_CFD.UK (-37.7% from MA200)",
"Abnormal volatility readings (>5000%): ELV_CFD.US (6144%), BYW6_CFD.DE (6647%), MRCY_CFD.US (9455%), MOS_CFD.US (4137%)",
"Missing MA200 data prevents reliable mean reversion calculation: ELV_CFD.US, BYW6_CFD.DE, MRCY_CFD.US, MOS_CFD.US"
]
}#738 • openrouter • minimax/minimax-m2.1 • 2026-03-02T20:09:26.148347+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": "ATO_CFD.FR", "qty": 74.36787307882994, "avg_price": 40.34, "last_price": 39.505, "unrealized_pnl": -62.09717402082307, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 6622.516556291391, "avg_price": 0.453, "last_price": 0.453, "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": "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": "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": 7.24287783679382, "avg_price": 414.2, "last_price": 414.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 2.1291696238466997, "avg_price": 1409.0, "last_price": 1244.0, "unrealized_pnl": -351.31298793470546, "opened_at": "2026-02-26T10:33:24.101894+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": "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": "OCDO_CFD.UK", "qty": 13.824884792626728, "avg_price": 217.0, "last_price": 217.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "PROX_CFD.BE", "qty": 429.79942693409737, "avg_price": 6.98, "last_price": 7.24, "unrealized_pnl": 111.74785100286522, "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": "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": "TRST_CFD.UK", "qty": 0.0, "avg_price": 134.3, "last_price": 139.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 32.48511099079589, "avg_price": 92.35, "last_price": 95.1, "unrealized_pnl": 89.3340552246887, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 11.389521640091116, "avg_price": 263.4, "last_price": 257.0, "unrealized_pnl": -72.89293849658289, "opened_at": "2026-02-27T18:23:55.960577+00:00"}], "candidates": [{"symbol": "INF_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Negative 1d change (-5.1%) with price near MA200 (-1%) and MA50 (-6%); moderate volatility (82%); candidate for short-term mean reversion bounce"}, {"symbol": "LPE_CFD.FR", "mean_reversion_score": 82, "selection_reason": "Small positive 1d change (+2.3%) with price near MA200 (-3%) and MA50 (-0.6%); lowest volatility (53%) in universe; stable mean reversion setup"}, {"symbol": "ULVR_CFD.UK", "mean_reversion_score": 78, "selection_reason": "Positive 1d change (+1.4%) with price above MA200 (+7.4%) and MA50 (+8.9%); moderate volatility (53%); large cap liquidity proxy"}, {"symbol": "RHK_CFD.DE", "mean_reversion_score": 76, "selection_reason": "Flat price (0.02% change) with price near MA200 (+3%) and MA50 (+0.3%); moderate volatility (114%); tight range mean reversion"}, {"symbol": "WKP_CFD.UK", "mean_reversion_score": 74, "selection_reason": "Positive 1d change (+3.7%) with price near MA200 (+1.9%) and MA50 (+5.8%); moderate volatility (70%); sector-agnostic mean reversion"}], "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 mean reversion score (85); significant negative 1d change (-5.1%) with price near MA200 (-1%) and MA50 (-6%); strong bounce candidate with moderate volatility (82%); excellent risk/reward setup",
"symbol": "INF_CFD.UK",
"position_size": 3000
},
{
"reason": "Second highest mean reversion score (82); stable setup with small positive 1d change (+2.3%) near MA200 (-3%) and MA50 (-0.6%); lowest volatility (53%) in universe provides excellent risk control for mean reversion strategy",
"symbol": "LPE_CFD.FR",
"position_size": 3000
}
],
"hold": [
{
"reason": "Position at cost basis with no unrealized P&L; price stable at MA200/MA50 levels; no clear mean reversion signal to exit",
"symbol": "BIG_CFD.FR"
},
{
"reason": "Position at cost basis; price exactly at MA200 and MA50; no clear directional signal for mean reversion trade",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Position at cost basis; price at MA200/MA50 equilibrium; holding for now as no clear mean reversion edge",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Position at cost basis; price at MA200/MA50 equilibrium; maintaining position without clear reversion signal",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Solid unrealized gain (+3.7%) with price above MA200 (+3.7%) and MA50 (+3.8%); momentum positive but not overextended; holding for continued mean reversion upside",
"symbol": "PROX_CFD.BE"
},
{
"reason": "Good unrealized gain (+3.0%) with price above MA200 (+3.0%) and MA50 (+3.1%); price in favorable position; holding for potential continuation",
"symbol": "UKW_CFD.UK"
},
{
"reason": "Minor unrealized loss (-2.4%) with price near MA200 (-2.4%) and MA50 (-5.4%); small enough to hold for mean reversion bounce",
"symbol": "WPP_CFD.UK"
}
],
"sell": [
{
"reason": "Significant unrealized loss (-11.7%) with price far below MA200 (-12%) and MA50 (-13%); weak technicals suggest continued mean reversion downside; freeing capital for better opportunities",
"symbol": "HIK_CFD.UK"
},
{
"reason": "Unrealized loss (-2.1%) with price below MA200 (-1%) and MA50 (-6%); price showing negative momentum; better to reallocate to stronger mean reversion candidates",
"symbol": "ATO_CFD.FR"
}
]
},
"portfolio_rationale": "Mean reversion rebalancing: Selling 2 underperformers (HIK_CFD.UK at -11.7% loss, ATO_CFD.FR at -2.1% loss) to free $6,600+ capital. Buying top 2 mean reversion candidates (INF_CFD.UK score 85, LPE_CFD.FR score 82) at $3,000 each. This maintains 9 positions (under 10 max), respects 2-buy/2-sell limits, and improves portfolio mean reversion exposure while reducing exposure to weak technical positions. Holdings with gains (PROX, UKW) kept for potential continuation; small loser (WPP) held as mean reversion bounce candidate."
}Selection logs
#367 • stage1 • 2026-03-02T20:09:26.146162+00:00
{
"selected_stocks": [
{
"symbol": "INF_CFD.UK",
"selection_reason": "Negative 1d change (-5.1%) with price near MA200 (-1%) and MA50 (-6%); moderate volatility (82%); candidate for short-term mean reversion bounce",
"mean_reversion_score": 85
},
{
"symbol": "LPE_CFD.FR",
"selection_reason": "Small positive 1d change (+2.3%) with price near MA200 (-3%) and MA50 (-0.6%); lowest volatility (53%) in universe; stable mean reversion setup",
"mean_reversion_score": 82
},
{
"symbol": "ULVR_CFD.UK",
"selection_reason": "Positive 1d change (+1.4%) with price above MA200 (+7.4%) and MA50 (+8.9%); moderate volatility (53%); large cap liquidity proxy",
"mean_reversion_score": 78
},
{
"symbol": "RHK_CFD.DE",
"selection_reason": "Flat price (0.02% change) with price near MA200 (+3%) and MA50 (+0.3%); moderate volatility (114%); tight range mean reversion",
"mean_reversion_score": 76
},
{
"symbol": "WKP_CFD.UK",
"selection_reason": "Positive 1d change (+3.7%) with price near MA200 (+1.9%) and MA50 (+5.8%); moderate volatility (70%); sector-agnostic mean reversion",
"mean_reversion_score": 74
}
],
"rejected_common_reasons": [
"Extreme price moves >20% in 1 day (potential binary/event risk): BIG_CFD.FR (-40.7%), AML_CFD.UK (-23.6%), FUTR_CFD.UK (-20.8%), THG_CFD.UK (-20.1%)",
"Extreme distance from moving averages (>30%): ATG_CFD.UK (-30.3% from MA200), ZS_CFD.US (-42.9% from MA200), TMV_CFD.DE (-41.2% from MA200), FUTR_CFD.UK (-37.7% from MA200)",
"Abnormal volatility readings (>5000%): ELV_CFD.US (6144%), BYW6_CFD.DE (6647%), MRCY_CFD.US (9455%), MOS_CFD.US (4137%)",
"Missing MA200 data prevents reliable mean reversion calculation: ELV_CFD.US, BYW6_CFD.DE, MRCY_CFD.US, MOS_CFD.US"
]
}