Arena run #730
meanrev-v1 • moonshotai • moonshotai/kimi-k2-thinking • US • success
Run status
as_of: 2026-03-19T18:04:14.272849+00:00
started_at: 2026-03-19T18:10:01.235824+00:00
finished_at: 2026-03-19T18:11:56.751612+00:00
duration_ms: 115514
Inputs
{
"as_of": "2026-03-19T18:04:14.272849+00:00",
"dry_run": false,
"selected": [
{
"symbol": "AUTO_CFD.UK",
"selection_reason": "Extreme -38.6% daily drop, -37% from MA200, -32% from MA50, high vol 130% - prime oversold bounce setup",
"mean_reversion_score": 95
},
{
"symbol": "CBG_CFD.UK",
"selection_reason": "Severe -26.6% drop with highest vol 169%, -13% from MA200, -22% from MA50 - strong reversal candidate",
"mean_reversion_score": 92
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "Sharp -20.8% decline, -38% from MA200, -24% from MA50, vol 154% - deeply oversold",
"mean_reversion_score": 90
},
{
"symbol": "CRST_CFD.UK",
"selection_reason": "Extreme +24.9% rally, +17% from MA50, vol 158% - overextended short setup",
"mean_reversion_score": 88
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Large -24.1% drop, -12% from MA200, -17% from MA50, vol 149% - stretched downside",
"mean_reversion_score": 85
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"CRST_CFD.UK",
"ESNT_CFD.UK",
"JDW_CFD.UK",
"INVP_CFD.UK",
"CBG_CFD.UK",
"DLN_CFD.UK",
"MCG_CFD.UK",
"CCL_CFD.UK",
"IWG_CFD.UK",
"EMG_CFD.UK",
"ABDN_CFD.UK",
"HWDN_CFD.UK",
"CPG_CFD.UK",
"DOCS_CFD.UK",
"LIO_CFD.UK",
"BBY_CFD.UK",
"MKS_CFD.UK",
"MAB_CFD.UK",
"IMI_CFD.UK",
"DOM_CFD.UK",
"IPR_CFD.PT",
"IPO_CFD.UK",
"ATG_CFD.UK",
"GDS_CFD.FR",
"BME_CFD.UK",
"GROW_CFD.UK",
"BYIT_CFD.UK",
"HLMA_CFD.UK",
"ECL_CFD.US",
"FUTR_CFD.UK",
"ALTR_CFD.PT",
"JMT_CFD.PT",
"INF_CFD.UK",
"CF_CFD.US",
"EXPN_CFD.UK",
"HMSO_CFD.UK",
"ITRK_CFD.UK",
"AMCX_CFD.US",
"AAP_CFD.US",
"DHER_CFD.DE",
"IMB_CFD.UK",
"AUTO_CFD.UK",
"CCC_CFD.UK",
"ICG_CFD.UK",
"GRI_CFD.UK",
"CNA_CFD.UK",
"CTT_CFD.PT",
"CFEB_CFD.BE",
"EXE_CFD.FR",
"AAD_CFD.DE"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Highest mean reversion score (95) with extreme -38.6% daily drop, -37% from MA200, -32% from MA50, and 130% volume spike. Prime oversold bounce setup with strongest signal in universe.",
"symbol": "AUTO_CFD.UK",
"position_size": 3000
},
{
"reason": "Strong mean reversion score (85) on -24.1% decline, -12% from MA200, -17% from MA50 with 149% volume. Excellent reversal candidate not currently held, diversifying oversold exposure.",
"symbol": "IWG_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Flat price action (0% change). No mean reversion signal. Stable position within acceptable parameters.",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Severely oversold per candidate data (-26.6% drop, score 92) despite portfolio showing flat pricing. High-conviction mean reversion setup already in portfolio. Holding for anticipated bounce.",
"symbol": "CBG_CFD.UK"
},
{
"reason": "Sharp decline per candidate data (-20.8%, score 90) marking extreme oversold conditions. Core mean reversion position. Holding for reversal.",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Minimal loss (-0.4%). No extreme deviation or mean reversion signal. Stable position.",
"symbol": "ICG_CFD.UK"
},
{
"reason": "Moderate loss (-5.0%) but not at extreme oversold levels per candidate screening. No action required.",
"symbol": "LSS_CFD.FR"
},
{
"reason": "Flat price action (0% change). No mean reversion signal. Stable position.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Flat price action (0% change). No mean reversion signal. Stable position.",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "Small loss (-1.7%). Not exhibiting extreme oversold characteristics. Holding within acceptable drawdown.",
"symbol": "PSN_CFD.UK"
}
],
"sell": [
{
"reason": "Worst performer at -17.1% unrealized loss (-$512.76). Not identified as mean reversion candidate despite significant decline, suggesting potential structural weakness rather than temporary oversold condition. Freeing capital for higher-conviction bounce setups.",
"symbol": "VTY_CFD.UK"
},
{
"reason": "Unrealized loss of -8.7% (-$262) with no mean reversion signal. Price action does not exhibit the extreme oversold characteristics present in candidate opportunities. Exiting to reallocate toward prime reversal candidates with superior risk/reward profiles.",
"symbol": "AML_CFD.UK"
}
]
},
"portfolio_rationale": "Portfolio at max capacity (10 positions). Exiting two weakest non-candidate positions (VTY -17.1%, AML -8.7%) to reallocate capital toward highest-scoring mean reversion opportunities. Maintaining core oversold positions CBG and FUTR despite portfolio pricing lag, as candidate data confirms severe drops (scores 92/90). New positions AUTO (95) and IWG (85) capture extreme oversold conditions with superior risk/reward profiles. Net result: replacing underperforming positions with high-conviction bounce candidates while staying within max position limits and leverage constraints."
}Prompts & responses
#1444 • openrouter • moonshotai/kimi-k2-thinking • 2026-03-19T18:10:01.287430+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": "CRST_CFD.UK", "name": "CREST NICHOLSON HOLDINGS", "sector": "", "last_price": 167.8, "change_1d_pct": 24.85119047619049, "distance_from_ma200_pct": 1.2720261375977815, "distance_from_ma50_pct": 17.82963155418549, "volatility_20d_pct": 158.46878099582966, "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": "ESNT_CFD.UK", "name": "ESSENTRA PLC", "sector": "", "last_price": 108.4, "change_1d_pct": 4.230769230769238, "distance_from_ma200_pct": 7.40452119530135, "distance_from_ma50_pct": 9.771484932749797, "volatility_20d_pct": 98.9832071461764, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "JDW_CFD.UK", "name": "WETHERSPOON (J.D.) PLC", "sector": "", "last_price": 748.5, "change_1d_pct": 9.750733137829904, "distance_from_ma200_pct": 6.242631058659898, "distance_from_ma50_pct": 5.290077328071208, "volatility_20d_pct": 98.2373545531062, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "INVP_CFD.UK", "name": "", "sector": "", "last_price": 623.5, "change_1d_pct": 8.529155787641418, "distance_from_ma200_pct": 17.34715626999408, "distance_from_ma50_pct": 9.569618971869698, "volatility_20d_pct": 76.97154585310399, "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": 372.74, "change_1d_pct": -26.625984251968504, "distance_from_ma200_pct": -13.365429078084645, "distance_from_ma50_pct": -22.129222788055436, "volatility_20d_pct": 169.0552301316783, "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": "CCL_CFD.UK", "name": "CARNIVAL PLC", "sector": "", "last_price": 1989.0, "change_1d_pct": -3.9594398841139578, "distance_from_ma200_pct": 4.932242734391812, "distance_from_ma50_pct": -4.47172238108916, "volatility_20d_pct": 163.30913338012496, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IWG_CFD.UK", "name": "IWG PLC", "sector": "", "last_price": 189.6, "change_1d_pct": -24.09927942353883, "distance_from_ma200_pct": -11.798015594910993, "distance_from_ma50_pct": -17.03351041019402, "volatility_20d_pct": 148.96998448946707, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "EMG_CFD.UK", "name": "MAN GROUP PLC/JERSEY", "sector": "", "last_price": 269.6, "change_1d_pct": 2.353834472285521, "distance_from_ma200_pct": 42.186331073171914, "distance_from_ma50_pct": 15.516783354614262, "volatility_20d_pct": 86.92367167139048, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ABDN_CFD.UK", "name": "Aberdeen Group Plc", "sector": "", "last_price": 215.2, "change_1d_pct": -0.6463527239150557, "distance_from_ma200_pct": 13.219747060140353, "distance_from_ma50_pct": 3.663782514155023, "volatility_20d_pct": 74.75396598460024, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HWDN_CFD.UK", "name": "", "sector": "", "last_price": 828.0, "change_1d_pct": -3.7366010184388565, "distance_from_ma200_pct": 1.083257261467785, "distance_from_ma50_pct": -1.1118231802963119, "volatility_20d_pct": 42.82549605370831, "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": "CPG_CFD.UK", "name": "COMPASS GROUP PLC", "sector": "", "last_price": 2265.0, "change_1d_pct": 8.789625360230557, "distance_from_ma200_pct": -8.235768846509439, "distance_from_ma50_pct": 1.0610292608490113, "volatility_20d_pct": 89.75289508897275, "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": "DOCS_CFD.UK", "name": "DR. MARTENS PLC", "sector": "", "last_price": 65.6, "change_1d_pct": -1.501501501501501, "distance_from_ma200_pct": -13.08259339811949, "distance_from_ma50_pct": -12.14348468939509, "volatility_20d_pct": 121.2025974369199, "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": "BBY_CFD.UK", "name": "BALFOUR BEATTY PLC", "sector": "", "last_price": 759.18, "change_1d_pct": 5.222453222453205, "distance_from_ma200_pct": 33.313724414201815, "distance_from_ma50_pct": 8.832962232591, "volatility_20d_pct": 54.25956465831767, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MKS_CFD.UK", "name": "MARKS & SPENCER GROUP PLC", "sector": "", "last_price": 360.7, "change_1d_pct": -2.592492573588989, "distance_from_ma200_pct": 0.16685682262786994, "distance_from_ma50_pct": 1.2088381382512114, "volatility_20d_pct": 111.18292243780117, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "MAB_CFD.UK", "name": "MITCHELLS & BUTLERS PLC", "sector": "", "last_price": 292.81, "change_1d_pct": 14.37890625, "distance_from_ma200_pct": 11.595067041457764, "distance_from_ma50_pct": 10.935906392690597, "volatility_20d_pct": 118.87119977937589, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IMI_CFD.UK", "name": "IMI PLC", "sector": "", "last_price": 2774.0, "change_1d_pct": 4.7583081570997, "distance_from_ma200_pct": 25.227479847754264, "distance_from_ma50_pct": 6.661876238540865, "volatility_20d_pct": 87.69330898337377, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DOM_CFD.UK", "name": "DOMINO'S PIZZA GROUP PLC", "sector": "", "last_price": 189.21, "change_1d_pct": 4.190528634361246, "distance_from_ma200_pct": -12.46581454882838, "distance_from_ma50_pct": 4.428944053991102, "volatility_20d_pct": 85.812071272284, "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.191, "change_1d_pct": -0.520833333333337, "distance_from_ma200_pct": 22.353544088914525, "distance_from_ma50_pct": -0.27151211361738925, "volatility_20d_pct": 210.8594986289793, "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": "GDS_CFD.FR", "name": "", "sector": "", "last_price": 10.65, "change_1d_pct": -2.739726027397249, "distance_from_ma200_pct": 6.032608262777672, "distance_from_ma50_pct": 6.7048733568451535, "volatility_20d_pct": 114.5312487456098, "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": "GROW_CFD.UK", "name": "MOLTEN VENTURES PLC", "sector": "", "last_price": 465.0, "change_1d_pct": 1.572739187418093, "distance_from_ma200_pct": 22.569628774815076, "distance_from_ma50_pct": -4.275686024250158, "volatility_20d_pct": 115.72658030340939, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "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": "HLMA_CFD.UK", "name": "HALMA PLC", "sector": "", "last_price": 3904.0, "change_1d_pct": 7.548209366391179, "distance_from_ma200_pct": 16.52280895184093, "distance_from_ma50_pct": 5.778818225170168, "volatility_20d_pct": 86.60562444492528, "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": "ECL_CFD.US", "name": "Ecolab Inc", "sector": "", "last_price": 260.1, "change_1d_pct": -5.10070052539403, "distance_from_ma200_pct": -4.70558752797281, "distance_from_ma50_pct": -9.10050387886776, "volatility_20d_pct": 50.10257578442185, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "FUTR_CFD.UK", "name": "FUTURE PLC", "sector": "", "last_price": 423.6, "change_1d_pct": -20.82242990654205, "distance_from_ma200_pct": -37.68377383888033, "distance_from_ma50_pct": -24.301477407850992, "volatility_20d_pct": 153.59085037557008, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ALTR_CFD.PT", "name": "Altri SGPS SA", "sector": "", "last_price": 4.66, "change_1d_pct": 1.3043478260869712, "distance_from_ma200_pct": -3.458105790027599, "distance_from_ma50_pct": 0.9663301122329493, "volatility_20d_pct": 57.897747508392996, "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": "JMT_CFD.PT", "name": "Jeronimo Martins SGPS SA", "sector": "", "last_price": 20.12, "change_1d_pct": -11.28747795414462, "distance_from_ma200_pct": -4.758681362168593, "distance_from_ma50_pct": -4.3810765778310445, "volatility_20d_pct": 47.52391822130666, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "INF_CFD.UK", "name": "INFORMA PLC", "sector": "", "last_price": 761.2, "change_1d_pct": -13.87191672324054, "distance_from_ma200_pct": -10.362567634339559, "distance_from_ma50_pct": -13.29928785137593, "volatility_20d_pct": 89.53243145508786, "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": "CF_CFD.US", "name": "CF Industries Holdings Inc", "sector": "", "last_price": 129.04, "change_1d_pct": -0.3244245326741946, "distance_from_ma200_pct": 43.7420841042687, "distance_from_ma50_pct": 30.43566157889415, "volatility_20d_pct": 143.75634141044, "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": "EXPN_CFD.UK", "name": "EXPERIAN PLC", "sector": "", "last_price": 2754.0, "change_1d_pct": 9.199048374306095, "distance_from_ma200_pct": -21.2028857311516, "distance_from_ma50_pct": -3.3650303519421776, "volatility_20d_pct": 112.0169297118067, "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"}, {"symbol": "ITRK_CFD.UK", "name": "INTERTEK GROUP PLC", "sector": "", "last_price": 3754.0, "change_1d_pct": -17.239858906525573, "distance_from_ma200_pct": -20.53291718040755, "distance_from_ma50_pct": -19.06983690998375, "volatility_20d_pct": 91.43029319744596, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "AMCX_CFD.US", "name": "AMC Networks Inc", "sector": "", "last_price": 6.66, "change_1d_pct": -7.883817427385898, "distance_from_ma200_pct": -12.657455918899952, "distance_from_ma50_pct": -15.318889227952393, "volatility_20d_pct": 105.25793123437886, "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": "AAP_CFD.US", "name": "Advance Auto Parts Inc", "sector": "", "last_price": 47.04, "change_1d_pct": -11.844077961019494, "distance_from_ma200_pct": -11.073974581221558, "distance_from_ma50_pct": -6.744749435988117, "volatility_20d_pct": 99.34935319107592, "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": "DHER_CFD.DE", "name": "DELIVERY HERO SE", "sector": "", "last_price": 15.592, "change_1d_pct": -7.052160953800291, "distance_from_ma200_pct": -31.008574812908552, "distance_from_ma50_pct": -27.694506507587146, "volatility_20d_pct": 126.6853140725401, "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": "IMB_CFD.UK", "name": "IMPERIAL BRANDS PLC", "sector": "", "last_price": 3171.0, "change_1d_pct": -0.06303183107468913, "distance_from_ma200_pct": 2.916798713744484, "distance_from_ma50_pct": 0.4791056694170903, "volatility_20d_pct": 45.902289536449224, "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": "AUTO_CFD.UK", "name": "AUTOTRADER GROUP PLC", "sector": "", "last_price": 490.4, "change_1d_pct": -38.63326367424575, "distance_from_ma200_pct": -37.426260695289436, "distance_from_ma50_pct": -31.896720766000808, "volatility_20d_pct": 130.06763966702516, "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": 2984.0, "change_1d_pct": -3.116883116883118, "distance_from_ma200_pct": 16.40513480838093, "distance_from_ma50_pct": 1.039727236077903, "volatility_20d_pct": 115.43723132540129, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ICG_CFD.UK", "name": "ICG Plc", "sector": "", "last_price": 1719.0, "change_1d_pct": -13.356854838709676, "distance_from_ma200_pct": -15.041741119434038, "distance_from_ma50_pct": -11.540628787118589, "volatility_20d_pct": 72.59006184069659, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GRI_CFD.UK", "name": "GRAINGER PLC", "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": "CNA_CFD.UK", "name": "CENTRICA PLC", "sector": "", "last_price": 212.4, "change_1d_pct": 18.098415346121776, "distance_from_ma200_pct": 24.798392427487382, "distance_from_ma50_pct": 13.345770772586985, "volatility_20d_pct": 102.76662952129819, "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": "CTT_CFD.PT", "name": "CTT Correios de Portugal SA", "sector": "", "last_price": 6.15, "change_1d_pct": -9.02366863905325, "distance_from_ma200_pct": -15.686724771994276, "distance_from_ma50_pct": -12.448038266613526, "volatility_20d_pct": 83.45800257268074, "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": "CFEB_CFD.BE", "name": "Compagnie d'Entreprises CFE SA", "sector": "", "last_price": 10.8, "change_1d_pct": -4.424778761061942, "distance_from_ma200_pct": 21.303745702421708, "distance_from_ma50_pct": 6.288332690354537, "volatility_20d_pct": 124.71900355838534, "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": "EXE_CFD.FR", "name": "Exel Industries SA", "sector": "", "last_price": 34.6, "change_1d_pct": -3.492134330023422, "distance_from_ma200_pct": -9.8106349161871, "distance_from_ma50_pct": -8.68852441711081, "volatility_20d_pct": 95.13083924322898, "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": "AAD_CFD.DE", "name": "AMADEUS FIRE AG", "sector": "", "last_price": 24.15, "change_1d_pct": -2.1117911718211646, "distance_from_ma200_pct": -53.92560960568049, "distance_from_ma50_pct": -28.082877113738046, "volatility_20d_pct": 66.17135003583597, "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
{
": [": {
"rejected_common_reasons": [
"Insufficient daily move magnitude (<10% absolute) for mean reversion edge",
"Low volatility (<80%) reducing profit potential",
"Trading too close to moving averages (distance <10%) - not stretched enough",
"Mixed signals: momentum not extreme enough in either direction"
]
},
"selected_stocks": [
{
"symbol": "AUTO_CFD.UK",
"selection_reason": "Extreme -38.6% daily drop, -37% from MA200, -32% from MA50, high vol 130% - prime oversold bounce setup",
"mean_reversion_score": 95
},
{
"symbol": "CBG_CFD.UK",
"selection_reason": "Severe -26.6% drop with highest vol 169%, -13% from MA200, -22% from MA50 - strong reversal candidate",
"mean_reversion_score": 92
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "Sharp -20.8% decline, -38% from MA200, -24% from MA50, vol 154% - deeply oversold",
"mean_reversion_score": 90
},
{
"symbol": "CRST_CFD.UK",
"selection_reason": "Extreme +24.9% rally, +17% from MA50, vol 158% - overextended short setup",
"mean_reversion_score": 88
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Large -24.1% drop, -12% from MA200, -17% from MA50, vol 149% - stretched downside",
"mean_reversion_score": 85
}
]
}#1445 • openrouter • moonshotai/kimi-k2-thinking • 2026-03-19T18:11:25.702547+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": "AML_CFD.UK", "qty": 71.4626012386851, "avg_price": 41.98, "last_price": 38.32, "unrealized_pnl": -261.5531205335872, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 10.252904989747094, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-01T10:30:13.622938+00:00"}, {"symbol": "CBG_CFD.UK", "qty": 8.748396127376648, "avg_price": 342.92, "last_price": 342.92, "unrealized_pnl": 0.0, "opened_at": "2026-03-18T17:58:33.497657+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 7.24287783679382, "avg_price": 414.2, "last_price": 414.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T10:21:39.078796+00:00"}, {"symbol": "ICG_CFD.UK", "qty": 1.7647058823529411, "avg_price": 1700.0, "last_price": 1693.0, "unrealized_pnl": -12.352941176470587, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "LSS_CFD.FR", "qty": 169.30022573363433, "avg_price": 17.72, "last_price": 16.84, "unrealized_pnl": -148.98419864559804, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 14.684287812041115, "avg_price": 204.3, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 19.64636542239686, "avg_price": 152.7, "last_price": 152.7, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "PSN_CFD.UK", "qty": 2.4691358024691357, "avg_price": 1215.0, "last_price": 1194.5, "unrealized_pnl": -50.61728395061728, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "TRST_CFD.UK", "qty": 0.0, "avg_price": 151.8, "last_price": 173.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T10:03:26.036362+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 7.024116132053383, "avg_price": 427.1, "last_price": 354.1, "unrealized_pnl": -512.760477639897, "opened_at": "2026-03-12T10:21:39.078796+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": 253.97436099095557, "last_price": 262.8, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}], "candidates": [{"symbol": "AUTO_CFD.UK", "mean_reversion_score": 95, "selection_reason": "Extreme -38.6% daily drop, -37% from MA200, -32% from MA50, high vol 130% - prime oversold bounce setup"}, {"symbol": "CBG_CFD.UK", "mean_reversion_score": 92, "selection_reason": "Severe -26.6% drop with highest vol 169%, -13% from MA200, -22% from MA50 - strong reversal candidate"}, {"symbol": "FUTR_CFD.UK", "mean_reversion_score": 90, "selection_reason": "Sharp -20.8% decline, -38% from MA200, -24% from MA50, vol 154% - deeply oversold"}, {"symbol": "CRST_CFD.UK", "mean_reversion_score": 88, "selection_reason": "Extreme +24.9% rally, +17% from MA50, vol 158% - overextended short setup"}, {"symbol": "IWG_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Large -24.1% drop, -12% from MA200, -17% from MA50, vol 149% - stretched downside"}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}Output JSON
{
"actions": {
"buy": [
{
"reason": "Highest mean reversion score (95) with extreme -38.6% daily drop, -37% from MA200, -32% from MA50, and 130% volume spike. Prime oversold bounce setup with strongest signal in universe.",
"symbol": "AUTO_CFD.UK",
"position_size": 3000
},
{
"reason": "Strong mean reversion score (85) on -24.1% decline, -12% from MA200, -17% from MA50 with 149% volume. Excellent reversal candidate not currently held, diversifying oversold exposure.",
"symbol": "IWG_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Flat price action (0% change). No mean reversion signal. Stable position within acceptable parameters.",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Severely oversold per candidate data (-26.6% drop, score 92) despite portfolio showing flat pricing. High-conviction mean reversion setup already in portfolio. Holding for anticipated bounce.",
"symbol": "CBG_CFD.UK"
},
{
"reason": "Sharp decline per candidate data (-20.8%, score 90) marking extreme oversold conditions. Core mean reversion position. Holding for reversal.",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Minimal loss (-0.4%). No extreme deviation or mean reversion signal. Stable position.",
"symbol": "ICG_CFD.UK"
},
{
"reason": "Moderate loss (-5.0%) but not at extreme oversold levels per candidate screening. No action required.",
"symbol": "LSS_CFD.FR"
},
{
"reason": "Flat price action (0% change). No mean reversion signal. Stable position.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Flat price action (0% change). No mean reversion signal. Stable position.",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "Small loss (-1.7%). Not exhibiting extreme oversold characteristics. Holding within acceptable drawdown.",
"symbol": "PSN_CFD.UK"
}
],
"sell": [
{
"reason": "Worst performer at -17.1% unrealized loss (-$512.76). Not identified as mean reversion candidate despite significant decline, suggesting potential structural weakness rather than temporary oversold condition. Freeing capital for higher-conviction bounce setups.",
"symbol": "VTY_CFD.UK"
},
{
"reason": "Unrealized loss of -8.7% (-$262) with no mean reversion signal. Price action does not exhibit the extreme oversold characteristics present in candidate opportunities. Exiting to reallocate toward prime reversal candidates with superior risk/reward profiles.",
"symbol": "AML_CFD.UK"
}
]
},
"portfolio_rationale": "Portfolio at max capacity (10 positions). Exiting two weakest non-candidate positions (VTY -17.1%, AML -8.7%) to reallocate capital toward highest-scoring mean reversion opportunities. Maintaining core oversold positions CBG and FUTR despite portfolio pricing lag, as candidate data confirms severe drops (scores 92/90). New positions AUTO (95) and IWG (85) capture extreme oversold conditions with superior risk/reward profiles. Net result: replacing underperforming positions with high-conviction bounce candidates while staying within max position limits and leverage constraints."
}Selection logs
#719 • stage1 • 2026-03-19T18:11:25.700400+00:00
{
": [": {
"rejected_common_reasons": [
"Insufficient daily move magnitude (<10% absolute) for mean reversion edge",
"Low volatility (<80%) reducing profit potential",
"Trading too close to moving averages (distance <10%) - not stretched enough",
"Mixed signals: momentum not extreme enough in either direction"
]
},
"selected_stocks": [
{
"symbol": "AUTO_CFD.UK",
"selection_reason": "Extreme -38.6% daily drop, -37% from MA200, -32% from MA50, high vol 130% - prime oversold bounce setup",
"mean_reversion_score": 95
},
{
"symbol": "CBG_CFD.UK",
"selection_reason": "Severe -26.6% drop with highest vol 169%, -13% from MA200, -22% from MA50 - strong reversal candidate",
"mean_reversion_score": 92
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "Sharp -20.8% decline, -38% from MA200, -24% from MA50, vol 154% - deeply oversold",
"mean_reversion_score": 90
},
{
"symbol": "CRST_CFD.UK",
"selection_reason": "Extreme +24.9% rally, +17% from MA50, vol 158% - overextended short setup",
"mean_reversion_score": 88
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Large -24.1% drop, -12% from MA200, -17% from MA50, vol 149% - stretched downside",
"mean_reversion_score": 85
}
]
}