Arena run #235
meanrev-v1 • minimax • minimax/minimax-m2.1 • EU • success
Run status
as_of: 2026-02-22T09:32:59.506254+00:00
started_at: 2026-02-22T09:36:48.437398+00:00
finished_at: 2026-02-22T09:38:38.322630+00:00
duration_ms: 109882
Inputs
{
"dry_run": false,
"selected": [
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "Deep MA200 pullback (-38%) with strong momentum oversell; high volatility (146%) suitable for mean-reversion entry",
"mean_reversion_score": 88
},
{
"symbol": "BIG_CFD.FR",
"selection_reason": "Extreme MA200 distance (-57%) and MA50 (-46%); large drop (-41% 1d) creates sharp mean-reversion setup",
"mean_reversion_score": 82
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "Significant MA200 pullback (-14%) with sharp 1d decline (-21%); elevated volatility (241%) supports reversion play",
"mean_reversion_score": 79
},
{
"symbol": "RMV_CFD.UK",
"selection_reason": "Deep MA200 overshoot (-37%) with 1d drop (-15%); solid volatility (138%) for short-term reversion",
"mean_reversion_score": 76
},
{
"symbol": "BYIT_CFD.UK",
"selection_reason": "Clear MA200 distance (-28%) and MA50 (-14%); moderate 1d decline (-13%) with manageable volatility (88%)",
"mean_reversion_score": 73
}
],
"universe_symbols": [
"UKW_CFD.UK",
"FUTR_CFD.UK",
"BIG_CFD.FR",
"LIO_CFD.UK",
"AMG_CFD.NL",
"ATG_CFD.UK",
"EZJ_CFD.UK",
"BYIT_CFD.UK",
"STJ_CFD.UK",
"WKP_CFD.UK",
"PZC_CFD.UK",
"FCNCA_CFD.US",
"OCDO_CFD.UK",
"BTRW_CFD.UK",
"PNN_CFD.UK",
"HMSO_CFD.UK",
"MSLH_CFD.UK",
"PAGE_CFD.UK",
"ESTC_CFD.US",
"RMV_CFD.UK",
"EXM_CFD.BE",
"MPT_CFD.US",
"ZS_CFD.US",
"IPR_CFD.PT",
"NET_CFD.US",
"GRI_CFD.UK",
"GMM_CFD.DE",
"TTEK_CFD.US",
"THG_CFD.UK",
"FND_CFD.US",
"AIXA_CFD.DE",
"DOM_CFD.UK",
"BXP_CFD.US",
"LYV_CFD.US",
"MCG_CFD.UK",
"LOPE_CFD.US",
"MKS_CFD.UK",
"ETSY_CFD.US",
"BAMNB_CFD.NL",
"OVH_CFD.FR",
"HFG_CFD.DE",
"TFF_CFD.FR",
"RS1_CFD.UK",
"SGL_CFD.DE",
"LIGHT_CFD.NL",
"VBK_CFD.DE",
"TKA_CFD.DE",
"MNDI_CFD.UK",
"IGG_CFD.UK",
"AAF_CFD.UK"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Strong mean reversion score 82; extreme MA200 distance (-57%) and MA50 (-46%); sharp 1d decline (-41%) creates compelling mean-reversion entry",
"symbol": "BIG_CFD.FR",
"position_size": 3000
},
{
"reason": "Good mean reversion score 79; significant MA200 pullback (-14%); sharp 1d decline (-21%) with elevated volatility (241%) supports reversion play",
"symbol": "OCDO_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Mean reversion score 73; holding existing position at target size",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Highest mean reversion score 88; strong MA200 pullback setup; maintaining position",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Mean reversion score 76; deep MA200 overshoot (-37%); holding existing position",
"symbol": "RMV_CFD.UK"
}
],
"sell": []
},
"portfolio_rationale": "Maintaining existing mean-reversion positions in FUTR (score 88) and RMV (score 76) which show strong pullback characteristics. Adding BIG (score 82) and OCDO (score 79) as new mean-reversion opportunities with extreme price deviations from moving averages. Limiting to 2 buys per run to avoid overtrading. Portfolio will have 5 positions totaling 18,000 EUR (1.8x leverage, within 3.0x limit)."
}Prompts & responses
#457 • openrouter • minimax/minimax-m2.1 • 2026-02-22T09:36:48.555944+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": "UKW_CFD.UK", "name": "GREENCOAT UK WIND PLC", "sector": "", "last_price": 98.15, "change_1d_pct": -2.163078149920239, "distance_from_ma200_pct": -12.46829595436757, "distance_from_ma50_pct": -6.845149398930528, "volatility_20d_pct": 32.62462101640031, "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": 422.0, "change_1d_pct": -13.70143149284253, "distance_from_ma200_pct": -38.122509366851766, "distance_from_ma50_pct": -25.139370269544393, "volatility_20d_pct": 146.49494054552733, "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": "LIO_CFD.UK", "name": "LIONTRUST ASSET MANAGEMENT", "sector": "", "last_price": 259.0, "change_1d_pct": 0.19342359767891004, "distance_from_ma200_pct": -20.670350849922237, "distance_from_ma50_pct": -0.35817197640911624, "volatility_20d_pct": 128.03912578370827, "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": 36.42, "change_1d_pct": -1.3542795232936111, "distance_from_ma200_pct": 34.93879125298744, "distance_from_ma50_pct": 8.704217078918909, "volatility_20d_pct": 81.71810340870856, "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": "EZJ_CFD.UK", "name": "EASYJET PLC", "sector": "", "last_price": 487.6, "change_1d_pct": -1.6142050040355072, "distance_from_ma200_pct": -2.529174031700998, "distance_from_ma50_pct": -0.5931384801188377, "volatility_20d_pct": 77.17417093400987, "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": "STJ_CFD.UK", "name": "", "sector": "", "last_price": 1315.5, "change_1d_pct": -13.567674113009199, "distance_from_ma200_pct": 8.317499463970401, "distance_from_ma50_pct": -4.3458192033457355, "volatility_20d_pct": 123.71728088179634, "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": "PZC_CFD.UK", "name": "PZ CUSSONS PLC", "sector": "", "last_price": 88.8, "change_1d_pct": -1.442841287458374, "distance_from_ma200_pct": 17.468164209381708, "distance_from_ma50_pct": 17.734408145948244, "volatility_20d_pct": 83.4578314576364, "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": "FCNCA_CFD.US", "name": "First Citizens BancShares Inc", "sector": "", "last_price": 2062.21, "change_1d_pct": 2.9771445977459177, "distance_from_ma200_pct": 5.907751416577356, "distance_from_ma50_pct": -2.1858617088771015, "volatility_20d_pct": 72.5049794337677, "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": 221.9, "change_1d_pct": -21.312056737588648, "distance_from_ma200_pct": -14.06664037160078, "distance_from_ma50_pct": -3.1767959417158487, "volatility_20d_pct": 240.9598068877464, "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": 388.0, "change_1d_pct": 2.2397891963109373, "distance_from_ma200_pct": -2.8590849601202617, "distance_from_ma50_pct": 2.260106487560365, "volatility_20d_pct": 106.15413330134574, "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": "PNN_CFD.UK", "name": "PENNON GROUP PLC", "sector": "", "last_price": 555.5, "change_1d_pct": 7.728110152235046, "distance_from_ma200_pct": 15.15330418465657, "distance_from_ma50_pct": 10.049118953291236, "volatility_20d_pct": 59.72600720990832, "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": "", "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": "", "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": "PAGE_CFD.UK", "name": "PAGEGROUP PLC", "sector": "", "last_price": 209.6, "change_1d_pct": -10.960067969413767, "distance_from_ma200_pct": -19.313052268665963, "distance_from_ma50_pct": -8.41066281665177, "volatility_20d_pct": 112.6882126676479, "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": "ESTC_CFD.US", "name": "Elastic NV", "sector": "", "last_price": 59.09, "change_1d_pct": -1.2203276496155047, "distance_from_ma200_pct": -27.141220757538953, "distance_from_ma50_pct": -16.549448935437038, "volatility_20d_pct": 109.99815234579803, "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": "RMV_CFD.UK", "name": "RIGHTMOVE PLC", "sector": "", "last_price": 431.4, "change_1d_pct": -14.810426540284361, "distance_from_ma200_pct": -37.284210035093366, "distance_from_ma50_pct": -17.526388114623416, "volatility_20d_pct": 137.79982108268825, "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": "EXM_CFD.BE", "name": "EXMAR NV", "sector": "", "last_price": 10.16, "change_1d_pct": 3.1472081218274273, "distance_from_ma200_pct": -8.5278841401216, "distance_from_ma50_pct": 0.656845358986291, "volatility_20d_pct": 89.98945159197974, "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": "", "sector": "", "last_price": 5.75, "change_1d_pct": 5.893186003683248, "distance_from_ma200_pct": 18.174157880674912, "distance_from_ma50_pct": 9.59478519422101, "volatility_20d_pct": 129.59427042612668, "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": 162.26, "change_1d_pct": -5.349122090649249, "distance_from_ma200_pct": -39.45029856906272, "distance_from_ma50_pct": -22.410635471527772, "volatility_20d_pct": 108.40428222531867, "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": "IPR_CFD.PT", "name": "Impresa SGPS SA", "sector": "", "last_price": 0.198, "change_1d_pct": 3.125, "distance_from_ma200_pct": 30.576713819368862, "distance_from_ma50_pct": -1.1680143755615324, "volatility_20d_pct": 421.9087433253912, "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": "NET_CFD.US", "name": "", "sector": "", "last_price": 179.6, "change_1d_pct": -6.248368742496213, "distance_from_ma200_pct": -8.332153033243628, "distance_from_ma50_pct": -5.270264568125249, "volatility_20d_pct": 166.25059202681575, "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": "", "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": "GMM_CFD.DE", "name": "", "sector": "", "last_price": 7.5600000000000005, "change_1d_pct": 0.8000000000000007, "distance_from_ma200_pct": 13.48412010402711, "distance_from_ma50_pct": 16.356741149346043, "volatility_20d_pct": 188.43585385392208, "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": "TTEK_CFD.US", "name": "", "sector": "", "last_price": 36.79, "change_1d_pct": -1.2614063338700965, "distance_from_ma200_pct": 3.6821391381052226, "distance_from_ma50_pct": 1.3057677374586296, "volatility_20d_pct": 82.36393725038043, "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": "FND_CFD.US", "name": "", "sector": "", "last_price": 69.88, "change_1d_pct": 2.35828328694887, "distance_from_ma200_pct": -4.505122532172123, "distance_from_ma50_pct": 3.623255027685257, "volatility_20d_pct": 101.95380507638971, "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": "AIXA_CFD.DE", "name": "Aixtron AG NA", "sector": "", "last_price": 23.33, "change_1d_pct": -0.08565310492506528, "distance_from_ma200_pct": 47.941423313171306, "distance_from_ma50_pct": 17.883414162380994, "volatility_20d_pct": 94.4406414757918, "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": 202.0, "change_1d_pct": 8.58463688652369, "distance_from_ma200_pct": -7.069225606016771, "distance_from_ma50_pct": 12.253653245130858, "volatility_20d_pct": 71.7523831897994, "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": "BXP_CFD.US", "name": "", "sector": "", "last_price": 61.61, "change_1d_pct": 0.917280917280916, "distance_from_ma200_pct": -11.217363987192009, "distance_from_ma50_pct": -7.101930036188165, "volatility_20d_pct": 61.666629110810476, "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": "LYV_CFD.US", "name": "", "sector": "", "last_price": 165.05, "change_1d_pct": 4.820271815064148, "distance_from_ma200_pct": 10.90366835469152, "distance_from_ma50_pct": 13.405561098147857, "volatility_20d_pct": 72.00466748427584, "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": "", "sector": "", "last_price": 23.34, "change_1d_pct": -10.437452033768224, "distance_from_ma200_pct": -15.963814753139205, "distance_from_ma50_pct": -0.07192766132346762, "volatility_20d_pct": 137.63902050046556, "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": "LOPE_CFD.US", "name": "", "sector": "", "last_price": 158.85, "change_1d_pct": -1.3292751102553013, "distance_from_ma200_pct": -14.042719442687313, "distance_from_ma50_pct": -5.7488177810477215, "volatility_20d_pct": 75.0822395888559, "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": 402.7, "change_1d_pct": 11.181667586968524, "distance_from_ma200_pct": 11.557658785096358, "distance_from_ma50_pct": 15.11180451974623, "volatility_20d_pct": 99.86569172703864, "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": "ETSY_CFD.US", "name": "Etsy, Inc.", "sector": "", "last_price": 52.87, "change_1d_pct": 18.250950570342205, "distance_from_ma200_pct": -9.174227607289776, "distance_from_ma50_pct": -4.950074968448536, "volatility_20d_pct": 122.55733112018908, "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": "BAMNB_CFD.NL", "name": "Royal BAM Group NV", "sector": "", "last_price": 9.785, "change_1d_pct": 0.3075345976422339, "distance_from_ma200_pct": 41.52034942581935, "distance_from_ma50_pct": 15.025626557577464, "volatility_20d_pct": 148.35954258523313, "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": "", "sector": "", "last_price": 9.165, "change_1d_pct": 2.402234636871503, "distance_from_ma200_pct": -10.265517138405045, "distance_from_ma50_pct": 9.222086100133954, "volatility_20d_pct": 88.51993782807467, "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": "HFG_CFD.DE", "name": "", "sector": "", "last_price": 5.026, "change_1d_pct": -0.0198925800676375, "distance_from_ma200_pct": -32.5860932326551, "distance_from_ma50_pct": -11.190743764268507, "volatility_20d_pct": 123.17735341231453, "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": "TFF_CFD.FR", "name": "", "sector": "", "last_price": 18.2, "change_1d_pct": 7.058823529411762, "distance_from_ma200_pct": -4.619432847233096, "distance_from_ma50_pct": 2.10401594169074, "volatility_20d_pct": 84.68971432641365, "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": "RS1_CFD.UK", "name": "", "sector": "", "last_price": 733.5, "change_1d_pct": 25.384615384615383, "distance_from_ma200_pct": 27.719246802948703, "distance_from_ma50_pct": 25.132468113824658, "volatility_20d_pct": 102.39099316712235, "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": "", "sector": "", "last_price": 4.327, "change_1d_pct": -1.2325952978772037, "distance_from_ma200_pct": 25.99603696310824, "distance_from_ma50_pct": 17.071243817707593, "volatility_20d_pct": 69.36439040177764, "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": "LIGHT_CFD.NL", "name": "", "sector": "", "last_price": 20.6, "change_1d_pct": 3.4136546184738936, "distance_from_ma200_pct": -4.499864399079301, "distance_from_ma50_pct": 0.24916296815387096, "volatility_20d_pct": 100.13797528661827, "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": "", "sector": "", "last_price": 24.359, "change_1d_pct": -1.3805668016194206, "distance_from_ma200_pct": 62.97984346334342, "distance_from_ma50_pct": 6.556652758907, "volatility_20d_pct": 107.97155160750738, "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": "TKA_CFD.DE", "name": "", "sector": "", "last_price": 11.44, "change_1d_pct": 4.474885844748866, "distance_from_ma200_pct": 14.978398835341178, "distance_from_ma50_pct": 10.325672899810012, "volatility_20d_pct": 97.41389372392986, "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": "MNDI_CFD.UK", "name": "", "sector": "", "last_price": 939.6, "change_1d_pct": 9.817671809256655, "distance_from_ma200_pct": -6.625801707825607, "distance_from_ma50_pct": 4.970291932704618, "volatility_20d_pct": 90.09877279472504, "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": "", "sector": "", "last_price": 1372.0, "change_1d_pct": 11.81744091279544, "distance_from_ma200_pct": 25.343736010743754, "distance_from_ma50_pct": 15.973880518163174, "volatility_20d_pct": 82.27265742988861, "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": "AAF_CFD.UK", "name": "AIRTEL AFRICA PLC", "sector": "", "last_price": 353.8, "change_1d_pct": 7.277137659187383, "distance_from_ma200_pct": 40.183323969288054, "distance_from_ma50_pct": 3.356002710977135, "volatility_20d_pct": 77.24935932192999, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}], "output_schema": {"selected_stocks": [{"symbol": "string", "mean_reversion_score": "integer 0-100", "selection_reason": "short, concrete, indicator-based"}], "rejected_common_reasons": ["string"]}}Output JSON
{
"selected_stocks": [
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "Deep MA200 pullback (-38%) with strong momentum oversell; high volatility (146%) suitable for mean-reversion entry",
"mean_reversion_score": 88
},
{
"symbol": "BIG_CFD.FR",
"selection_reason": "Extreme MA200 distance (-57%) and MA50 (-46%); large drop (-41% 1d) creates sharp mean-reversion setup",
"mean_reversion_score": 82
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "Significant MA200 pullback (-14%) with sharp 1d decline (-21%); elevated volatility (241%) supports reversion play",
"mean_reversion_score": 79
},
{
"symbol": "RMV_CFD.UK",
"selection_reason": "Deep MA200 overshoot (-37%) with 1d drop (-15%); solid volatility (138%) for short-term reversion",
"mean_reversion_score": 76
},
{
"symbol": "BYIT_CFD.UK",
"selection_reason": "Clear MA200 distance (-28%) and MA50 (-14%); moderate 1d decline (-13%) with manageable volatility (88%)",
"mean_reversion_score": 73
}
],
"rejected_common_reasons": [
"No earnings dates available to filter; assuming unknown",
"Sector data unavailable - cannot enforce sector concentration rule",
"US symbols included but EU region specified - filtered to EU symbols only"
]
}#458 • openrouter • minimax/minimax-m2.1 • 2026-02-22T09:36:58.520954+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": "BYIT_CFD.UK", "qty": 10.252904989747094, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+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": "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": 14.977533699450824, "avg_price": 400.6, "last_price": 400.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 7.070469007777516, "avg_price": 424.3, "last_price": 424.3, "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"}], "candidates": [{"symbol": "FUTR_CFD.UK", "mean_reversion_score": 88, "selection_reason": "Deep MA200 pullback (-38%) with strong momentum oversell; high volatility (146%) suitable for mean-reversion entry"}, {"symbol": "BIG_CFD.FR", "mean_reversion_score": 82, "selection_reason": "Extreme MA200 distance (-57%) and MA50 (-46%); large drop (-41% 1d) creates sharp mean-reversion setup"}, {"symbol": "OCDO_CFD.UK", "mean_reversion_score": 79, "selection_reason": "Significant MA200 pullback (-14%) with sharp 1d decline (-21%); elevated volatility (241%) supports reversion play"}, {"symbol": "RMV_CFD.UK", "mean_reversion_score": 76, "selection_reason": "Deep MA200 overshoot (-37%) with 1d drop (-15%); solid volatility (138%) for short-term reversion"}, {"symbol": "BYIT_CFD.UK", "mean_reversion_score": 73, "selection_reason": "Clear MA200 distance (-28%) and MA50 (-14%); moderate 1d decline (-13%) with manageable volatility (88%)"}], "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": "Strong mean reversion score 82; extreme MA200 distance (-57%) and MA50 (-46%); sharp 1d decline (-41%) creates compelling mean-reversion entry",
"symbol": "BIG_CFD.FR",
"position_size": 3000
},
{
"reason": "Good mean reversion score 79; significant MA200 pullback (-14%); sharp 1d decline (-21%) with elevated volatility (241%) supports reversion play",
"symbol": "OCDO_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Mean reversion score 73; holding existing position at target size",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Highest mean reversion score 88; strong MA200 pullback setup; maintaining position",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Mean reversion score 76; deep MA200 overshoot (-37%); holding existing position",
"symbol": "RMV_CFD.UK"
}
],
"sell": []
},
"portfolio_rationale": "Maintaining existing mean-reversion positions in FUTR (score 88) and RMV (score 76) which show strong pullback characteristics. Adding BIG (score 82) and OCDO (score 79) as new mean-reversion opportunities with extreme price deviations from moving averages. Limiting to 2 buys per run to avoid overtrading. Portfolio will have 5 positions totaling 18,000 EUR (1.8x leverage, within 3.0x limit)."
}Selection logs
#227 • stage1 • 2026-02-22T09:36:58.516246+00:00
{
"selected_stocks": [
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "Deep MA200 pullback (-38%) with strong momentum oversell; high volatility (146%) suitable for mean-reversion entry",
"mean_reversion_score": 88
},
{
"symbol": "BIG_CFD.FR",
"selection_reason": "Extreme MA200 distance (-57%) and MA50 (-46%); large drop (-41% 1d) creates sharp mean-reversion setup",
"mean_reversion_score": 82
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "Significant MA200 pullback (-14%) with sharp 1d decline (-21%); elevated volatility (241%) supports reversion play",
"mean_reversion_score": 79
},
{
"symbol": "RMV_CFD.UK",
"selection_reason": "Deep MA200 overshoot (-37%) with 1d drop (-15%); solid volatility (138%) for short-term reversion",
"mean_reversion_score": 76
},
{
"symbol": "BYIT_CFD.UK",
"selection_reason": "Clear MA200 distance (-28%) and MA50 (-14%); moderate 1d decline (-13%) with manageable volatility (88%)",
"mean_reversion_score": 73
}
],
"rejected_common_reasons": [
"No earnings dates available to filter; assuming unknown",
"Sector data unavailable - cannot enforce sector concentration rule",
"US symbols included but EU region specified - filtered to EU symbols only"
]
}