Arena run #218
meanrev-v1 • x-ai • x-ai/grok-4.1-fast • EU • success
Run status
as_of: 2026-02-21T09:33:26.900894+00:00
started_at: 2026-02-21T09:42:00.667630+00:00
finished_at: 2026-02-21T09:43:08.375226+00:00
duration_ms: 67706
Inputs
{
"dry_run": false,
"selected": [
{
"symbol": "BIG_CFD.FR",
"selection_reason": "1d drop -40.7%, below MA50 -45.8%, below MA200 -57.5%, high vol 246%",
"mean_reversion_score": 98
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "1d drop -21.3%, below MA50 -3.2%, below MA200 -14.1%, high vol 241%",
"mean_reversion_score": 95
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "1d drop -13.7%, below MA50 -25.1%, below MA200 -38.1%, high vol 146%",
"mean_reversion_score": 92
},
{
"symbol": "RMV_CFD.UK",
"selection_reason": "1d drop -14.8%, below MA50 -17.5%, below MA200 -37.3%, high vol 138%",
"mean_reversion_score": 90
},
{
"symbol": "ARCAD_CFD.NL",
"selection_reason": "1d drop -14.5%, below MA50 -28.1%, below MA200 -31.9%, high vol 178%",
"mean_reversion_score": 88
}
],
"universe_symbols": [
"UKW_CFD.UK",
"FUTR_CFD.UK",
"BIG_CFD.FR",
"LIO_CFD.UK",
"AMG_CFD.NL",
"ATG_CFD.UK",
"EZJ_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",
"FND_CFD.US",
"AIXA_CFD.DE",
"DOM_CFD.UK",
"LYV_CFD.US",
"MCG_CFD.UK",
"LOPE_CFD.US",
"MKS_CFD.UK",
"ETSY_CFD.US",
"BAMNB_CFD.NL",
"OVH_CFD.FR",
"HFG_CFD.DE",
"RS1_CFD.UK",
"SGL_CFD.DE",
"LIGHT_CFD.NL",
"VBK_CFD.DE",
"MNDI_CFD.UK",
"IGG_CFD.UK",
"AAF_CFD.UK",
"LPK_CFD.DE",
"CRST_CFD.UK",
"SZG_CFD.DE",
"RNO_CFD.FR",
"ARCAD_CFD.NL",
"DECB_CFD.BE"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "High score 95 (1d -21.3%, below MA50 -3.2%/MA200 -14.1%, vol 241%), fresh oversold",
"symbol": "OCDO_CFD.UK",
"position_size": 3000
},
{
"reason": "Score 88 (1d -14.5%, below MA50 -28.1%/MA200 -31.9%, vol 178%), new oversold candidate",
"symbol": "ARCAD_CFD.NL",
"position_size": 3000
}
],
"hold": [
{
"reason": "Top mean-reversion score 98, flat pnl, hold for rebound",
"symbol": "BIG_CFD.FR"
},
{
"reason": "Modest +1.5% gain, hold for further reversion",
"symbol": "COIN_CFD.US"
},
{
"reason": "Recent entry with loss, hold expecting mean reversion",
"symbol": "ESTC_CFD.US"
},
{
"reason": "Small +1.8% gain, ongoing hold",
"symbol": "FLO_CFD.US"
},
{
"reason": "Modest +1.1% gain, stable hold",
"symbol": "ICG_CFD.UK"
},
{
"reason": "Flat pnl, retain position",
"symbol": "THG_CFD.UK"
},
{
"reason": "Small gain, hold",
"symbol": "TRN_CFD.UK"
},
{
"reason": "+4% gain not fully reverted, hold",
"symbol": "TRST_CFD.UK"
}
],
"sell": [
{
"reason": "Achieved strong mean-reversion +6.6% unrealized gain (pnl +199), take profit to rotate",
"symbol": "FBIN_CFD.US"
},
{
"reason": "Mean-reversion profit +4.8% unrealized (pnl +144), take profit to rotate",
"symbol": "EXPO_CFD.US"
}
]
},
"portfolio_rationale": "Sell 2 top-reverted winners (FBIN, EXPO) to realize gains and free capacity within max 2 sells/10 positions. Buy 2 fresh high-score oversold candidates (OCDO 95, ARCAD 88) preferring new names over recent churn (FUTR/RMV). Holds maintain strong positions like BIG (98). Preserves leverage <3.0, avoids overtrading, rotates to higher mean-reversion potential."
}Prompts & responses
#423 • openrouter • x-ai/grok-4.1-fast • 2026-02-21T09:42:00.724471+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": "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": "", "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": "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": "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": "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": "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"}, {"symbol": "LPK_CFD.DE", "name": "", "sector": "", "last_price": 7.473, "change_1d_pct": 0.782198246797039, "distance_from_ma200_pct": 1.978990117331092, "distance_from_ma50_pct": 12.571289124284846, "volatility_20d_pct": 77.77795581489434, "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": "CRST_CFD.UK", "name": "CREST NICHOLSON HOLDINGS", "sector": "", "last_price": 169.5, "change_1d_pct": 25.18463810930576, "distance_from_ma200_pct": 2.1353827094136912, "distance_from_ma50_pct": 18.261534511436817, "volatility_20d_pct": 158.5020616154255, "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": "SZG_CFD.DE", "name": "", "sector": "", "last_price": 54.9, "change_1d_pct": 2.9728969333208344, "distance_from_ma200_pct": 80.8409400171354, "distance_from_ma50_pct": 17.991386843680978, "volatility_20d_pct": 99.94609064626975, "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": "RNO_CFD.FR", "name": "", "sector": "", "last_price": 32.58, "change_1d_pct": 0.0, "distance_from_ma200_pct": -9.571287967985242, "distance_from_ma50_pct": -2.9137786148078937, "volatility_20d_pct": 56.38998886497178, "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": "ARCAD_CFD.NL", "name": "Arcadis", "sector": "", "last_price": 30.0, "change_1d_pct": -14.48118586088939, "distance_from_ma200_pct": -31.856636357255674, "distance_from_ma50_pct": -28.05075587477569, "volatility_20d_pct": 177.61215149057202, "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": "DECB_CFD.BE", "name": "Deceuninck Sa", "sector": "", "last_price": 2.4, "change_1d_pct": -1.8404907975460127, "distance_from_ma200_pct": 9.7411252580631, "distance_from_ma50_pct": 9.902187053522372, "volatility_20d_pct": 99.15765185738407, "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": "BIG_CFD.FR",
"selection_reason": "1d drop -40.7%, below MA50 -45.8%, below MA200 -57.5%, high vol 246%",
"mean_reversion_score": 98
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "1d drop -21.3%, below MA50 -3.2%, below MA200 -14.1%, high vol 241%",
"mean_reversion_score": 95
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "1d drop -13.7%, below MA50 -25.1%, below MA200 -38.1%, high vol 146%",
"mean_reversion_score": 92
},
{
"symbol": "RMV_CFD.UK",
"selection_reason": "1d drop -14.8%, below MA50 -17.5%, below MA200 -37.3%, high vol 138%",
"mean_reversion_score": 90
},
{
"symbol": "ARCAD_CFD.NL",
"selection_reason": "1d drop -14.5%, below MA50 -28.1%, below MA200 -31.9%, high vol 178%",
"mean_reversion_score": 88
}
],
"rejected_common_reasons": [
"Insufficient deviation from MA50/MA200",
"Positive 1d change",
"Above MA50",
"Low short-term deviation",
"US-listed symbol"
]
}#424 • openrouter • x-ai/grok-4.1-fast • 2026-02-21T09:42:19.991292+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": "BIG_CFD.FR", "qty": 6622.516556291391, "avg_price": 0.453, "last_price": 0.453, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "COIN_CFD.US", "qty": 17.796233130654013, "avg_price": 168.575, "last_price": 171.13, "unrealized_pnl": 45.46937564882113, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "ESTC_CFD.US", "qty": 48.8997555012225, "avg_price": 61.349999999999994, "last_price": 58.085, "unrealized_pnl": -159.65770171149114, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "EXPO_CFD.US", "qty": 44.90009728354411, "avg_price": 66.815, "last_price": 70.025, "unrealized_pnl": 144.12931228017695, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "FBIN_CFD.US", "qty": 58.85237861696911, "avg_price": 50.974999999999994, "last_price": 54.35, "unrealized_pnl": 198.62677783227116, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "FLO_CFD.US", "qty": 303.7974683544304, "avg_price": 9.875, "last_price": 10.055, "unrealized_pnl": 54.68354430379739, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 0.0, "avg_price": 400.6, "last_price": 400.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "ICG_CFD.UK", "qty": 1.7647058823529411, "avg_price": 1700.0, "last_price": 1719.0, "unrealized_pnl": 33.529411764705884, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "LMND_CFD.US", "qty": 0.0, "avg_price": 61.5, "last_price": 59.89, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "LPX_CFD.US", "qty": 0.0, "avg_price": 86.45, "last_price": 86.15, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "PAYC_CFD.US", "qty": 0.0, "avg_price": 121.22, "last_price": 119.79, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 0.0, "avg_price": 424.3, "last_price": 424.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "THG_CFD.UK", "qty": 85.76329331046313, "avg_price": 34.98, "last_price": 34.98, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 15.290519877675841, "avg_price": 196.2, "last_price": 196.5, "unrealized_pnl": 4.587155963302926, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "TRST_CFD.UK", "qty": 22.338049143708115, "avg_price": 134.3, "last_price": 139.6, "unrealized_pnl": 118.39166046165263, "opened_at": "2026-02-18T09:36:37.284518+00:00"}], "candidates": [{"symbol": "BIG_CFD.FR", "mean_reversion_score": 98, "selection_reason": "1d drop -40.7%, below MA50 -45.8%, below MA200 -57.5%, high vol 246%"}, {"symbol": "OCDO_CFD.UK", "mean_reversion_score": 95, "selection_reason": "1d drop -21.3%, below MA50 -3.2%, below MA200 -14.1%, high vol 241%"}, {"symbol": "FUTR_CFD.UK", "mean_reversion_score": 92, "selection_reason": "1d drop -13.7%, below MA50 -25.1%, below MA200 -38.1%, high vol 146%"}, {"symbol": "RMV_CFD.UK", "mean_reversion_score": 90, "selection_reason": "1d drop -14.8%, below MA50 -17.5%, below MA200 -37.3%, high vol 138%"}, {"symbol": "ARCAD_CFD.NL", "mean_reversion_score": 88, "selection_reason": "1d drop -14.5%, below MA50 -28.1%, below MA200 -31.9%, high vol 178%"}], "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": "High score 95 (1d -21.3%, below MA50 -3.2%/MA200 -14.1%, vol 241%), fresh oversold",
"symbol": "OCDO_CFD.UK",
"position_size": 3000
},
{
"reason": "Score 88 (1d -14.5%, below MA50 -28.1%/MA200 -31.9%, vol 178%), new oversold candidate",
"symbol": "ARCAD_CFD.NL",
"position_size": 3000
}
],
"hold": [
{
"reason": "Top mean-reversion score 98, flat pnl, hold for rebound",
"symbol": "BIG_CFD.FR"
},
{
"reason": "Modest +1.5% gain, hold for further reversion",
"symbol": "COIN_CFD.US"
},
{
"reason": "Recent entry with loss, hold expecting mean reversion",
"symbol": "ESTC_CFD.US"
},
{
"reason": "Small +1.8% gain, ongoing hold",
"symbol": "FLO_CFD.US"
},
{
"reason": "Modest +1.1% gain, stable hold",
"symbol": "ICG_CFD.UK"
},
{
"reason": "Flat pnl, retain position",
"symbol": "THG_CFD.UK"
},
{
"reason": "Small gain, hold",
"symbol": "TRN_CFD.UK"
},
{
"reason": "+4% gain not fully reverted, hold",
"symbol": "TRST_CFD.UK"
}
],
"sell": [
{
"reason": "Achieved strong mean-reversion +6.6% unrealized gain (pnl +199), take profit to rotate",
"symbol": "FBIN_CFD.US"
},
{
"reason": "Mean-reversion profit +4.8% unrealized (pnl +144), take profit to rotate",
"symbol": "EXPO_CFD.US"
}
]
},
"portfolio_rationale": "Sell 2 top-reverted winners (FBIN, EXPO) to realize gains and free capacity within max 2 sells/10 positions. Buy 2 fresh high-score oversold candidates (OCDO 95, ARCAD 88) preferring new names over recent churn (FUTR/RMV). Holds maintain strong positions like BIG (98). Preserves leverage <3.0, avoids overtrading, rotates to higher mean-reversion potential."
}Selection logs
#210 • stage1 • 2026-02-21T09:42:19.985722+00:00
{
"selected_stocks": [
{
"symbol": "BIG_CFD.FR",
"selection_reason": "1d drop -40.7%, below MA50 -45.8%, below MA200 -57.5%, high vol 246%",
"mean_reversion_score": 98
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "1d drop -21.3%, below MA50 -3.2%, below MA200 -14.1%, high vol 241%",
"mean_reversion_score": 95
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "1d drop -13.7%, below MA50 -25.1%, below MA200 -38.1%, high vol 146%",
"mean_reversion_score": 92
},
{
"symbol": "RMV_CFD.UK",
"selection_reason": "1d drop -14.8%, below MA50 -17.5%, below MA200 -37.3%, high vol 138%",
"mean_reversion_score": 90
},
{
"symbol": "ARCAD_CFD.NL",
"selection_reason": "1d drop -14.5%, below MA50 -28.1%, below MA200 -31.9%, high vol 178%",
"mean_reversion_score": 88
}
],
"rejected_common_reasons": [
"Insufficient deviation from MA50/MA200",
"Positive 1d change",
"Above MA50",
"Low short-term deviation",
"US-listed symbol"
]
}