Arena run #449
meanrev-v1 • x-ai • x-ai/grok-4.1-fast • EU • success
Run status
as_of: 2026-03-06T10:33:43.857578+00:00
started_at: 2026-03-06T14:15:05.770524+00:00
finished_at: 2026-03-06T14:16:45.422447+00:00
duration_ms: 99650
Inputs
{
"dry_run": false,
"selected": [
{
"symbol": "SYNT_CFD.UK",
"selection_reason": "Extreme dist_ma50_pct -64.48 with change_1d_pct -8.91 indicating strong oversold mean reversion setup",
"mean_reversion_score": 98
},
{
"symbol": "MCG_CFD.UK",
"selection_reason": "Extreme dist_ma50_pct +28.67 with change_1d_pct +21.87 indicating strong overbought mean reversion setup",
"mean_reversion_score": 96
},
{
"symbol": "AML_CFD.UK",
"selection_reason": "Large dist_ma50_pct -28.74 with change_1d_pct -3.85 indicating oversold mean reversion setup",
"mean_reversion_score": 89
},
{
"symbol": "LXS_CFD.DE",
"selection_reason": "Large dist_ma50_pct -24.88 with change_1d_pct -18.19 indicating oversold mean reversion setup",
"mean_reversion_score": 92
},
{
"symbol": "CO_CFD.FR",
"selection_reason": "Large dist_ma50_pct -24.73 with change_1d_pct -20.18 indicating oversold mean reversion setup",
"mean_reversion_score": 94
}
],
"universe_symbols": [
"PAGE_CFD.UK",
"MCG_CFD.UK",
"BESI_CFD.NL",
"TRN_CFD.UK",
"SYNT_CFD.UK",
"DLN_CFD.UK",
"STAN_CFD.UK",
"RHIM_CFD.UK",
"BBY_CFD.UK",
"LXS_CFD.DE",
"CO_CFD.FR",
"HLMA_CFD.UK",
"TUB_CFD.BE",
"GDS_CFD.FR",
"DPLM_CFD.UK",
"IPO_CFD.UK",
"ATG_CFD.UK",
"CRDA_CFD.UK",
"HMSO_CFD.UK",
"AML_CFD.UK"
]
}Outputs
{
"actions": {
"buy": [
{
"reason": "High mean reversion score 94; extreme oversold (dist_ma50_pct -24.73, change_1d_pct -20.18); strong setup vs current holdings",
"symbol": "CO_CFD.FR",
"position_size": 3000
}
],
"hold": [
{
"reason": "Minor unrealized loss; stable price near average; no strong sell signal, avoid overtrading",
"symbol": "BIG_CFD.FR"
},
{
"reason": "Flat position; no strong sell signal, avoid overtrading",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Profitable position (+$29.78); no strong sell signal, avoid overtrading",
"symbol": "DKNG_CFD.US"
},
{
"reason": "Profitable position (+$101.85); no strong sell signal, avoid overtrading",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Strong profitable position (+$408.24); no strong sell signal, avoid overtrading",
"symbol": "OKTA_CFD.US"
},
{
"reason": "Flat position; no strong sell signal, avoid overtrading",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Top mean reversion candidate (score 98, oversold); strong hold",
"symbol": "SYNT_CFD.UK"
},
{
"reason": "Flat position; no strong sell signal, avoid overtrading",
"symbol": "TRN_CFD.UK"
},
{
"reason": "Profitable position (+$79.26); no strong sell signal, avoid overtrading",
"symbol": "UKW_CFD.UK"
}
],
"sell": [
{
"reason": "Largest unrealized loss (-$82.70); sell to reduce gross leverage >3.0 and positions >10",
"symbol": "GO_CFD.US"
},
{
"reason": "Unrealized loss (-$47.43); sell to reduce gross leverage >3.0 and positions >10",
"symbol": "HPP_CFD.US"
}
]
},
"portfolio_rationale": "Portfolio exceeded max_positions (11>10) and max_gross_leverage (~3.2>3.0). Executed max 2 sells on losers to trim risk/exposure. Added 1 buy (max cautious) on next-best oversold candidate post top-held SYNT. Post-actions: 10 positions, leverage ~2.96. Prioritizes high-conviction mean reversion signals, avoids overtrading/churn."
}Prompts & responses
#883 • openrouter • x-ai/grok-4.1-fast • 2026-03-06T14:15:05.788801+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": "PAGE_CFD.UK", "name": "PAGEGROUP PLC", "sector": "", "last_price": 205.8, "change_1d_pct": -13.091216216216218, "distance_from_ma200_pct": -20.507377691735872, "distance_from_ma50_pct": -9.456474873951793, "volatility_20d_pct": 113.15149478988747, "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": 30.54, "change_1d_pct": 21.867517956903427, "distance_from_ma200_pct": 10.17176911546931, "distance_from_ma50_pct": 28.667486813057195, "volatility_20d_pct": 211.42235702559637, "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": "BESI_CFD.NL", "name": "BE SEMICONDUCTOR INDUSTRIES", "sector": "", "last_price": 181.35, "change_1d_pct": -3.7931034482758696, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 9.39196525515744, "volatility_20d_pct": 5143.441723560482, "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": "TRN_CFD.UK", "name": "TRAINLINE PLC", "sector": "", "last_price": 184.5, "change_1d_pct": -10.436893203883491, "distance_from_ma200_pct": -30.640271123232875, "distance_from_ma50_pct": -21.68611284670343, "volatility_20d_pct": 4790.53876131341, "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": "SYNT_CFD.UK", "name": "SYNTHOMER PLC", "sector": "", "last_price": 18.4, "change_1d_pct": -8.910891089108919, "distance_from_ma200_pct": -75.973011423919, "distance_from_ma50_pct": -64.4775301072238, "volatility_20d_pct": 19461.987558310895, "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": 1812.0, "change_1d_pct": -7.219662058371734, "distance_from_ma200_pct": -2.516182676819012, "distance_from_ma50_pct": 4.053563926444004, "volatility_20d_pct": 7353.720365167649, "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": "STAN_CFD.UK", "name": "STANDARD CHARTERED PLC", "sector": "", "last_price": 1842.0, "change_1d_pct": 0.3541269408880332, "distance_from_ma200_pct": 31.43986196388351, "distance_from_ma50_pct": 4.292113036344269, "volatility_20d_pct": 75.84142956557304, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "RHIM_CFD.UK", "name": "RHI MAGNESITA NV", "sector": "", "last_price": 2960.0, "change_1d_pct": 9.023941068139973, "distance_from_ma200_pct": 12.939755835694466, "distance_from_ma50_pct": 17.95826987098712, "volatility_20d_pct": 137.0123103901981, "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": "LXS_CFD.DE", "name": "Lanxess AG", "sector": "", "last_price": 13.761, "change_1d_pct": -18.186682520808574, "distance_from_ma200_pct": -35.89092559135858, "distance_from_ma50_pct": -24.877416058250713, "volatility_20d_pct": 112.4169107383795, "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": "CO_CFD.FR", "name": "Casino Guichard Perrachon", "sector": "", "last_price": 0.178, "change_1d_pct": -20.17937219730942, "distance_from_ma200_pct": -53.725969349953864, "distance_from_ma50_pct": -24.729364005412723, "volatility_20d_pct": 116.14944631367268, "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": 3964.0, "change_1d_pct": 12.35827664399094, "distance_from_ma200_pct": 19.161886713840424, "distance_from_ma50_pct": 8.086294526972493, "volatility_20d_pct": 85.41952885259926, "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": "TUB_CFD.BE", "name": "", "sector": "", "last_price": 229.0, "change_1d_pct": 2.0044543429844186, "distance_from_ma200_pct": 22.37966565127174, "distance_from_ma50_pct": 1.761948141400227, "volatility_20d_pct": 65.4055597893377, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "GDS_CFD.FR", "name": "", "sector": "", "last_price": 10.8, "change_1d_pct": -1.3698630136986134, "distance_from_ma200_pct": 7.670206158536397, "distance_from_ma50_pct": 9.234348133913217, "volatility_20d_pct": 114.50395687060202, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "DPLM_CFD.UK", "name": "DIPLOMA PLC", "sector": "", "last_price": 5510.0, "change_1d_pct": 0.7312614259597838, "distance_from_ma200_pct": 11.035071455048428, "distance_from_ma50_pct": 0.39717925834363843, "volatility_20d_pct": 72.46279741195445, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "IPO_CFD.UK", "name": "IP GROUP PLC", "sector": "", "last_price": 57.6, "change_1d_pct": -1.873935264054516, "distance_from_ma200_pct": 10.233643652522883, "distance_from_ma50_pct": -2.027486732888828, "volatility_20d_pct": 89.82123635439407, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ATG_CFD.UK", "name": "AUCTION TECHNOLOGY GROUP", "sector": "", "last_price": 305.0, "change_1d_pct": 4.2735042735042805, "distance_from_ma200_pct": -30.344980756373573, "distance_from_ma50_pct": -1.1704016694101371, "volatility_20d_pct": 159.9931345477538, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CRDA_CFD.UK", "name": "CRODA INTERNATIONAL PLC", "sector": "", "last_price": 2872.0, "change_1d_pct": -3.7855946398659968, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 0.6687884693577173, "volatility_20d_pct": 5593.264895558752, "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": 348.8, "change_1d_pct": -1.8570624648283518, "distance_from_ma200_pct": 20.24082637989966, "distance_from_ma50_pct": 7.964017771966869, "volatility_20d_pct": 3280.1806241206145, "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": "AML_CFD.UK", "name": "ASTON MARTIN LAGONDA GLOBAL", "sector": "", "last_price": 42.5, "change_1d_pct": -3.8461538461538547, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -28.744119294080562, "volatility_20d_pct": 7200.809443066937, "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": "SYNT_CFD.UK",
"selection_reason": "Extreme dist_ma50_pct -64.48 with change_1d_pct -8.91 indicating strong oversold mean reversion setup",
"mean_reversion_score": 98
},
{
"symbol": "MCG_CFD.UK",
"selection_reason": "Extreme dist_ma50_pct +28.67 with change_1d_pct +21.87 indicating strong overbought mean reversion setup",
"mean_reversion_score": 96
},
{
"symbol": "AML_CFD.UK",
"selection_reason": "Large dist_ma50_pct -28.74 with change_1d_pct -3.85 indicating oversold mean reversion setup",
"mean_reversion_score": 89
},
{
"symbol": "LXS_CFD.DE",
"selection_reason": "Large dist_ma50_pct -24.88 with change_1d_pct -18.19 indicating oversold mean reversion setup",
"mean_reversion_score": 92
},
{
"symbol": "CO_CFD.FR",
"selection_reason": "Large dist_ma50_pct -24.73 with change_1d_pct -20.18 indicating oversold mean reversion setup",
"mean_reversion_score": 94
}
],
"rejected_common_reasons": [
"Low absolute dist_ma50_pct",
"Small abs(change_1d_pct)",
"Missing dist_ma50_pct or dist_ma200_pct"
]
}#884 • openrouter • x-ai/grok-4.1-fast • 2026-03-06T14:15:32.358215+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": "AML_CFD.UK", "qty": 0.0, "avg_price": 39.92, "last_price": 42.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+00:00"}, {"symbol": "ARCAD_CFD.NL", "qty": 0.0, "avg_price": 29.7, "last_price": 28.06, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 9615.384615384615, "avg_price": 0.312, "last_price": 0.309, "unrealized_pnl": -28.84615384615387, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "BXP_CFD.US", "qty": 0.0, "avg_price": 60.835, "last_price": 59.405, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T17:33:48.338981+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 10.252904989747094, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "CABO_CFD.US", "qty": 0.0, "avg_price": 94.6, "last_price": 96.44, "unrealized_pnl": 58.3509513742073, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "CAR_CFD.US", "qty": 0.0, "avg_price": 92.465, "last_price": 97.54, "unrealized_pnl": 164.65689720434767, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "COIN_CFD.US", "qty": 0.0, "avg_price": 168.575, "last_price": 171.13, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 350.79999999999995, "last_price": 350.055, "unrealized_pnl": 0.0, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "DKNG_CFD.US", "qty": 119.11852293031565, "avg_price": 25.185000000000002, "last_price": 25.435000000000002, "unrealized_pnl": 29.779630732578912, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "ESTC_CFD.US", "qty": 0.0, "avg_price": 58.085, "last_price": 55.28, "unrealized_pnl": -144.87389171042437, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "EXPO_CFD.US", "qty": 0.0, "avg_price": 66.815, "last_price": 70.025, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "FBIN_CFD.US", "qty": 0.0, "avg_price": 50.974999999999994, "last_price": 54.35, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T17:30:52.485845+00:00"}, {"symbol": "FICO_CFD.US", "qty": 0.0, "avg_price": 1208.505, "last_price": 1405.2800000000002, "unrealized_pnl": 0.0, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "FLO_CFD.US", "qty": 0.0, "avg_price": 9.875, "last_price": 10.055, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 7.488766849725412, "avg_price": 400.6, "last_price": 414.2, "unrealized_pnl": 101.84722915626534, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "GO_CFD.US", "qty": 459.4180704441041, "avg_price": 6.53, "last_price": 6.35, "unrealized_pnl": -82.69525267993902, "opened_at": "2026-03-05T18:20:59.102726+00:00"}, {"symbol": "HAIN_CFD.US", "qty": 0.0, "avg_price": 0.8, "last_price": 0.8, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1275.0, "last_price": 1342.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "HPP_CFD.US", "qty": 395.25691699604744, "avg_price": 7.59, "last_price": 7.47, "unrealized_pnl": -47.43083003952574, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "ICG_CFD.UK", "qty": 0.0, "avg_price": 1700.0, "last_price": 1719.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "JUN3_CFD.DE", "qty": 0.0, "avg_price": 31.51, "last_price": 30.167, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "LMND_CFD.US", "qty": 0.0, "avg_price": 61.5, "last_price": 59.89, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "LPX_CFD.US", "qty": 0.0, "avg_price": 86.45, "last_price": 86.15, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "NET_CFD.US", "qty": 0.0, "avg_price": 176.96, "last_price": 164.32, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 13.824884792626728, "avg_price": 217.0, "last_price": 217.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "OKTA_CFD.US", "qty": 42.747221430607006, "avg_price": 70.18, "last_price": 79.73, "unrealized_pnl": 408.2359646622968, "opened_at": "2026-02-23T18:14:12.978497+00:00"}, {"symbol": "PAYC_CFD.US", "qty": 0.0, "avg_price": 121.22, "last_price": 119.79, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "PROX_CFD.BE", "qty": 0.0, "avg_price": 6.98, "last_price": 7.68, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 0.0, "avg_price": 424.3, "last_price": 417.16, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 163.0434782608696, "avg_price": 18.4, "last_price": 18.48, "unrealized_pnl": 13.043478260869868, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "THG_CFD.UK", "qty": 0.0, "avg_price": 34.98, "last_price": 34.98, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 16.260162601626018, "avg_price": 184.5, "last_price": 184.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "TRST_CFD.UK", "qty": 0.0, "avg_price": 134.3, "last_price": 139.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 32.48511099079589, "avg_price": 92.35, "last_price": 94.79, "unrealized_pnl": 79.26367081754236, "opened_at": "2026-02-23T10:32:09.961595+00:00"}, {"symbol": "WPP_CFD.UK", "qty": 0.0, "avg_price": 263.4, "last_price": 240.8, "unrealized_pnl": 0.0, "opened_at": "2026-02-28T10:51:05.818250+00:00"}, {"symbol": "ZS_CFD.US", "qty": 0.0, "avg_price": 159.76, "last_price": 144.45, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}], "candidates": [{"symbol": "SYNT_CFD.UK", "mean_reversion_score": 98, "selection_reason": "Extreme dist_ma50_pct -64.48 with change_1d_pct -8.91 indicating strong oversold mean reversion setup"}, {"symbol": "MCG_CFD.UK", "mean_reversion_score": 96, "selection_reason": "Extreme dist_ma50_pct +28.67 with change_1d_pct +21.87 indicating strong overbought mean reversion setup"}, {"symbol": "AML_CFD.UK", "mean_reversion_score": 89, "selection_reason": "Large dist_ma50_pct -28.74 with change_1d_pct -3.85 indicating oversold mean reversion setup"}, {"symbol": "LXS_CFD.DE", "mean_reversion_score": 92, "selection_reason": "Large dist_ma50_pct -24.88 with change_1d_pct -18.19 indicating oversold mean reversion setup"}, {"symbol": "CO_CFD.FR", "mean_reversion_score": 94, "selection_reason": "Large dist_ma50_pct -24.73 with change_1d_pct -20.18 indicating oversold mean reversion setup"}], "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": "High mean reversion score 94; extreme oversold (dist_ma50_pct -24.73, change_1d_pct -20.18); strong setup vs current holdings",
"symbol": "CO_CFD.FR",
"position_size": 3000
}
],
"hold": [
{
"reason": "Minor unrealized loss; stable price near average; no strong sell signal, avoid overtrading",
"symbol": "BIG_CFD.FR"
},
{
"reason": "Flat position; no strong sell signal, avoid overtrading",
"symbol": "BYIT_CFD.UK"
},
{
"reason": "Profitable position (+$29.78); no strong sell signal, avoid overtrading",
"symbol": "DKNG_CFD.US"
},
{
"reason": "Profitable position (+$101.85); no strong sell signal, avoid overtrading",
"symbol": "FUTR_CFD.UK"
},
{
"reason": "Strong profitable position (+$408.24); no strong sell signal, avoid overtrading",
"symbol": "OKTA_CFD.US"
},
{
"reason": "Flat position; no strong sell signal, avoid overtrading",
"symbol": "OCDO_CFD.UK"
},
{
"reason": "Top mean reversion candidate (score 98, oversold); strong hold",
"symbol": "SYNT_CFD.UK"
},
{
"reason": "Flat position; no strong sell signal, avoid overtrading",
"symbol": "TRN_CFD.UK"
},
{
"reason": "Profitable position (+$79.26); no strong sell signal, avoid overtrading",
"symbol": "UKW_CFD.UK"
}
],
"sell": [
{
"reason": "Largest unrealized loss (-$82.70); sell to reduce gross leverage >3.0 and positions >10",
"symbol": "GO_CFD.US"
},
{
"reason": "Unrealized loss (-$47.43); sell to reduce gross leverage >3.0 and positions >10",
"symbol": "HPP_CFD.US"
}
]
},
"portfolio_rationale": "Portfolio exceeded max_positions (11>10) and max_gross_leverage (~3.2>3.0). Executed max 2 sells on losers to trim risk/exposure. Added 1 buy (max cautious) on next-best oversold candidate post top-held SYNT. Post-actions: 10 positions, leverage ~2.96. Prioritizes high-conviction mean reversion signals, avoids overtrading/churn."
}Selection logs
#439 • stage1 • 2026-03-06T14:15:32.355773+00:00
{
"selected_stocks": [
{
"symbol": "SYNT_CFD.UK",
"selection_reason": "Extreme dist_ma50_pct -64.48 with change_1d_pct -8.91 indicating strong oversold mean reversion setup",
"mean_reversion_score": 98
},
{
"symbol": "MCG_CFD.UK",
"selection_reason": "Extreme dist_ma50_pct +28.67 with change_1d_pct +21.87 indicating strong overbought mean reversion setup",
"mean_reversion_score": 96
},
{
"symbol": "AML_CFD.UK",
"selection_reason": "Large dist_ma50_pct -28.74 with change_1d_pct -3.85 indicating oversold mean reversion setup",
"mean_reversion_score": 89
},
{
"symbol": "LXS_CFD.DE",
"selection_reason": "Large dist_ma50_pct -24.88 with change_1d_pct -18.19 indicating oversold mean reversion setup",
"mean_reversion_score": 92
},
{
"symbol": "CO_CFD.FR",
"selection_reason": "Large dist_ma50_pct -24.73 with change_1d_pct -20.18 indicating oversold mean reversion setup",
"mean_reversion_score": 94
}
],
"rejected_common_reasons": [
"Low absolute dist_ma50_pct",
"Small abs(change_1d_pct)",
"Missing dist_ma50_pct or dist_ma200_pct"
]
}