Arena run #810
meanrev-v1 • moonshotai • moonshotai/kimi-k2-thinking • US • success
Run status
as_of: 2026-03-23T18:04:09.108429+00:00
started_at: 2026-03-23T18:10:00.540692+00:00
finished_at: 2026-03-23T18:13:24.817762+00:00
duration_ms: 204275
Inputs
{
"as_of": "2026-03-23T18:04:09.108429+00:00",
"dry_run": false,
"selected": [
{
"symbol": "BTRW_CFD.UK",
"selection_reason": "Extreme -33.5% drop, -29.9% from MA50, oversold, vol 128.8%",
"mean_reversion_score": 85
},
{
"symbol": "CRST_CFD.UK",
"selection_reason": "Extreme +24.9% spike, +17.8% from MA50, overbought, vol 158.5%",
"mean_reversion_score": 82
},
{
"symbol": "INF_CFD.UK",
"selection_reason": "-14.5% drop, -13.9% from MA50, oversold, good vol 89.5%",
"mean_reversion_score": 78
},
{
"symbol": "HMSO_CFD.UK",
"selection_reason": "+14.1% spike, +10.0% from MA50, overbought, vol 87.6%",
"mean_reversion_score": 76
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "-20.8% drop, -24.3% from MA50, very oversold, vol 153.6%",
"mean_reversion_score": 74
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"CRST_CFD.UK",
"MSLH_CFD.UK",
"SPX_CFD.UK",
"ESNT_CFD.UK",
"JDW_CFD.UK",
"PAG_CFD.UK",
"INVP_CFD.UK",
"SAFE_CFD.UK",
"CBG_CFD.UK",
"DLN_CFD.UK",
"BT_CFD.UK",
"IWG_CFD.UK",
"MKS_CFD.UK",
"EMG_CFD.UK",
"MNG_CFD.UK",
"OCDO_CFD.UK",
"HWDN_CFD.UK",
"SBRY_CFD.UK",
"IMI_CFD.UK",
"DCC_CFD.UK",
"DOCS_CFD.UK",
"ABDN_CFD.UK",
"OPTU_CFD.US",
"SMIN_CFD.UK",
"BBY_CFD.UK",
"NAE_CFD.FR",
"KGF_CFD.UK",
"ABF_CFD.UK",
"HLMA_CFD.UK",
"DOM_CFD.UK",
"LAND_CFD.UK",
"IPO_CFD.UK",
"BTRW_CFD.UK",
"GROW_CFD.UK",
"BYIT_CFD.UK",
"OSB_CFD.UK",
"EXPN_CFD.UK",
"MNDI_CFD.UK",
"FUTR_CFD.UK",
"NSI_CFD.NL",
"INF_CFD.UK",
"ATG_CFD.UK",
"HMSO_CFD.UK",
"NXT_CFD.UK",
"EXE_CFD.FR",
"ACKB_CFD.BE",
"IPR_CFD.PT",
"SGRO_CFD.UK"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Strongest mean-reversion BUY signal: score 85 with extreme -33.5% drop, -29.9% below MA50, oversold conditions suggest reversion upside. High volume (128.8%) confirms signal.",
"symbol": "BTRW_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "AUTO_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "CBG_CFD.UK"
},
{
"reason": "Candidate shows oversold signal (score 74) but already holding. No additional signal to add or reduce. Holding.",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "IWG_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "LRE_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "SYNT_CFD.UK"
}
],
"sell": [
{
"reason": "Strong mean-reversion SELL signal: score 82 with extreme +24.9% price spike, +17.8% above MA50, overbought conditions suggest reversion downside. Releasing position to free capacity for better opportunity.",
"symbol": "CRST_CFD.UK"
}
]
},
"portfolio_rationale": "Portfolio at max positions (10) and max gross leverage (3.0x). Replacing overbought CRST (score 82, +24.9% spike) with oversold BTRW (score 85, -33.5% drop) improves mean-reversion alignment while maintaining constraints. Single sell/buy avoids overtrading. All other holdings lack clear mean-reversion signals, so holding is preferred to unnecessary churn."
}Prompts & responses
#1594 • openrouter • moonshotai/kimi-k2-thinking • 2026-03-23T18:10:00.584417+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": "MSLH_CFD.UK", "name": "MARSHALLS PLC", "sector": "", "last_price": 179.0, "change_1d_pct": 2.052451539338662, "distance_from_ma200_pct": -18.41965657865713, "distance_from_ma50_pct": 4.539832012082234, "volatility_20d_pct": 102.90810964969117, "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": "SPX_CFD.UK", "name": "SPIRAX-SARCO ENGINEERING PLC", "sector": "", "last_price": 7608.71, "change_1d_pct": 10.91413994169097, "distance_from_ma200_pct": 15.905097055024719, "distance_from_ma50_pct": 8.459177525660632, "volatility_20d_pct": 84.71063298478786, "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": "PAG_CFD.UK", "name": "PARAGON BANKING GROUP PLC", "sector": "", "last_price": 852.5, "change_1d_pct": -3.399433427762044, "distance_from_ma200_pct": -1.3404962254783492, "distance_from_ma50_pct": 0.699141440891915, "volatility_20d_pct": 71.52779356208148, "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": "INVESTEC PLC", "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": "SAFE_CFD.UK", "name": "SAFESTORE HOLDINGS PLC", "sector": "", "last_price": 708.0, "change_1d_pct": 0.14144271570013522, "distance_from_ma200_pct": 7.079918522466522, "distance_from_ma50_pct": -2.535991476029087, "volatility_20d_pct": 107.99712610776675, "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": "BT_CFD.UK", "name": "BT GROUP PLC", "sector": "", "last_price": 217.3, "change_1d_pct": 4.521404521404526, "distance_from_ma200_pct": 12.48931662093067, "distance_from_ma50_pct": 10.274676813493189, "volatility_20d_pct": 92.38992239372133, "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": "MKS_CFD.UK", "name": "MARKS & SPENCER GROUP PLC", "sector": "", "last_price": 346.1, "change_1d_pct": -7.43514308638672, "distance_from_ma200_pct": -3.8050775687949234, "distance_from_ma50_pct": -2.7644562367007075, "volatility_20d_pct": 113.7533392971785, "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": "MNG_CFD.UK", "name": "M&G PLC", "sector": "", "last_price": 279.6, "change_1d_pct": -11.937007874015737, "distance_from_ma200_pct": 3.6912374599800346, "distance_from_ma50_pct": -7.6737144159107595, "volatility_20d_pct": 91.15993052698488, "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": "HWDN_CFD.UK", "name": "HOWDEN JOINERY GROUP PLC", "sector": "", "last_price": 843.0, "change_1d_pct": -2.686229466563539, "distance_from_ma200_pct": 2.9144756901175572, "distance_from_ma50_pct": 0.6796292983215046, "volatility_20d_pct": 44.16384759940265, "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": "SBRY_CFD.UK", "name": "SAINSBURY (J) PLC", "sector": "", "last_price": 351.2, "change_1d_pct": -2.7685492801771905, "distance_from_ma200_pct": 11.845406209490061, "distance_from_ma50_pct": 5.259372040329446, "volatility_20d_pct": 82.11100213494068, "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": 2676.0, "change_1d_pct": 1.5945330296127658, "distance_from_ma200_pct": 20.655603593859716, "distance_from_ma50_pct": 2.743599661176499, "volatility_20d_pct": 90.40898907393799, "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": "DCC_CFD.UK", "name": "DCC PLC", "sector": "", "last_price": 4738.0, "change_1d_pct": 4.131868131868122, "distance_from_ma200_pct": -1.2358165497191043, "distance_from_ma50_pct": -1.6950365081147445, "volatility_20d_pct": 101.79870451788292, "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": "ABDN_CFD.UK", "name": "Aberdeen Group Plc", "sector": "", "last_price": 202.6, "change_1d_pct": -7.741347905282336, "distance_from_ma200_pct": 6.460345885775287, "distance_from_ma50_pct": -2.3285905331046353, "volatility_20d_pct": 82.55854119558269, "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": "OPTU_CFD.US", "name": "Optimum Communications Inc.", "sector": "", "last_price": 1.3, "change_1d_pct": -9.090909090909083, "distance_from_ma200_pct": -36.82113090175686, "distance_from_ma50_pct": -18.25955734406437, "volatility_20d_pct": 127.6568567850477, "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": 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": "NAE_CFD.FR", "name": "North Atlantic Energies", "sector": "", "last_price": 69.8, "change_1d_pct": -10.092097636375353, "distance_from_ma200_pct": -11.879140094429463, "distance_from_ma50_pct": 46.87810379947142, "volatility_20d_pct": 203.33273738036817, "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": 309.6, "change_1d_pct": -14.143094841930115, "distance_from_ma200_pct": 5.598205649094723, "distance_from_ma50_pct": -4.786156349988369, "volatility_20d_pct": 104.60870893174696, "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": "ABF_CFD.UK", "name": "ASSOCIATED BRITISH FOODS PLC", "sector": "", "last_price": 1812.0, "change_1d_pct": -7.338276655586807, "distance_from_ma200_pct": -13.584918221859954, "distance_from_ma50_pct": -8.055924730074116, "volatility_20d_pct": 88.64957551561282, "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": 3658.0, "change_1d_pct": -5.478036175710599, "distance_from_ma200_pct": 8.890890613176584, "distance_from_ma50_pct": -0.8317338451695466, "volatility_20d_pct": 89.73890792125391, "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": "LAND_CFD.UK", "name": "LAND SECURITIES GROUP PLC", "sector": "", "last_price": 573.0, "change_1d_pct": -12.718964204112716, "distance_from_ma200_pct": -4.1906796091180425, "distance_from_ma50_pct": -7.877546912515177, "volatility_20d_pct": 82.80648854646886, "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": "BTRW_CFD.UK", "name": "Barratt Redrow Plc", "sector": "", "last_price": 257.9, "change_1d_pct": -33.51379221448827, "distance_from_ma200_pct": -34.13050996113215, "distance_from_ma50_pct": -29.89115867433124, "volatility_20d_pct": 128.7886348087035, "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": "OSB_CFD.UK", "name": "OSB GROUP PLC", "sector": "", "last_price": 558.5, "change_1d_pct": -10.568454763811053, "distance_from_ma200_pct": 3.9920567571329224, "distance_from_ma50_pct": -6.032210509384505, "volatility_20d_pct": 85.69536040288594, "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": 2702.0, "change_1d_pct": 6.587771203155812, "distance_from_ma200_pct": -22.541551032626185, "distance_from_ma50_pct": -4.661764498327514, "volatility_20d_pct": 112.48291373875551, "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": "MONDI PLC", "sector": "", "last_price": 808.6, "change_1d_pct": -14.433862433862432, "distance_from_ma200_pct": -17.991033882451624, "distance_from_ma50_pct": -8.75659133763108, "volatility_20d_pct": 110.5800999532644, "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": "NSI_CFD.NL", "name": "NSI", "sector": "", "last_price": 18.16, "change_1d_pct": -0.219780219780219, "distance_from_ma200_pct": -14.63048302881268, "distance_from_ma50_pct": -4.781879194630867, "volatility_20d_pct": 50.037896931198276, "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": 756.4, "change_1d_pct": -14.492425955234012, "distance_from_ma200_pct": -10.927806304012677, "distance_from_ma50_pct": -13.84600805409979, "volatility_20d_pct": 89.53684626030801, "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": 326.5, "change_1d_pct": 12.006861063464846, "distance_from_ma200_pct": -24.987260470422935, "distance_from_ma50_pct": 5.84429056770146, "volatility_20d_pct": 172.45012969704524, "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": "NXT_CFD.UK", "name": "NEXT PLC", "sector": "", "last_price": 12560.0, "change_1d_pct": -6.478034251675357, "distance_from_ma200_pct": -1.3592309227407728, "distance_from_ma50_pct": -7.68316285245737, "volatility_20d_pct": 74.74482929593471, "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.22, "change_1d_pct": -3.4941763727121544, "distance_from_ma200_pct": -10.789189797953947, "distance_from_ma50_pct": -9.229517224110262, "volatility_20d_pct": 91.0490859897984, "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": "ACKB_CFD.BE", "name": "Ackermans & Van Haaren NV", "sector": "", "last_price": 266.4, "change_1d_pct": 0.07513148009015147, "distance_from_ma200_pct": 14.750349823807163, "distance_from_ma50_pct": 1.0920905684950188, "volatility_20d_pct": 65.24858182953352, "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.185, "change_1d_pct": -3.645833333333337, "distance_from_ma200_pct": 18.21086261980831, "distance_from_ma50_pct": -3.181913334728914, "volatility_20d_pct": 211.6528623619224, "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": 735.4, "change_1d_pct": -2.051145444858815, "distance_from_ma200_pct": 8.121221031738735, "distance_from_ma50_pct": 0.6415109419246168, "volatility_20d_pct": 82.62107653630062, "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": "BTRW_CFD.UK",
"selection_reason": "Extreme -33.5% drop, -29.9% from MA50, oversold, vol 128.8%",
"mean_reversion_score": 85
},
{
"symbol": "CRST_CFD.UK",
"selection_reason": "Extreme +24.9% spike, +17.8% from MA50, overbought, vol 158.5%",
"mean_reversion_score": 82
},
{
"symbol": "INF_CFD.UK",
"selection_reason": "-14.5% drop, -13.9% from MA50, oversold, good vol 89.5%",
"mean_reversion_score": 78
},
{
"symbol": "HMSO_CFD.UK",
"selection_reason": "+14.1% spike, +10.0% from MA50, overbought, vol 87.6%",
"mean_reversion_score": 76
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "-20.8% drop, -24.3% from MA50, very oversold, vol 153.6%",
"mean_reversion_score": 74
}
]
}#1595 • openrouter • moonshotai/kimi-k2-thinking • 2026-03-23T18:11:15.294563+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": 0.0, "avg_price": 41.98, "last_price": 38.22, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "AUTO_CFD.UK", "qty": 6.2137531068765535, "avg_price": 482.8, "last_price": 482.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T18:04:14.272849+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": "CRST_CFD.UK", "qty": 25.246149962130776, "avg_price": 118.83, "last_price": 118.83, "unrealized_pnl": 0.0, "opened_at": "2026-03-23T10:03:51.599067+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": 0.0, "avg_price": 1700.0, "last_price": 1693.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "IWG_CFD.UK", "qty": 16.949152542372882, "avg_price": 177.0, "last_price": 177.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T18:04:14.272849+00:00"}, {"symbol": "LRE_CFD.UK", "qty": 5.208333333333333, "avg_price": 576.0, "last_price": 576.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-20T10:26:40.341409+00:00"}, {"symbol": "LSS_CFD.FR", "qty": 0.0, "avg_price": 17.72, "last_price": 16.0, "unrealized_pnl": -291.19638826185087, "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": 0.0, "avg_price": 1215.0, "last_price": 1113.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 110.29411764705883, "avg_price": 27.2, "last_price": 27.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-23T10:03:51.599067+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": 0.0, "avg_price": 427.1, "last_price": 354.1, "unrealized_pnl": 0.0, "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": "BTRW_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Extreme -33.5% drop, -29.9% from MA50, oversold, vol 128.8%"}, {"symbol": "CRST_CFD.UK", "mean_reversion_score": 82, "selection_reason": "Extreme +24.9% spike, +17.8% from MA50, overbought, vol 158.5%"}, {"symbol": "INF_CFD.UK", "mean_reversion_score": 78, "selection_reason": "-14.5% drop, -13.9% from MA50, oversold, good vol 89.5%"}, {"symbol": "HMSO_CFD.UK", "mean_reversion_score": 76, "selection_reason": "+14.1% spike, +10.0% from MA50, overbought, vol 87.6%"}, {"symbol": "FUTR_CFD.UK", "mean_reversion_score": 74, "selection_reason": "-20.8% drop, -24.3% from MA50, very oversold, vol 153.6%"}], "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": "Strongest mean-reversion BUY signal: score 85 with extreme -33.5% drop, -29.9% below MA50, oversold conditions suggest reversion upside. High volume (128.8%) confirms signal.",
"symbol": "BTRW_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "AUTO_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "CBG_CFD.UK"
},
{
"reason": "Candidate shows oversold signal (score 74) but already holding. No additional signal to add or reduce. Holding.",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "IWG_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "LRE_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "No clear mean-reversion signal; position flat since entry. Holding to avoid overtrading.",
"symbol": "SYNT_CFD.UK"
}
],
"sell": [
{
"reason": "Strong mean-reversion SELL signal: score 82 with extreme +24.9% price spike, +17.8% above MA50, overbought conditions suggest reversion downside. Releasing position to free capacity for better opportunity.",
"symbol": "CRST_CFD.UK"
}
]
},
"portfolio_rationale": "Portfolio at max positions (10) and max gross leverage (3.0x). Replacing overbought CRST (score 82, +24.9% spike) with oversold BTRW (score 85, -33.5% drop) improves mean-reversion alignment while maintaining constraints. Single sell/buy avoids overtrading. All other holdings lack clear mean-reversion signals, so holding is preferred to unnecessary churn."
}Selection logs
#789 • stage1 • 2026-03-23T18:11:15.291626+00:00
{
", ": [
""
],
"selected_stocks": [
{
"symbol": "BTRW_CFD.UK",
"selection_reason": "Extreme -33.5% drop, -29.9% from MA50, oversold, vol 128.8%",
"mean_reversion_score": 85
},
{
"symbol": "CRST_CFD.UK",
"selection_reason": "Extreme +24.9% spike, +17.8% from MA50, overbought, vol 158.5%",
"mean_reversion_score": 82
},
{
"symbol": "INF_CFD.UK",
"selection_reason": "-14.5% drop, -13.9% from MA50, oversold, good vol 89.5%",
"mean_reversion_score": 78
},
{
"symbol": "HMSO_CFD.UK",
"selection_reason": "+14.1% spike, +10.0% from MA50, overbought, vol 87.6%",
"mean_reversion_score": 76
},
{
"symbol": "FUTR_CFD.UK",
"selection_reason": "-20.8% drop, -24.3% from MA50, very oversold, vol 153.6%",
"mean_reversion_score": 74
}
]
}