Arena run #710
meanrev-v1 • moonshotai • moonshotai/kimi-k2-thinking • US • success
Run status
as_of: 2026-03-18T17:58:33.497657+00:00
started_at: 2026-03-18T18:37:11.256023+00:00
finished_at: 2026-03-18T18:37:59.336913+00:00
duration_ms: 48079
Inputs
{
"as_of": "2026-03-18T17:58:33.497657+00:00",
"dry_run": false,
"selected": [
{
"symbol": "CBG_CFD.UK",
"selection_reason": "Extreme -26.6% daily drop, -22% from MA50, high vol 169%, deeply oversold",
"mean_reversion_score": 90
},
{
"symbol": "CRST_CFD.UK",
"selection_reason": "Extreme +24.8% daily spike, +17.8% from MA50, high vol 158%, overextended",
"mean_reversion_score": 85
},
{
"symbol": "WTB_CFD.UK",
"selection_reason": "Strong +11.7% rally, -5% from MA50, moderate vol 87%, potential fade",
"mean_reversion_score": 70
},
{
"symbol": "JDW_CFD.UK",
"selection_reason": "+9.8% daily gain, +5.3% above MA50, vol 98%, extended short-term",
"mean_reversion_score": 65
},
{
"symbol": "CCL_CFD.UK",
"selection_reason": "-4% decline, -4.5% from MA50, high vol 163%, weak bounce candidate",
"mean_reversion_score": 60
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"CRST_CFD.UK",
"WTB_CFD.UK",
"ESNT_CFD.UK",
"JDW_CFD.UK",
"CBG_CFD.UK",
"MCG_CFD.UK",
"CCL_CFD.UK",
"SGRO_CFD.UK",
"ABDN_CFD.UK",
"BBY_CFD.UK",
"ATG_CFD.UK",
"BME_CFD.UK",
"BYIT_CFD.UK",
"COR_CFD.US"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Score 90: Extreme -26.6% daily drop + -22% from MA50 + 169% vol indicates deeply oversold condition prime for mean reversion",
"symbol": "CBG_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Retaining mean-reversion position; -4.5% unrealized loss within expected volatility range pending reversion",
"symbol": "AML_CFD.UK"
},
{
"reason": "Holding breakeven position; no catalyst for exit under mean-reversion framework",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Holding breakeven position; awaiting reversion signal",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Maintaining position; -0.7% loss negligible for mean-reversion timeline",
"symbol": "ICG_CFD.UK"
},
{
"reason": "Maintaining position; -0.7% loss negligible for mean-reversion timeline",
"symbol": "LSS_CFD.FR"
},
{
"reason": "Holding breakeven position; no exit criteria met",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Holding breakeven position; mean-reversion thesis intact",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "Retaining position; -3.6% decline consistent with strategy drawdown tolerance",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Holding despite -11.8% loss; extreme move may represent oversold opportunity rather than failure signal",
"symbol": "VTY_CFD.UK"
}
],
"sell": []
},
"portfolio_rationale": "Portfolio at 9/10 positions with 2.64x leverage. Adding highest-conviction oversold candidate (CBG) while holding all existing positions to avoid overtrading. No clear sell signals on current holdings; mean-reversion strategy requires patience through unrealized P&L fluctuations. Single buy action maximizes opportunity within risk limits while respecting max position count."
}Prompts & responses
#1404 • openrouter • moonshotai/kimi-k2-thinking • 2026-03-18T18:37:11.272109+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": "WTB_CFD.UK", "name": "WHITBREAD PLC", "sector": "", "last_price": 2691.0, "change_1d_pct": 11.659751037344401, "distance_from_ma200_pct": -5.969827496214986, "distance_from_ma50_pct": -5.069507041577781, "volatility_20d_pct": 87.61035263352142, "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": "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": "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": "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": "ABDN_CFD.UK", "name": "Aberdeen Group Plc", "sector": "", "last_price": 206.2, "change_1d_pct": 0.4873294346978474, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -3.567353199768042, "volatility_20d_pct": 5122.525857900045, "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": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 313.0, "change_1d_pct": 0.3205128205128194, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 0.8343803356850588, "volatility_20d_pct": 2871.9337920464413, "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": 187.88, "change_1d_pct": 1.0107526881720341, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 7.318666981973787, "volatility_20d_pct": 3503.713036055361, "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": 316.4, "change_1d_pct": 1.9329896907216426, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -3.036395062333752, "volatility_20d_pct": 3610.9502328075146, "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": "COR_CFD.US", "name": "Cencora Inc.", "sector": "", "last_price": 360.83, "change_1d_pct": 2.95391101236242, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 4.151297892941108, "volatility_20d_pct": 4690.896698952752, "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": "CBG_CFD.UK",
"selection_reason": "Extreme -26.6% daily drop, -22% from MA50, high vol 169%, deeply oversold",
"mean_reversion_score": 90
},
{
"symbol": "CRST_CFD.UK",
"selection_reason": "Extreme +24.8% daily spike, +17.8% from MA50, high vol 158%, overextended",
"mean_reversion_score": 85
},
{
"symbol": "WTB_CFD.UK",
"selection_reason": "Strong +11.7% rally, -5% from MA50, moderate vol 87%, potential fade",
"mean_reversion_score": 70
},
{
"symbol": "JDW_CFD.UK",
"selection_reason": "+9.8% daily gain, +5.3% above MA50, vol 98%, extended short-term",
"mean_reversion_score": 65
},
{
"symbol": "CCL_CFD.UK",
"selection_reason": "-4% decline, -4.5% from MA50, high vol 163%, weak bounce candidate",
"mean_reversion_score": 60
}
],
"rejected_common_reasons": [
"Extreme volatility readings (2000-5000%) indicate data errors or illiquidity",
"Insufficient price movement for mean-reversion signal",
"Lower mean-reversion scores vs selected candidates"
]
}#1405 • openrouter • moonshotai/kimi-k2-thinking • 2026-03-18T18:37:29.039217+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": 40.1, "unrealized_pnl": -134.34969032872766, "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": "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": 17.6, "unrealized_pnl": -20.316027088035685, "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": 1197.5, "unrealized_pnl": -43.20987654320987, "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": 376.6, "unrealized_pnl": -354.7178646686958, "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": "CBG_CFD.UK", "mean_reversion_score": 90, "selection_reason": "Extreme -26.6% daily drop, -22% from MA50, high vol 169%, deeply oversold"}, {"symbol": "CRST_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Extreme +24.8% daily spike, +17.8% from MA50, high vol 158%, overextended"}, {"symbol": "WTB_CFD.UK", "mean_reversion_score": 70, "selection_reason": "Strong +11.7% rally, -5% from MA50, moderate vol 87%, potential fade"}, {"symbol": "JDW_CFD.UK", "mean_reversion_score": 65, "selection_reason": "+9.8% daily gain, +5.3% above MA50, vol 98%, extended short-term"}, {"symbol": "CCL_CFD.UK", "mean_reversion_score": 60, "selection_reason": "-4% decline, -4.5% from MA50, high vol 163%, weak bounce candidate"}], "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": "Score 90: Extreme -26.6% daily drop + -22% from MA50 + 169% vol indicates deeply oversold condition prime for mean reversion",
"symbol": "CBG_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "Retaining mean-reversion position; -4.5% unrealized loss within expected volatility range pending reversion",
"symbol": "AML_CFD.UK"
},
{
"reason": "Holding breakeven position; no catalyst for exit under mean-reversion framework",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Holding breakeven position; awaiting reversion signal",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Maintaining position; -0.7% loss negligible for mean-reversion timeline",
"symbol": "ICG_CFD.UK"
},
{
"reason": "Maintaining position; -0.7% loss negligible for mean-reversion timeline",
"symbol": "LSS_CFD.FR"
},
{
"reason": "Holding breakeven position; no exit criteria met",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Holding breakeven position; mean-reversion thesis intact",
"symbol": "PAGE_CFD.UK"
},
{
"reason": "Retaining position; -3.6% decline consistent with strategy drawdown tolerance",
"symbol": "PSN_CFD.UK"
},
{
"reason": "Holding despite -11.8% loss; extreme move may represent oversold opportunity rather than failure signal",
"symbol": "VTY_CFD.UK"
}
],
"sell": []
},
"portfolio_rationale": "Portfolio at 9/10 positions with 2.64x leverage. Adding highest-conviction oversold candidate (CBG) while holding all existing positions to avoid overtrading. No clear sell signals on current holdings; mean-reversion strategy requires patience through unrealized P&L fluctuations. Single buy action maximizes opportunity within risk limits while respecting max position count."
}Selection logs
#699 • stage1 • 2026-03-18T18:37:29.037192+00:00
{
"selected_stocks": [
{
"symbol": "CBG_CFD.UK",
"selection_reason": "Extreme -26.6% daily drop, -22% from MA50, high vol 169%, deeply oversold",
"mean_reversion_score": 90
},
{
"symbol": "CRST_CFD.UK",
"selection_reason": "Extreme +24.8% daily spike, +17.8% from MA50, high vol 158%, overextended",
"mean_reversion_score": 85
},
{
"symbol": "WTB_CFD.UK",
"selection_reason": "Strong +11.7% rally, -5% from MA50, moderate vol 87%, potential fade",
"mean_reversion_score": 70
},
{
"symbol": "JDW_CFD.UK",
"selection_reason": "+9.8% daily gain, +5.3% above MA50, vol 98%, extended short-term",
"mean_reversion_score": 65
},
{
"symbol": "CCL_CFD.UK",
"selection_reason": "-4% decline, -4.5% from MA50, high vol 163%, weak bounce candidate",
"mean_reversion_score": 60
}
],
"rejected_common_reasons": [
"Extreme volatility readings (2000-5000%) indicate data errors or illiquidity",
"Insufficient price movement for mean-reversion signal",
"Lower mean-reversion scores vs selected candidates"
]
}