Arena run #592
meanrev-v1 • x-ai • x-ai/grok-4.1-fast • US • success
Run status
as_of: 2026-03-12T18:01:52.554929+00:00
started_at: 2026-03-12T19:25:30.673618+00:00
finished_at: 2026-03-12T19:26:31.788586+00:00
duration_ms: 61113
Inputs
{
"as_of": "2026-03-12T18:01:52.554929+00:00",
"dry_run": false,
"selected": [
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "-21.1% 1d drop, -5.5% below MA50, -15.8% below MA200",
"mean_reversion_score": 95
},
{
"symbol": "RSW_CFD.UK",
"selection_reason": "+18.2% 1d rise, +14.3% above MA50, +36.8% above MA200",
"mean_reversion_score": 94
},
{
"symbol": "ITRK_CFD.UK",
"selection_reason": "-12.3% 1d drop, -13.6% below MA50, -14.4% below MA200",
"mean_reversion_score": 92
},
{
"symbol": "PSN_CFD.UK",
"selection_reason": "-17.5% 1d drop, -11.3% below MA50",
"mean_reversion_score": 90
},
{
"symbol": "SAFE_CFD.UK",
"selection_reason": "+13.2% 1d rise, +10.3% above MA50, +21.4% above MA200",
"mean_reversion_score": 88
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"ROR_CFD.UK",
"SAFE_CFD.UK",
"UTG_CFD.UK",
"WIX_CFD.UK",
"KGF_CFD.UK",
"RHIM_CFD.UK",
"CBG_CFD.UK",
"RSW_CFD.UK",
"DOM_CFD.UK",
"DLN_CFD.UK",
"MCG_CFD.UK",
"SGRO_CFD.UK",
"OCDO_CFD.UK",
"LRE_CFD.UK",
"LIO_CFD.UK",
"SMIN_CFD.UK",
"BBY_CFD.UK",
"CCC_CFD.UK",
"MAB_CFD.UK",
"OSB_CFD.UK",
"IPO_CFD.UK",
"ATG_CFD.UK",
"BME_CFD.UK",
"ITRK_CFD.UK",
"RIVN_CFD.US",
"WKP_CFD.UK",
"PSN_CFD.UK",
"DPLM_CFD.UK",
"WLN_CFD.FR",
"IGG_CFD.UK",
"HMSO_CFD.UK"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Top mean reversion score 95, strongly oversold (-21.1% 1d drop, -5.5% below MA50, -15.8% below MA200)",
"symbol": "OCDO_CFD.UK",
"position_size": 3000
},
{
"reason": "High mean reversion score 92, oversold (-12.3% 1d drop, -13.6% below MA50, -14.4% below MA200)",
"symbol": "ITRK_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Positive PnL (+70), stable hold",
"symbol": "BIG_CFD.FR"
},
{
"reason": "Positive PnL (+79), stable hold",
"symbol": "BLND_CFD.UK"
},
{
"reason": "Flat PnL, no strong sell signal",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Flat PnL, no strong sell signal",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Small positive PnL (+15), stable hold",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "Flat PnL, no strong sell signal",
"symbol": "TRN_CFD.UK"
},
{
"reason": "Flat PnL, no strong sell signal",
"symbol": "TRST_CFD.UK"
}
],
"sell": [
{
"reason": "Significant unrealized loss (-150), continued decline from avg_price 427.6 to 406.1, no mean reversion bounce observed",
"symbol": "VTY_CFD.UK"
}
]
},
"portfolio_rationale": "Sell underperforming VTY to cut losses (1 sell < max 2). Buy top 2 oversold mean reversion candidates (OCDO, ITRK) for clear improvement over current holdings (2 buys = max). Keeps 9 positions < max 10, exposure controlled < 3x leverage, low turnover."
}Prompts & responses
#1169 • openrouter • x-ai/grok-4.1-fast • 2026-03-12T19:25:30.709280+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": "ROR_CFD.UK", "name": "ROTORK PLC", "sector": "", "last_price": 371.2, "change_1d_pct": 8.538011695906423, "distance_from_ma200_pct": 13.511525838626781, "distance_from_ma50_pct": 8.597200345451439, "volatility_20d_pct": 70.27413083068154, "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": "SAFE_CFD.UK", "name": "SAFESTORE HOLDINGS PLC", "sector": "", "last_price": 802.5, "change_1d_pct": 13.187588152327212, "distance_from_ma200_pct": 21.40724384452035, "distance_from_ma50_pct": 10.29872606002229, "volatility_20d_pct": 81.07249455345375, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "UTG_CFD.UK", "name": "UNITE GROUP PLC/THE", "sector": "", "last_price": 567.5, "change_1d_pct": 3.4639927073837784, "distance_from_ma200_pct": -23.929923575376698, "distance_from_ma50_pct": -3.6875042216270137, "volatility_20d_pct": 73.84223442053181, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "WIX_CFD.UK", "name": "WICKES GROUP PLC", "sector": "", "last_price": 247.5, "change_1d_pct": 15.984816533108393, "distance_from_ma200_pct": 18.647646929530737, "distance_from_ma50_pct": 10.198455173494668, "volatility_20d_pct": 84.25206447406164, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "KGF_CFD.UK", "name": "KINGFISHER PLC", "sector": "", "last_price": 347.0, "change_1d_pct": 2.6020106445890034, "distance_from_ma200_pct": 18.583930168759967, "distance_from_ma50_pct": 6.639688157278489, "volatility_20d_pct": 88.64906606382688, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "RHIM_CFD.UK", "name": "RHI MAGNESITA NV", "sector": "", "last_price": 2795.0, "change_1d_pct": 2.3809523809523725, "distance_from_ma200_pct": 6.811460460804897, "distance_from_ma50_pct": 10.895008018562113, "volatility_20d_pct": 141.33746334612064, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CBG_CFD.UK", "name": "CLOSE BROTHERS GROUP PLC", "sector": "", "last_price": 497.8, "change_1d_pct": -5.89792060491493, "distance_from_ma200_pct": 15.793508864321094, "distance_from_ma50_pct": 3.592137485786795, "volatility_20d_pct": 116.76618625853061, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "RSW_CFD.UK", "name": "RENISHAW PLC", "sector": "", "last_price": 4100.0, "change_1d_pct": 18.155619596541793, "distance_from_ma200_pct": 36.779911314574385, "distance_from_ma50_pct": 14.333028240759926, "volatility_20d_pct": 92.61568245477878, "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": 204.15, "change_1d_pct": 11.924342105263165, "distance_from_ma200_pct": -5.759626343727387, "distance_from_ma50_pct": 12.834440951357639, "volatility_20d_pct": 73.60557991984848, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DLN_CFD.UK", "name": "DERWENT LONDON PLC", "sector": "", "last_price": 1953.0, "change_1d_pct": 10.401356698699837, "distance_from_ma200_pct": 5.069478604951705, "distance_from_ma50_pct": 12.150447212111025, "volatility_20d_pct": 115.39088732649292, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MCG_CFD.UK", "name": "MOBICO GROUP PLC", "sector": "", "last_price": 25.72, "change_1d_pct": 2.9623698959167166, "distance_from_ma200_pct": -7.132760074308242, "distance_from_ma50_pct": 8.327577202351844, "volatility_20d_pct": 232.19808875565576, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SGRO_CFD.UK", "name": "SEGRO PLC", "sector": "", "last_price": 789.8, "change_1d_pct": 5.166444740346199, "distance_from_ma200_pct": 16.137238395282736, "distance_from_ma50_pct": 8.124180991500651, "volatility_20d_pct": 71.28658783635437, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OCDO_CFD.UK", "name": "OCADO GROUP PLC", "sector": "", "last_price": 217.0, "change_1d_pct": -21.148255813953487, "distance_from_ma200_pct": -15.81606625159202, "distance_from_ma50_pct": -5.48311196636071, "volatility_20d_pct": 241.3119670937803, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "LRE_CFD.UK", "name": "LANCASHIRE HOLDINGS LTD", "sector": "", "last_price": 647.0, "change_1d_pct": -2.26586102719033, "distance_from_ma200_pct": 6.266967093949116, "distance_from_ma50_pct": -1.0131237932627712, "volatility_20d_pct": 79.5840954070324, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "LIO_CFD.UK", "name": "LIONTRUST ASSET MANAGEMENT", "sector": "", "last_price": 270.0, "change_1d_pct": 7.784431137724557, "distance_from_ma200_pct": -17.148878096081223, "distance_from_ma50_pct": 4.440258238208905, "volatility_20d_pct": 138.52252179896075, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "SMIN_CFD.UK", "name": "SMITHS GROUP PLC", "sector": "", "last_price": 2544.0, "change_1d_pct": 1.4333845019038671, "distance_from_ma200_pct": 14.948150770494873, "distance_from_ma50_pct": 4.167383226889343, "volatility_20d_pct": 72.718462979927, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BBY_CFD.UK", "name": "BALFOUR BEATTY PLC", "sector": "", "last_price": 722.5, "change_1d_pct": -1.0951403148528382, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -1.628407265201648, "volatility_20d_pct": 2239.4661443465884, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CCC_CFD.UK", "name": "COMPUTACENTER PLC", "sector": "", "last_price": 3230.0, "change_1d_pct": 1.000625390869292, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 3.7824360276067726, "volatility_20d_pct": 3216.515047539989, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MAB_CFD.UK", "name": "MITCHELLS & BUTLERS PLC", "sector": "", "last_price": 292.81, "change_1d_pct": 14.37890625, "distance_from_ma200_pct": 11.595067041457764, "distance_from_ma50_pct": 10.935906392690597, "volatility_20d_pct": 118.87119977937589, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OSB_CFD.UK", "name": "OSB GROUP PLC", "sector": "", "last_price": 575.5, "change_1d_pct": -8.50556438791733, "distance_from_ma200_pct": 7.26309045372473, "distance_from_ma50_pct": -3.1605502163448818, "volatility_20d_pct": 83.79306172690484, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IPO_CFD.UK", "name": "IP GROUP PLC", "sector": "", "last_price": 57.6, "change_1d_pct": -1.873935264054516, "distance_from_ma200_pct": 10.233643652522883, "distance_from_ma50_pct": -2.027486732888828, "volatility_20d_pct": 89.82123635439407, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 305.0, "change_1d_pct": 4.2735042735042805, "distance_from_ma200_pct": -30.344980756373573, "distance_from_ma50_pct": -1.1704016694101371, "volatility_20d_pct": 159.9931345477538, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BME_CFD.UK", "name": "B&M EUROPEAN VALUE RETAIL SA", "sector": "", "last_price": 180.0, "change_1d_pct": -0.5799502899751507, "distance_from_ma200_pct": -17.510144533683704, "distance_from_ma50_pct": 3.6906975618860693, "volatility_20d_pct": 107.67302074828436, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ITRK_CFD.UK", "name": "INTERTEK GROUP PLC", "sector": "", "last_price": 4052.0, "change_1d_pct": -12.256388046773491, "distance_from_ma200_pct": -14.431208382751315, "distance_from_ma50_pct": -13.55643708647305, "volatility_20d_pct": 87.55966250200157, "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": "RIVN_CFD.US", "name": "Rivian Automotive Inc", "sector": "", "last_price": 17.73, "change_1d_pct": 26.642857142857146, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 0.8578319832529324, "volatility_20d_pct": 10724.926617862131, "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": "PSN_CFD.UK", "name": "PERSIMMON PLC", "sector": "", "last_price": 1243.0, "change_1d_pct": -17.463479415670648, "distance_from_ma200_pct": -1.7801653617441349, "distance_from_ma50_pct": -11.259784090699776, "volatility_20d_pct": 112.9499775078744, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DPLM_CFD.UK", "name": "DIPLOMA PLC", "sector": "", "last_price": 5220.0, "change_1d_pct": -5.434782608695654, "distance_from_ma200_pct": 4.8180942215069855, "distance_from_ma50_pct": -4.664614313757087, "volatility_20d_pct": 82.77890721911896, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "WLN_CFD.FR", "name": "Worldline SA", "sector": "", "last_price": 1.534, "change_1d_pct": 6.750173973556017, "distance_from_ma200_pct": -38.34293626693408, "distance_from_ma50_pct": 5.525287546089941, "volatility_20d_pct": 125.06405555810984, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IGG_CFD.UK", "name": "IG GROUP HOLDINGS PLC", "sector": "", "last_price": 1356.0, "change_1d_pct": 3.1963470319634757, "distance_from_ma200_pct": 21.69129359819437, "distance_from_ma50_pct": 9.822701129829392, "volatility_20d_pct": 89.02278066392904, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HMSO_CFD.UK", "name": "HAMMERSON PLC", "sector": "", "last_price": 355.4, "change_1d_pct": 14.129736673089276, "distance_from_ma200_pct": 22.516025502913806, "distance_from_ma50_pct": 10.006914897239172, "volatility_20d_pct": 87.54938293511039, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}], "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": "OCDO_CFD.UK",
"selection_reason": "-21.1% 1d drop, -5.5% below MA50, -15.8% below MA200",
"mean_reversion_score": 95
},
{
"symbol": "RSW_CFD.UK",
"selection_reason": "+18.2% 1d rise, +14.3% above MA50, +36.8% above MA200",
"mean_reversion_score": 94
},
{
"symbol": "ITRK_CFD.UK",
"selection_reason": "-12.3% 1d drop, -13.6% below MA50, -14.4% below MA200",
"mean_reversion_score": 92
},
{
"symbol": "PSN_CFD.UK",
"selection_reason": "-17.5% 1d drop, -11.3% below MA50",
"mean_reversion_score": 90
},
{
"symbol": "SAFE_CFD.UK",
"selection_reason": "+13.2% 1d rise, +10.3% above MA50, +21.4% above MA200",
"mean_reversion_score": 88
}
],
"rejected_common_reasons": [
"Insufficient 1d move magnitude",
"Low deviation from MA50/MA200",
"Non-extreme volatility relative to move"
]
}#1170 • openrouter • x-ai/grok-4.1-fast • 2026-03-12T19:25:54.524305+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": "ABF_CFD.UK", "qty": 0.0, "avg_price": 1868.5, "last_price": 1846.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "AML_CFD.UK", "qty": 0.0, "avg_price": 39.92, "last_price": 42.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "ARCAD_CFD.NL", "qty": 0.0, "avg_price": 29.7, "last_price": 28.06, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 10067.114093959732, "avg_price": 0.298, "last_price": 0.305, "unrealized_pnl": 70.46979865771819, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "BLND_CFD.UK", "qty": 8.237232289950576, "avg_price": 364.2, "last_price": 373.8, "unrealized_pnl": 79.07742998352572, "opened_at": "2026-03-10T10:41:24.306870+00:00"}, {"symbol": "BXP_CFD.US", "qty": 0.0, "avg_price": 60.835, "last_price": 59.405, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T17:33:48.338981+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 10.252904989747094, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "CABO_CFD.US", "qty": 0.0, "avg_price": 94.6, "last_price": 96.44, "unrealized_pnl": 58.3509513742073, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "CAR_CFD.US", "qty": 0.0, "avg_price": 92.465, "last_price": 97.54, "unrealized_pnl": 164.65689720434767, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "CCL_CFD.UK", "qty": 0.0, "avg_price": 1945.9999999999998, "last_price": 1858.65, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "COIN_CFD.US", "qty": 0.0, "avg_price": 168.575, "last_price": 171.13, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "CO_CFD.FR", "qty": 0.0, "avg_price": 0.171, "last_price": 0.2196, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 350.79999999999995, "last_price": 350.055, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "DKNG_CFD.US", "qty": 0.0, "avg_price": 25.185000000000002, "last_price": 25.115000000000002, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "ESTC_CFD.US", "qty": 0.0, "avg_price": 58.085, "last_price": 55.28, "unrealized_pnl": -144.87389171042437, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "EVT_CFD.DE", "qty": 0.0, "avg_price": 4.502, "last_price": 4.369, "unrealized_pnl": 0.0, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "EXPO_CFD.US", "qty": 0.0, "avg_price": 66.815, "last_price": 70.025, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 0.0, "avg_price": 405.2, "last_price": 394.1, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T10:05:58.226220+00:00"}, {"symbol": "FBIN_CFD.US", "qty": 0.0, "avg_price": 50.974999999999994, "last_price": 54.35, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "FICO_CFD.US", "qty": 0.0, "avg_price": 1208.505, "last_price": 1405.2800000000002, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "FLO_CFD.US", "qty": 0.0, "avg_price": 9.875, "last_price": 10.055, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+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-18T09:36:37.284518+00:00"}, {"symbol": "GO_CFD.US", "qty": 0.0, "avg_price": 5.71, "last_price": 6.05, "unrealized_pnl": 178.63397548161112, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "HAIN_CFD.US", "qty": 0.0, "avg_price": 0.8, "last_price": 0.8, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1275.0, "last_price": 1342.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "HPP_CFD.US", "qty": 0.0, "avg_price": 7.59, "last_price": 7.47, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "ICG_CFD.UK", "qty": 0.0, "avg_price": 1700.0, "last_price": 1719.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "JBLU_CFD.US", "qty": 0.0, "avg_price": 4.22, "last_price": 4.52, "unrealized_pnl": 213.27014218009467, "opened_at": "2026-03-09T18:18:45.954380+00:00"}, {"symbol": "JUN3_CFD.DE", "qty": 0.0, "avg_price": 31.51, "last_price": 30.167, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+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": "LRCX_CFD.US", "qty": 0.0, "avg_price": 199.34, "last_price": 216.7, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "NET_CFD.US", "qty": 0.0, "avg_price": 176.96, "last_price": 164.32, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 0.0, "avg_price": 217.0, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "OKTA_CFD.US", "qty": 0.0, "avg_price": 70.18, "last_price": 80.05, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 19.74853531696399, "avg_price": 151.91, "last_price": 152.7, "unrealized_pnl": 15.601342900401397, "opened_at": "2026-03-07T10:14:47.113218+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": "PROX_CFD.BE", "qty": 0.0, "avg_price": 6.98, "last_price": 7.68, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+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-19T09:33:49.074031+00:00"}, {"symbol": "RVTY_CFD.US", "qty": 0.0, "avg_price": 91.28, "last_price": 91.28, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 0.0, "avg_price": 18.4, "last_price": 18.48, "unrealized_pnl": 13.043478260869868, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "THG_CFD.UK", "qty": 0.0, "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": 16.260162601626018, "avg_price": 184.5, "last_price": 184.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "TRST_CFD.UK", "qty": 19.76284584980237, "avg_price": 151.8, "last_price": 151.8, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 0.0, "avg_price": 92.35, "last_price": 94.79, "unrealized_pnl": 79.26367081754236, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 7.015902712815715, "avg_price": 427.6, "last_price": 406.1, "unrealized_pnl": -150.84190832553787, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 872.0, "last_price": 976.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 240.8, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "ZS_CFD.US", "qty": 0.0, "avg_price": 159.76, "last_price": 144.45, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "OCDO_CFD.UK", "mean_reversion_score": 95, "selection_reason": "-21.1% 1d drop, -5.5% below MA50, -15.8% below MA200"}, {"symbol": "RSW_CFD.UK", "mean_reversion_score": 94, "selection_reason": "+18.2% 1d rise, +14.3% above MA50, +36.8% above MA200"}, {"symbol": "ITRK_CFD.UK", "mean_reversion_score": 92, "selection_reason": "-12.3% 1d drop, -13.6% below MA50, -14.4% below MA200"}, {"symbol": "PSN_CFD.UK", "mean_reversion_score": 90, "selection_reason": "-17.5% 1d drop, -11.3% below MA50"}, {"symbol": "SAFE_CFD.UK", "mean_reversion_score": 88, "selection_reason": "+13.2% 1d rise, +10.3% above MA50, +21.4% above MA200"}], "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 95, strongly oversold (-21.1% 1d drop, -5.5% below MA50, -15.8% below MA200)",
"symbol": "OCDO_CFD.UK",
"position_size": 3000
},
{
"reason": "High mean reversion score 92, oversold (-12.3% 1d drop, -13.6% below MA50, -14.4% below MA200)",
"symbol": "ITRK_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Positive PnL (+70), stable hold",
"symbol": "BIG_CFD.FR"
},
{
"reason": "Positive PnL (+79), stable hold",
"symbol": "BLND_CFD.UK"
},
{
"reason": "Flat PnL, no strong sell signal",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Flat PnL, no strong sell signal",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Small positive PnL (+15), stable hold",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "Flat PnL, no strong sell signal",
"symbol": "TRN_CFD.UK"
},
{
"reason": "Flat PnL, no strong sell signal",
"symbol": "TRST_CFD.UK"
}
],
"sell": [
{
"reason": "Significant unrealized loss (-150), continued decline from avg_price 427.6 to 406.1, no mean reversion bounce observed",
"symbol": "VTY_CFD.UK"
}
]
},
"portfolio_rationale": "Sell underperforming VTY to cut losses (1 sell < max 2). Buy top 2 oversold mean reversion candidates (OCDO, ITRK) for clear improvement over current holdings (2 buys = max). Keeps 9 positions < max 10, exposure controlled < 3x leverage, low turnover."
}Selection logs
#582 • stage1 • 2026-03-12T19:25:54.521284+00:00
{
"selected_stocks": [
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "-21.1% 1d drop, -5.5% below MA50, -15.8% below MA200",
"mean_reversion_score": 95
},
{
"symbol": "RSW_CFD.UK",
"selection_reason": "+18.2% 1d rise, +14.3% above MA50, +36.8% above MA200",
"mean_reversion_score": 94
},
{
"symbol": "ITRK_CFD.UK",
"selection_reason": "-12.3% 1d drop, -13.6% below MA50, -14.4% below MA200",
"mean_reversion_score": 92
},
{
"symbol": "PSN_CFD.UK",
"selection_reason": "-17.5% 1d drop, -11.3% below MA50",
"mean_reversion_score": 90
},
{
"symbol": "SAFE_CFD.UK",
"selection_reason": "+13.2% 1d rise, +10.3% above MA50, +21.4% above MA200",
"mean_reversion_score": 88
}
],
"rejected_common_reasons": [
"Insufficient 1d move magnitude",
"Low deviation from MA50/MA200",
"Non-extreme volatility relative to move"
]
}