Arena run #1097
meanrev-v1 • mistralai • mistralai/mistral-large-2512 • EU • success
Run status
as_of: 2026-04-07T10:08:43.931517+00:00
started_at: 2026-04-07T11:54:23.296416+00:00
finished_at: 2026-04-07T11:56:26.938935+00:00
duration_ms: 123639
Inputs
{
"as_of": "2026-04-07T10:08:43.931517+00:00",
"dry_run": false,
"selected": [
{
"symbol": "THG_CFD.UK",
"selection_reason": "Large 1-day drop (-21.46%), near MA200 (2.70% above), oversold relative to MA50 (-18.65%)",
"mean_reversion_score": 85
},
{
"symbol": "PAGE_CFD.UK",
"selection_reason": "Extreme 1-day drop (-36.80%), far below MA200 (-40.61%) and MA50 (-31.73%), high volatility",
"mean_reversion_score": 90
},
{
"symbol": "CBG_CFD.UK",
"selection_reason": "Large 1-day drop (-26.63%), below MA200 (-13.37%) and MA50 (-22.13%), high volatility",
"mean_reversion_score": 80
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Large 1-day drop (-26.79%), below MA200 (-17.65%) and MA50 (-22.14%)",
"mean_reversion_score": 75
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "Large 1-day drop (-22.70%), below MA200 (-20.57%) and MA50 (-11.12%)",
"mean_reversion_score": 70
}
],
"simulate_only": false,
"strict_replay": false,
"universe_symbols": [
"CRST_CFD.UK",
"RS1_CFD.UK",
"MSLH_CFD.UK",
"JUP_CFD.UK",
"BOY_CFD.UK",
"THG_CFD.UK",
"PAGE_CFD.UK",
"ICG_CFD.UK",
"JDW_CFD.UK",
"SHC_CFD.UK",
"PAG_CFD.UK",
"SAFE_CFD.UK",
"UTG_CFD.UK",
"OCDO_CFD.UK",
"CBG_CFD.UK",
"RSW_CFD.UK",
"VCT_CFD.UK",
"DLN_CFD.UK",
"TPK_CFD.UK",
"DOM_CFD.UK",
"HWDN_CFD.UK",
"ESNT_CFD.UK",
"BBY_CFD.UK",
"IEP_CFD.BE",
"BRNK_CFD.DE",
"SAMS_CFD.FR",
"IPO_CFD.UK",
"CMCX_CFD.UK",
"GROW_CFD.UK",
"VBK_CFD.DE",
"IWG_CFD.UK",
"VIRI_CFD.FR",
"WKP_CFD.UK",
"HAIN_CFD.US",
"UBI_CFD.FR",
"LTA_CFD.FR",
"ATG_CFD.UK",
"ROR_CFD.UK",
"XRX_CFD.US",
"AUTO_CFD.UK",
"PRU_CFD.UK",
"ABDN_CFD.UK",
"EXE_CFD.FR",
"TTK_CFD.DE",
"EXPN_CFD.UK",
"MOH_CFD.US",
"S30_CFD.FR"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "Top mean-reversion candidate (score 85), large 1-day drop (-21.46%), near MA200 (2.70% above), oversold relative to MA50 (-18.65%).",
"symbol": "THG_CFD.UK",
"position_size": 3000
},
{
"reason": "Top mean-reversion candidate (score 90), extreme 1-day drop (-36.80%), far below MA200 (-40.61%) and MA50 (-31.73%), high volatility.",
"symbol": "PAGE_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "AUTO_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "BOY_CFD.UK"
},
{
"reason": "Small unrealized gain (107.66), no strong mean-reversion signal to exit.",
"symbol": "BTRW_CFD.UK"
},
{
"reason": "No price change, already held, mean-reversion candidate but prefer to hold for potential recovery.",
"symbol": "CBG_CFD.UK"
},
{
"reason": "Unrealized gain (201.75), no strong mean-reversion signal to exit.",
"symbol": "EXPD_CFD.US"
},
{
"reason": "Unrealized gain (141.45), no strong mean-reversion signal to exit.",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Unrealized gain (145.63), no strong mean-reversion signal to exit.",
"symbol": "HIK_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "ICG_CFD.UK"
},
{
"reason": "Unrealized gain (101.19), no strong mean-reversion signal to exit.",
"symbol": "INF_CFD.UK"
},
{
"reason": "No price change, already held, mean-reversion candidate but prefer to hold for potential recovery.",
"symbol": "IWG_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "JDW_CFD.UK"
},
{
"reason": "Unrealized gain (100.83), no strong mean-reversion signal to exit.",
"symbol": "JMAT_CFD.UK"
},
{
"reason": "Marginal unrealized loss (-6.32), no strong mean-reversion signal to exit.",
"symbol": "KGF_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "MSLH_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "PAG_CFD.UK"
},
{
"reason": "Marginal unrealized loss (-23.36), no strong mean-reversion signal to exit.",
"symbol": "STJ_CFD.UK"
},
{
"reason": "Unrealized gain (326.65), no strong mean-reversion signal to exit.",
"symbol": "SYNT_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "TPK_CFD.UK"
},
{
"reason": "Unrealized gain (245.91), no strong mean-reversion signal to exit.",
"symbol": "UKW_CFD.UK"
}
],
"sell": [
{
"reason": "Significant unrealized loss (-729.96), no signs of recovery, and mean-reversion candidate with lower score (70) compared to others.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Unrealized loss (-163.36), no price recovery, and not among top mean-reversion candidates.",
"symbol": "ESNT_CFD.UK"
}
]
},
"portfolio_rationale": "Exiting OCDO_CFD.UK and ESNT_CFD.UK due to unrealized losses and lack of recovery signals. Holding existing positions with gains or marginal changes to avoid overtrading. Initiating positions in THG_CFD.UK and PAGE_CFD.UK as top mean-reversion candidates with strong oversold signals and high scores. Portfolio remains within max_gross_leverage and max_positions constraints."
}Prompts & responses
#2122 • openrouter • mistralai/mistral-large-2512 • 2026-04-07T11:54:23.349188+00:00
System prompt
You are an Arena strategy executor. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices, fundamentals, earnings dates, or sentiment. If a field is null/empty, treat it as unknown. You are a constrained selector (no narrative).
User prompt
{"task": "stage1_universe_scan", "region": "EU", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "selection_rules": {"horizon": "2-10 trading days", "target": "short-term mean reversion in liquid equities", "constraints": ["Select exactly 5 candidates", "Avoid earnings within 5 trading days (if known)", "Avoid highly binary/event-driven moves (if known)", "Avoid sector concentration: max 1 per sector unless clearly justified (sector may be unknown)"]}, "universe": [{"symbol": "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": "RS1_CFD.UK", "name": "RS GROUP PLC", "sector": "", "last_price": 725.5, "change_1d_pct": 23.91118701964132, "distance_from_ma200_pct": 26.42587431420933, "distance_from_ma50_pct": 23.74236481466445, "volatility_20d_pct": 102.67597620645313, "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": "JUP_CFD.UK", "name": "", "sector": "", "last_price": 193.6, "change_1d_pct": 22.06809583858764, "distance_from_ma200_pct": 57.65825374753912, "distance_from_ma50_pct": 19.274691586205538, "volatility_20d_pct": 96.15961444303547, "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": "BOY_CFD.UK", "name": "BODYCOTE PLC", "sector": "", "last_price": 775.4, "change_1d_pct": 24.163330664531625, "distance_from_ma200_pct": 28.652243313347768, "distance_from_ma50_pct": 18.63612217470385, "volatility_20d_pct": 103.46484337510964, "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": "THG_CFD.UK", "name": "THG PLC", "sector": "", "last_price": 34.98, "change_1d_pct": -21.463852716659193, "distance_from_ma200_pct": 2.6990050116409536, "distance_from_ma50_pct": -18.650784422253118, "volatility_20d_pct": 150.5308117928466, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "PAGE_CFD.UK", "name": "PAGEGROUP PLC", "sector": "", "last_price": 152.7, "change_1d_pct": -36.79635761589404, "distance_from_ma200_pct": -40.61156091058385, "distance_from_ma50_pct": -31.72721647345812, "volatility_20d_pct": 193.22753953431183, "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": 1693.0, "change_1d_pct": -15.18545979199647, "distance_from_ma200_pct": -16.18296530905513, "distance_from_ma50_pct": -12.256151916578562, "volatility_20d_pct": 73.10253575454833, "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": "SHC_CFD.UK", "name": "SHAFTESBURY CAPITAL PLC", "sector": "", "last_price": 140.4, "change_1d_pct": -2.9045643153526868, "distance_from_ma200_pct": 0.26963533347688085, "distance_from_ma50_pct": -0.771073778544229, "volatility_20d_pct": 63.75522821252001, "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": "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": "UTG_CFD.UK", "name": "UNITE GROUP PLC/THE", "sector": "", "last_price": 505.0, "change_1d_pct": -8.265213442325159, "distance_from_ma200_pct": -32.12786599325862, "distance_from_ma50_pct": -13.548388422126267, "volatility_20d_pct": 98.87339279796446, "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": 204.3, "change_1d_pct": -22.701475595913735, "distance_from_ma200_pct": -20.568439154277442, "distance_from_ma50_pct": -11.11950272166612, "volatility_20d_pct": 243.85373637169891, "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": "RSW_CFD.UK", "name": "RENISHAW PLC", "sector": "", "last_price": 4100.0, "change_1d_pct": 18.155619596541793, "distance_from_ma200_pct": 36.779911314574385, "distance_from_ma50_pct": 14.333028240759926, "volatility_20d_pct": 92.61568245477878, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "VCT_CFD.UK", "name": "VICTREX PLC", "sector": "", "last_price": 635.0, "change_1d_pct": -9.285714285714286, "distance_from_ma200_pct": -11.261564295119154, "distance_from_ma50_pct": -2.9181133396627645, "volatility_20d_pct": 130.4010909373053, "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": "TPK_CFD.UK", "name": "TRAVIS PERKINS PLC", "sector": "", "last_price": 601.57, "change_1d_pct": -1.21029986533977, "distance_from_ma200_pct": 0.5267641208837714, "distance_from_ma50_pct": -4.983077425595306, "volatility_20d_pct": 108.19399806448348, "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": 183.13, "change_1d_pct": -0.3102885138813294, "distance_from_ma200_pct": -15.070952368916624, "distance_from_ma50_pct": 1.0777282376278619, "volatility_20d_pct": 87.92203351330001, "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": "ESNT_CFD.UK", "name": "ESSENTRA PLC", "sector": "", "last_price": 90.3, "change_1d_pct": -5.445026178010471, "distance_from_ma200_pct": -10.472044325756846, "distance_from_ma50_pct": -8.39611023305734, "volatility_20d_pct": 6047.44391622699, "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": "IEP_CFD.BE", "name": "IEP Invest NV", "sector": "", "last_price": 5.4, "change_1d_pct": 0.0, "distance_from_ma200_pct": 0.9951765451794659, "distance_from_ma50_pct": 0.5657756042326989, "volatility_20d_pct": 138.39532879660115, "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": "BRNK_CFD.DE", "name": "Branicks Group AG", "sector": "", "last_price": 1.355, "change_1d_pct": 8.226837060702863, "distance_from_ma200_pct": -28.463954808225324, "distance_from_ma50_pct": -20.11178454354644, "volatility_20d_pct": 191.00170149364772, "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": "SAMS_CFD.FR", "name": "", "sector": "", "last_price": 124.0, "change_1d_pct": 2.0576131687242816, "distance_from_ma200_pct": -7.174494545472221, "distance_from_ma50_pct": 0.7489711011326339, "volatility_20d_pct": 62.75863980857495, "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": "CMCX_CFD.UK", "name": "CMC MARKETS PLC", "sector": "", "last_price": 336.5, "change_1d_pct": 6.487341772151889, "distance_from_ma200_pct": 33.727269096422944, "distance_from_ma50_pct": 13.399699398122245, "volatility_20d_pct": 207.2492443353413, "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": "VBK_CFD.DE", "name": "VERBIO Vereinigte BioEnergie AG", "sector": "", "last_price": 43.815, "change_1d_pct": -3.76674719964859, "distance_from_ma200_pct": 134.95899143792593, "distance_from_ma50_pct": 43.44062379893234, "volatility_20d_pct": 113.13600852659475, "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": 177.0, "change_1d_pct": -26.786896095301127, "distance_from_ma200_pct": -17.645939421376646, "distance_from_ma50_pct": -22.14236071400294, "volatility_20d_pct": 154.02502086657427, "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": "VIRI_CFD.FR", "name": "VIRIDIEN", "sector": "", "last_price": 127.1, "change_1d_pct": 32.258064516129025, "distance_from_ma200_pct": 86.88026988392838, "distance_from_ma50_pct": 29.097132641971314, "volatility_20d_pct": 297.97668648307325, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "WKP_CFD.UK", "name": "WORKSPACE GROUP PLC", "sector": "", "last_price": 423.0, "change_1d_pct": 3.6764705882353033, "distance_from_ma200_pct": 1.8640028868691871, "distance_from_ma50_pct": 5.808194506978848, "volatility_20d_pct": 70.2233148398582, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "HAIN_CFD.US", "name": "The Hain Celestial Group Inc", "sector": "", "last_price": 0.83, "change_1d_pct": 27.692307692307683, "distance_from_ma200_pct": -36.18330001537752, "distance_from_ma50_pct": -2.9920523609163197, "volatility_20d_pct": 178.14656506500853, "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": "UBI_CFD.FR", "name": "UBISoft Entertainment", "sector": "", "last_price": 4.105, "change_1d_pct": 3.4265558075082136, "distance_from_ma200_pct": -42.553989454004004, "distance_from_ma50_pct": -0.8204959700021108, "volatility_20d_pct": 107.20527616761109, "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": "LTA_CFD.FR", "name": "ALTAMIR", "sector": "", "last_price": 24.3, "change_1d_pct": -4.929577464788726, "distance_from_ma200_pct": -14.049752813455784, "distance_from_ma50_pct": -12.866748516941861, "volatility_20d_pct": 84.77436865385725, "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": "ROR_CFD.UK", "name": "ROTORK PLC", "sector": "", "last_price": 309.4, "change_1d_pct": -1.976935749588138, "distance_from_ma200_pct": -5.349048328121276, "distance_from_ma50_pct": -9.294951475437518, "volatility_20d_pct": 6791.987772084985, "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": "XRX_CFD.US", "name": "Xerox Corp", "sector": "", "last_price": 1.24, "change_1d_pct": -2.3622047244094557, "distance_from_ma200_pct": -61.24333869883887, "distance_from_ma50_pct": -30.555555555555557, "volatility_20d_pct": 137.27800610777865, "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": "PRU_CFD.UK", "name": "PRUDENTIAL PLC", "sector": "", "last_price": 1088.5, "change_1d_pct": 3.56803044719316, "distance_from_ma200_pct": 3.8457610441779533, "distance_from_ma50_pct": -2.7186408601012735, "volatility_20d_pct": 107.76980419166637, "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": 193.2, "change_1d_pct": -11.780821917808225, "distance_from_ma200_pct": 1.3805491026614547, "distance_from_ma50_pct": -6.772144752169284, "volatility_20d_pct": 87.08429925175024, "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": 32.97, "change_1d_pct": -4.710982658959539, "distance_from_ma200_pct": -13.640640290347672, "distance_from_ma50_pct": -10.965958589044034, "volatility_20d_pct": 87.01047353695816, "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": "TTK_CFD.DE", "name": "TAKKT AG", "sector": "", "last_price": 2.555, "change_1d_pct": 6.458333333333344, "distance_from_ma200_pct": -41.481558674757714, "distance_from_ma50_pct": -18.06275334804248, "volatility_20d_pct": 128.96417437650825, "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": 2630.0, "change_1d_pct": -2.66469282013323, "distance_from_ma200_pct": -23.735371889742517, "distance_from_ma50_pct": -3.814856398872113, "volatility_20d_pct": 116.50608780776388, "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": "MOH_CFD.US", "name": "", "sector": "", "last_price": 144.74, "change_1d_pct": 8.33832335329343, "distance_from_ma200_pct": -16.760766566973974, "distance_from_ma50_pct": -3.741537315616561, "volatility_20d_pct": 85.67922753915235, "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": "S30_CFD.FR", "name": "", "sector": "", "last_price": 0.546, "change_1d_pct": -4.712041884816742, "distance_from_ma200_pct": -53.41336678014692, "distance_from_ma50_pct": -34.30393454457946, "volatility_20d_pct": 136.14897695621627, "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": "THG_CFD.UK",
"selection_reason": "Large 1-day drop (-21.46%), near MA200 (2.70% above), oversold relative to MA50 (-18.65%)",
"mean_reversion_score": 85
},
{
"symbol": "PAGE_CFD.UK",
"selection_reason": "Extreme 1-day drop (-36.80%), far below MA200 (-40.61%) and MA50 (-31.73%), high volatility",
"mean_reversion_score": 90
},
{
"symbol": "CBG_CFD.UK",
"selection_reason": "Large 1-day drop (-26.63%), below MA200 (-13.37%) and MA50 (-22.13%), high volatility",
"mean_reversion_score": 80
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Large 1-day drop (-26.79%), below MA200 (-17.65%) and MA50 (-22.14%)",
"mean_reversion_score": 75
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "Large 1-day drop (-22.70%), below MA200 (-20.57%) and MA50 (-11.12%)",
"mean_reversion_score": 70
}
],
"rejected_common_reasons": [
"No earnings date confirmed (unknown risk)",
"Extreme volatility (e.g., ESNT_CFD.UK, VIRI_CFD.FR) suggests binary/event-driven moves",
"Sector concentration (unknown, but avoided multiple stocks with similar price action)",
"Insufficient deviation from moving averages for mean-reversion setup"
]
}#2123 • openrouter • mistralai/mistral-large-2512 • 2026-04-07T11:55:53.343894+00:00
System prompt
You are an Arena portfolio manager. You must follow the strategy rules strictly and output ONLY valid JSON. You are NOT allowed to invent prices/fundamentals/news/earnings. If a field is null/empty, treat it as unknown. Avoid overtrading: if changes are marginal, prefer HOLD. Do not churn.
User prompt
{"task": "stage2_portfolio_management", "region": "EU", "strategy": {"key": "meanrev-v1", "name": "Two-Stage LLM Mean-Reversion (Arena v1)", "rules": {"max_positions": 10, "max_buys_per_run": 2, "avoid_overtrading": true, "max_sells_per_run": 2, "max_gross_leverage": 3.0, "fixed_position_size": 3000.0, "universe_symbols_eu": [], "universe_symbols_us": []}}, "portfolio_constraints": {"initial_equity": 10000.0, "max_positions": 10, "fixed_position_size": 3000.0, "max_gross_leverage": 3.0, "overtrading_rules": ["Max 2 SELL actions per run unless risk event forces more", "Max 2 BUY actions per run", "If no clear improvement vs current holdings, output HOLD for everything"]}, "current_portfolio": [{"symbol": "AAL_CFD.UK", "qty": 0.0, "avg_price": 2913.0, "last_price": 2900.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "ACM_CFD.US", "qty": 0.0, "avg_price": 88.42, "last_price": 97.88, "unrealized_pnl": 0.0, "opened_at": "2026-02-15T10:57:15.913854+00:00"}, {"symbol": "ADS_CFD.DE", "qty": 0.0, "avg_price": 137.15, "last_price": 138.55, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "AIR_CFD.DE", "qty": 0.0, "avg_price": 200.984, "last_price": 187.12, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "AMCX_CFD.US", "qty": 0.0, "avg_price": 7.5, "last_price": 7.365, "unrealized_pnl": -53.999999999999915, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "AMH_CFD.US", "qty": 0.0, "avg_price": 29.595, "last_price": 29.485, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "ATG_CFD.UK", "qty": 0.0, "avg_price": 296.0, "last_price": 296.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "ATO_CFD.FR", "qty": 0.0, "avg_price": 35.106, "last_price": 38.024, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+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": "BIG_CFD.FR", "qty": 0.0, "avg_price": 0.453, "last_price": 0.453, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "BLND_CFD.UK", "qty": 0.0, "avg_price": 364.2, "last_price": 364.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T18:18:45.954380+00:00"}, {"symbol": "BOY_CFD.UK", "qty": 4.73186119873817, "avg_price": 634.0, "last_price": 634.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-31T17:54:15.044829+00:00"}, {"symbol": "BRBY_CFD.UK", "qty": 0.0, "avg_price": 1070.84, "last_price": 1070.84, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "BTRW_CFD.UK", "qty": 11.961722488038276, "avg_price": 250.8, "last_price": 259.8, "unrealized_pnl": 107.65550239234449, "opened_at": "2026-03-23T18:04:09.108429+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 0.0, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-15T10:57:15.913854+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-04T10:26:53.527562+00:00"}, {"symbol": "CRST_CFD.UK", "qty": 0.0, "avg_price": 118.83, "last_price": 118.83, "unrealized_pnl": 0.0, "opened_at": "2026-03-18T17:58:33.497657+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 350.24, "last_price": 350.055, "unrealized_pnl": -1.5846276838739344, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "DLTR_CFD.US", "qty": 0.0, "avg_price": 112.12, "last_price": 107.655, "unrealized_pnl": 0.0, "opened_at": "2026-03-17T18:12:35.221859+00:00"}, {"symbol": "DOM_CFD.UK", "qty": 0.0, "avg_price": 199.3, "last_price": 189.21, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "DSY_CFD.FR", "qty": 0.0, "avg_price": 17.881, "last_price": 16.752, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "ESNT_CFD.UK", "qty": 31.413612565445025, "avg_price": 95.5, "last_price": 90.3, "unrealized_pnl": -163.35078534031422, "opened_at": "2026-03-20T10:26:40.341409+00:00"}, {"symbol": "ESTC_CFD.US", "qty": 0.0, "avg_price": 58.085, "last_price": 54.045, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}, {"symbol": "EVT_CFD.DE", "qty": 0.0, "avg_price": 4.502, "last_price": 4.353, "unrealized_pnl": 0.0, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "EXM_CFD.BE", "qty": 0.0, "avg_price": 10.0, "last_price": 9.933, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "EXPD_CFD.US", "qty": 22.01269398686576, "avg_price": 136.285, "last_price": 145.45, "unrealized_pnl": 201.74634038962452, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 0.0, "avg_price": 405.2, "last_price": 394.1, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "FRVIA_CFD.FR", "qty": 0.0, "avg_price": 12.709, "last_price": 12.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 10.55594651653765, "avg_price": 284.2, "last_price": 297.6, "unrealized_pnl": 141.44968332160488, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "GO_CFD.US", "qty": 0.0, "avg_price": 6.53, "last_price": 6.35, "unrealized_pnl": 0.0, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "GRI_CFD.UK", "qty": 0.0, "avg_price": 189.6, "last_price": 189.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 4.854368932038835, "avg_price": 1236.0, "last_price": 1266.0, "unrealized_pnl": 145.63106796116503, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "ICG_CFD.UK", "qty": 2.0053475935828877, "avg_price": 1496.0, "last_price": 1496.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "INF_CFD.UK", "qty": 4.0474905558553695, "avg_price": 741.2, "last_price": 766.2, "unrealized_pnl": 101.18726389638424, "opened_at": "2026-03-21T10:00:02.317290+00:00"}, {"symbol": "ITRK_CFD.UK", "qty": 0.0, "avg_price": 3942.0, "last_price": 3760.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-13T10:07:39.444598+00:00"}, {"symbol": "IWG_CFD.UK", "qty": 17.421602787456447, "avg_price": 172.2, "last_price": 172.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T18:18:58.833148+00:00"}, {"symbol": "JDW_CFD.UK", "qty": 4.514672686230249, "avg_price": 664.5, "last_price": 664.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T10:35:48.762746+00:00"}, {"symbol": "JEF_CFD.US", "qty": 0.0, "avg_price": 47.46, "last_price": 44.27, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T18:07:22.382508+00:00"}, {"symbol": "JMAT_CFD.UK", "qty": 1.6528925619834711, "avg_price": 1815.0, "last_price": 1876.0, "unrealized_pnl": 100.82644628099173, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "KGF_CFD.UK", "qty": 10.526315789473685, "avg_price": 285.0, "last_price": 284.4, "unrealized_pnl": -6.31578947368445, "opened_at": "2026-03-27T09:59:46.331143+00:00"}, {"symbol": "LIO_CFD.UK", "qty": 0.0, "avg_price": 250.0, "last_price": 257.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "MCG_CFD.UK", "qty": 0.0, "avg_price": 17.39, "last_price": 17.39, "unrealized_pnl": 0.0, "opened_at": "2026-03-27T18:04:13.865611+00:00"}, {"symbol": "MSLH_CFD.UK", "qty": 21.30681818181818, "avg_price": 140.8, "last_price": 140.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T17:59:11.913241+00:00"}, {"symbol": "NA9_CFD.DE", "qty": 0.0, "avg_price": 48.578, "last_price": 53.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T10:57:06.928276+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 44.052863436123346, "avg_price": 204.3, "last_price": 187.73, "unrealized_pnl": -729.9559471365648, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "OKTA_CFD.US", "qty": 0.0, "avg_price": 70.18, "last_price": 79.26, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 22.57336343115124, "avg_price": 132.9, "last_price": 132.9, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "PAG_CFD.UK", "qty": 3.9190071848465053, "avg_price": 765.5, "last_price": 765.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-22T18:18:31.438015+00:00"}, {"symbol": "PSN_CFD.UK", "qty": 0.0, "avg_price": 1068.0, "last_price": 1066.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-21T10:00:02.317290+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 0.0, "avg_price": 424.3, "last_price": 424.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "SOI_CFD.FR", "qty": 0.0, "avg_price": 57.5, "last_price": 54.96, "unrealized_pnl": 0.0, "opened_at": "2026-03-19T10:09:24.325041+00:00"}, {"symbol": "STJ_CFD.UK", "qty": 2.459016393442623, "avg_price": 1220.0, "last_price": 1210.5, "unrealized_pnl": -23.360655737704917, "opened_at": "2026-03-15T10:35:48.762746+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 85.9598853868195, "avg_price": 34.9, "last_price": 38.7, "unrealized_pnl": 326.6475644699144, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "TPK_CFD.UK", "qty": 5.328975415660082, "avg_price": 562.96, "last_price": 562.96, "unrealized_pnl": 0.0, "opened_at": "2026-03-22T18:18:31.438015+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 0.0, "avg_price": 184.50000000000003, "last_price": 211.4, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "TRST_CFD.UK", "qty": 0.0, "avg_price": 151.8, "last_price": 224.82, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "TUI1_CFD.DE", "qty": 0.0, "avg_price": 7.398000000000001, "last_price": 6.95, "unrealized_pnl": -181.67072181670738, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 32.48511099079589, "avg_price": 92.35, "last_price": 99.92, "unrealized_pnl": 245.91229020032512, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "ULTA_CFD.US", "qty": 0.0, "avg_price": 535.2, "last_price": 523.22, "unrealized_pnl": 0.0, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 0.0, "avg_price": 505.0, "last_price": 505.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-26T17:55:26.602359+00:00"}, {"symbol": "VSVS_CFD.UK", "qty": 0.0, "avg_price": 425.0, "last_price": 421.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T18:18:58.833148+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 0.0, "avg_price": 385.0, "last_price": 385.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "WEIR_CFD.UK", "qty": 0.0, "avg_price": 2890.0, "last_price": 2842.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-14T10:03:26.036362+00:00"}, {"symbol": "WIX_CFD.UK", "qty": 0.0, "avg_price": 224.5, "last_price": 222.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 1087.0, "last_price": 1064.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "WKP_CFD.UK", "qty": 0.0, "avg_price": 412.5, "last_price": 412.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 257.0, "unrealized_pnl": -72.89293849658289, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "ZS_CFD.US", "qty": 0.0, "avg_price": 159.76, "last_price": 144.45, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "THG_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Large 1-day drop (-21.46%), near MA200 (2.70% above), oversold relative to MA50 (-18.65%)"}, {"symbol": "PAGE_CFD.UK", "mean_reversion_score": 90, "selection_reason": "Extreme 1-day drop (-36.80%), far below MA200 (-40.61%) and MA50 (-31.73%), high volatility"}, {"symbol": "CBG_CFD.UK", "mean_reversion_score": 80, "selection_reason": "Large 1-day drop (-26.63%), below MA200 (-13.37%) and MA50 (-22.13%), high volatility"}, {"symbol": "IWG_CFD.UK", "mean_reversion_score": 75, "selection_reason": "Large 1-day drop (-26.79%), below MA200 (-17.65%) and MA50 (-22.14%)"}, {"symbol": "OCDO_CFD.UK", "mean_reversion_score": 70, "selection_reason": "Large 1-day drop (-22.70%), below MA200 (-20.57%) and MA50 (-11.12%)"}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}Output JSON
{
"actions": {
"buy": [
{
"reason": "Top mean-reversion candidate (score 85), large 1-day drop (-21.46%), near MA200 (2.70% above), oversold relative to MA50 (-18.65%).",
"symbol": "THG_CFD.UK",
"position_size": 3000
},
{
"reason": "Top mean-reversion candidate (score 90), extreme 1-day drop (-36.80%), far below MA200 (-40.61%) and MA50 (-31.73%), high volatility.",
"symbol": "PAGE_CFD.UK",
"position_size": 3000
}
],
"hold": [
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "AUTO_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "BOY_CFD.UK"
},
{
"reason": "Small unrealized gain (107.66), no strong mean-reversion signal to exit.",
"symbol": "BTRW_CFD.UK"
},
{
"reason": "No price change, already held, mean-reversion candidate but prefer to hold for potential recovery.",
"symbol": "CBG_CFD.UK"
},
{
"reason": "Unrealized gain (201.75), no strong mean-reversion signal to exit.",
"symbol": "EXPD_CFD.US"
},
{
"reason": "Unrealized gain (141.45), no strong mean-reversion signal to exit.",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Unrealized gain (145.63), no strong mean-reversion signal to exit.",
"symbol": "HIK_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "ICG_CFD.UK"
},
{
"reason": "Unrealized gain (101.19), no strong mean-reversion signal to exit.",
"symbol": "INF_CFD.UK"
},
{
"reason": "No price change, already held, mean-reversion candidate but prefer to hold for potential recovery.",
"symbol": "IWG_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "JDW_CFD.UK"
},
{
"reason": "Unrealized gain (100.83), no strong mean-reversion signal to exit.",
"symbol": "JMAT_CFD.UK"
},
{
"reason": "Marginal unrealized loss (-6.32), no strong mean-reversion signal to exit.",
"symbol": "KGF_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "MSLH_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "PAG_CFD.UK"
},
{
"reason": "Marginal unrealized loss (-23.36), no strong mean-reversion signal to exit.",
"symbol": "STJ_CFD.UK"
},
{
"reason": "Unrealized gain (326.65), no strong mean-reversion signal to exit.",
"symbol": "SYNT_CFD.UK"
},
{
"reason": "No price change, no new mean-reversion signal.",
"symbol": "TPK_CFD.UK"
},
{
"reason": "Unrealized gain (245.91), no strong mean-reversion signal to exit.",
"symbol": "UKW_CFD.UK"
}
],
"sell": [
{
"reason": "Significant unrealized loss (-729.96), no signs of recovery, and mean-reversion candidate with lower score (70) compared to others.",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Unrealized loss (-163.36), no price recovery, and not among top mean-reversion candidates.",
"symbol": "ESNT_CFD.UK"
}
]
},
"portfolio_rationale": "Exiting OCDO_CFD.UK and ESNT_CFD.UK due to unrealized losses and lack of recovery signals. Holding existing positions with gains or marginal changes to avoid overtrading. Initiating positions in THG_CFD.UK and PAGE_CFD.UK as top mean-reversion candidates with strong oversold signals and high scores. Portfolio remains within max_gross_leverage and max_positions constraints."
}Selection logs
#1030 • stage1 • 2026-04-07T11:55:53.338853+00:00
{
"selected_stocks": [
{
"symbol": "THG_CFD.UK",
"selection_reason": "Large 1-day drop (-21.46%), near MA200 (2.70% above), oversold relative to MA50 (-18.65%)",
"mean_reversion_score": 85
},
{
"symbol": "PAGE_CFD.UK",
"selection_reason": "Extreme 1-day drop (-36.80%), far below MA200 (-40.61%) and MA50 (-31.73%), high volatility",
"mean_reversion_score": 90
},
{
"symbol": "CBG_CFD.UK",
"selection_reason": "Large 1-day drop (-26.63%), below MA200 (-13.37%) and MA50 (-22.13%), high volatility",
"mean_reversion_score": 80
},
{
"symbol": "IWG_CFD.UK",
"selection_reason": "Large 1-day drop (-26.79%), below MA200 (-17.65%) and MA50 (-22.14%)",
"mean_reversion_score": 75
},
{
"symbol": "OCDO_CFD.UK",
"selection_reason": "Large 1-day drop (-22.70%), below MA200 (-20.57%) and MA50 (-11.12%)",
"mean_reversion_score": 70
}
],
"rejected_common_reasons": [
"No earnings date confirmed (unknown risk)",
"Extreme volatility (e.g., ESNT_CFD.UK, VIRI_CFD.FR) suggests binary/event-driven moves",
"Sector concentration (unknown, but avoided multiple stocks with similar price action)",
"Insufficient deviation from moving averages for mean-reversion setup"
]
}