Arena run #414

meanrev-v1mistralaimistralai/mistral-large-2512USsuccess
Arena
Run status
as_of: 2026-03-04T18:49:26.891792+00:00
started_at: 2026-03-04T19:42:23.177465+00:00
finished_at: 2026-03-04T19:42:50.384264+00:00
duration_ms: 27201
Inputs
{
  "dry_run": false,
  "selected": [
    {
      "symbol": "SYNT_CFD.UK",
      "selection_reason": "Extreme negative 1-day move (-32.67%) with strong oversold condition vs MA50 (-61%) and MA200 (-73.6%). High volatility (362%) suggests potential snapback.",
      "mean_reversion_score": 90
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "Large 1-day drop (-21.31%) with oversold condition vs MA50 (-3.18%) and MA200 (-14.07%). High volatility (241%) supports reversion potential.",
      "mean_reversion_score": 85
    },
    {
      "symbol": "BYIT_CFD.UK",
      "selection_reason": "Significant 1-day decline (-12.67%) with oversold condition vs MA50 (-14.35%) and MA200 (-28.03%). Moderate volatility (87.8%).",
      "mean_reversion_score": 80
    },
    {
      "symbol": "ATG_CFD.UK",
      "selection_reason": "Negative 1-day move (4.27% gain but oversold vs MA50 (-1.17%) and MA200 (-30.34%)). High volatility (160%) suggests mean-reversion potential.",
      "mean_reversion_score": 75
    },
    {
      "symbol": "PZC_CFD.UK",
      "selection_reason": "Large 1-day drop (-10.3%) with neutral MA50 (8.14%) and MA200 (8.41%) distance. Moderate volatility (91%).",
      "mean_reversion_score": 70
    }
  ],
  "universe_symbols": [
    "UTG_CFD.UK",
    "SYNT_CFD.UK",
    "CCL_CFD.UK",
    "CBG_CFD.UK",
    "KGF_CFD.UK",
    "RHIM_CFD.UK",
    "BBY_CFD.UK",
    "TCAP_CFD.UK",
    "HLMA_CFD.UK",
    "SHC_CFD.UK",
    "GLW_CFD.US",
    "DPLM_CFD.UK",
    "ATG_CFD.UK",
    "CCC_CFD.UK",
    "BYIT_CFD.UK",
    "BRNK_CFD.DE",
    "ERA_CFD.FR",
    "WKP_CFD.UK",
    "PZC_CFD.UK",
    "MCG_CFD.UK",
    "OCDO_CFD.UK",
    "EXM_CFD.BE",
    "CRDA_CFD.UK",
    "CO_CFD.FR",
    "HPP_CFD.US",
    "CAT_CFD.US"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "Extreme negative 1-day move with strong oversold condition vs MA50 and MA200. High volatility suggests strong reversion potential.",
        "symbol": "SYNT_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Oversold vs MA50 and MA200 with high volatility, indicating mean-reversion potential despite recent gain.",
        "symbol": "ATG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Positive PnL and near-term stability. No strong sell signal.",
        "symbol": "ADS_CFD.DE"
      },
      {
        "reason": "Strong positive PnL and uptrend. No reversion signal to justify selling.",
        "symbol": "ATO_CFD.FR"
      },
      {
        "reason": "No material price movement. Holding until clearer signal.",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "DOM_CFD.UK"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "EXM_CFD.BE"
      },
      {
        "reason": "Strong positive PnL and uptrend. No reversion signal to justify selling.",
        "symbol": "EXPD_CFD.US"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Strong positive PnL and uptrend. No reversion signal to justify selling.",
        "symbol": "LIO_CFD.UK"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "NA9_CFD.DE"
      },
      {
        "reason": "Candidate for buy, but already held. Prefer to hold and monitor reversion potential.",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "OKTA_CFD.US"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "No material price movement. Holding until clearer signal.",
        "symbol": "WKP_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Marginal negative PnL and slight underperformance vs MA50. No strong reversion signal to justify holding.",
        "symbol": "EZJ_CFD.UK"
      },
      {
        "reason": "Holding period extended with no material price movement. Prefer to free capital for stronger mean-reversion candidates.",
        "symbol": "BYIT_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Portfolio adjustments focus on mean-reversion opportunities with the highest scores. Sold EZJ_CFD.UK and BYIT_CFD.UK to free capital for stronger candidates SYNT_CFD.UK and ATG_CFD.UK. Existing positions with positive PnL or stability are held to avoid overtrading. The strategy maintains max_gross_leverage below 3.0 and adheres to position sizing rules."
}
Prompts & responses
#813openroutermistralai/mistral-large-25122026-03-04T19:42:23.243424+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": "UTG_CFD.UK", "name": "UNITE GROUP PLC/THE", "sector": "", "last_price": 567.5, "change_1d_pct": 3.4639927073837784, "distance_from_ma200_pct": -23.929923575376698, "distance_from_ma50_pct": -3.6875042216270137, "volatility_20d_pct": 73.84223442053181, "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": 20.2, "change_1d_pct": -32.666666666666664, "distance_from_ma200_pct": -73.62254515017194, "distance_from_ma50_pct": -61.002505878582646, "volatility_20d_pct": 362.0742865046256, "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": 2373.0, "change_1d_pct": 7.912687585266021, "distance_from_ma200_pct": 26.41215845244669, "distance_from_ma50_pct": 14.616441127141865, "volatility_20d_pct": 141.1300212149729, "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": 497.8, "change_1d_pct": -5.89792060491493, "distance_from_ma200_pct": 15.793508864321094, "distance_from_ma50_pct": 3.592137485786795, "volatility_20d_pct": 116.76618625853061, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "KGF_CFD.UK", "name": "KINGFISHER PLC", "sector": "", "last_price": 367.3, "change_1d_pct": 9.282951502529002, "distance_from_ma200_pct": 25.836325072262547, "distance_from_ma50_pct": 13.171108060075287, "volatility_20d_pct": 79.7523939314479, "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": "TCAP_CFD.UK", "name": "TP ICAP GROUP PLC", "sector": "", "last_price": 257.0, "change_1d_pct": 6.418219461697716, "distance_from_ma200_pct": -3.992600332402274, "distance_from_ma50_pct": 0.16861066526767665, "volatility_20d_pct": 70.21181677464367, "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": 4104.0, "change_1d_pct": 15.345699831365934, "distance_from_ma200_pct": 23.591861367515033, "distance_from_ma50_pct": 12.09684468140897, "volatility_20d_pct": 82.81135582460098, "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": 147.2, "change_1d_pct": 2.364394993045882, "distance_from_ma200_pct": 5.210906053879838, "distance_from_ma50_pct": 3.8182841489510233, "volatility_20d_pct": 60.09537427211038, "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": "GLW_CFD.US", "name": "", "sector": "", "last_price": 149.54, "change_1d_pct": -0.4394141145139807, "distance_from_ma200_pct": 86.4582716388041, "distance_from_ma50_pct": 34.77195834812874, "volatility_20d_pct": 131.85067857683768, "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": "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": "CCC_CFD.UK", "name": "COMPUTACENTER PLC", "sector": "", "last_price": 3060.0, "change_1d_pct": -6.877662811929397, "distance_from_ma200_pct": 20.590448668980944, "distance_from_ma50_pct": 5.284743621327226, "volatility_20d_pct": 97.14510937756963, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BYIT_CFD.UK", "name": "BYTES TECHNOLOGY GROUP PLC", "sector": "", "last_price": 300.4, "change_1d_pct": -12.674418604651173, "distance_from_ma200_pct": -28.03446775272175, "distance_from_ma50_pct": -14.34777426817815, "volatility_20d_pct": 87.82535981934274, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BRNK_CFD.DE", "name": "Branicks Group AG", "sector": "", "last_price": 1.806, "change_1d_pct": 3.7931034482758585, "distance_from_ma200_pct": -6.799603666088682, "distance_from_ma50_pct": -3.423492796868477, "volatility_20d_pct": 113.45973660226878, "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": "ERA_CFD.FR", "name": "Eramet", "sector": "", "last_price": 57.5, "change_1d_pct": -2.9535864978902926, "distance_from_ma200_pct": 3.342324415100406, "distance_from_ma50_pct": -13.203171299504014, "volatility_20d_pct": 172.8667199973469, "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": "PZC_CFD.UK", "name": "PZ CUSSONS PLC", "sector": "", "last_price": 81.9, "change_1d_pct": -10.295728368017521, "distance_from_ma200_pct": 8.408114857007853, "distance_from_ma50_pct": 8.138797929650377, "volatility_20d_pct": 91.01714564624595, "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": 31.26, "change_1d_pct": 23.851030110935035, "distance_from_ma200_pct": 12.691085471826336, "distance_from_ma50_pct": 32.023515896881435, "volatility_20d_pct": 210.87769115491298, "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": 221.9, "change_1d_pct": -21.312056737588648, "distance_from_ma200_pct": -14.06664037160078, "distance_from_ma50_pct": -3.1767959417158487, "volatility_20d_pct": 240.9598068877464, "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": "EXM_CFD.BE", "name": "EXMAR NV", "sector": "", "last_price": 10.9, "change_1d_pct": 6.862745098039236, "distance_from_ma200_pct": -1.46041985997436, "distance_from_ma50_pct": 7.238711403902309, "volatility_20d_pct": 98.93043535495613, "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": 2985.0, "change_1d_pct": -3.522947640594698, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 4.683214914464862, "volatility_20d_pct": 5384.213547557704, "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.2222, "change_1d_pct": -0.7149240393208189, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -6.383767568842891, "volatility_20d_pct": 4760.058004735714, "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": "HPP_CFD.US", "name": "Hudson Pacific Properties Inc", "sector": "", "last_price": 6.37, "change_1d_pct": -2.0000000000000018, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -32.976999642263415, "volatility_20d_pct": 7053.772722351873, "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": "CAT_CFD.US", "name": "Caterpillar Inc", "sector": "", "last_price": 742.83, "change_1d_pct": -1.3414261617945789, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 12.288069394651636, "volatility_20d_pct": 4090.838445525382, "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 negative 1-day move (-32.67%) with strong oversold condition vs MA50 (-61%) and MA200 (-73.6%). High volatility (362%) suggests potential snapback.",
      "mean_reversion_score": 90
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "Large 1-day drop (-21.31%) with oversold condition vs MA50 (-3.18%) and MA200 (-14.07%). High volatility (241%) supports reversion potential.",
      "mean_reversion_score": 85
    },
    {
      "symbol": "BYIT_CFD.UK",
      "selection_reason": "Significant 1-day decline (-12.67%) with oversold condition vs MA50 (-14.35%) and MA200 (-28.03%). Moderate volatility (87.8%).",
      "mean_reversion_score": 80
    },
    {
      "symbol": "ATG_CFD.UK",
      "selection_reason": "Negative 1-day move (4.27% gain but oversold vs MA50 (-1.17%) and MA200 (-30.34%)). High volatility (160%) suggests mean-reversion potential.",
      "mean_reversion_score": 75
    },
    {
      "symbol": "PZC_CFD.UK",
      "selection_reason": "Large 1-day drop (-10.3%) with neutral MA50 (8.14%) and MA200 (8.41%) distance. Moderate volatility (91%).",
      "mean_reversion_score": 70
    }
  ],
  "rejected_common_reasons": [
    "Missing earnings date (unknown risk)",
    "Missing sector (sector concentration risk)",
    "Insufficient oversold condition (MA distances neutral or positive)",
    "Extreme volatility (unreliable mean-reversion signal)",
    "No confirmed price/technical data (null MA values)"
  ]
}
#814openroutermistralai/mistral-large-25122026-03-04T19:42:31.296371+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": "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": 21.873860736419978, "avg_price": 137.15, "last_price": 141.0, "unrealized_pnl": 84.21436383521679, "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": "ATO_CFD.FR", "qty": 85.45547769612031, "avg_price": 35.106, "last_price": 39.0, "unrealized_pnl": 332.76363014869236, "opened_at": "2026-02-25T10:57:06.928276+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": "BYIT_CFD.UK", "qty": 10.252904989747094, "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": 6.547359231776517, "avg_price": 458.2, "last_price": 458.2, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T10:26:53.527562+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": "DOM_CFD.UK", "qty": 15.052684395383842, "avg_price": 199.3, "last_price": 204.15, "unrealized_pnl": 73.00551931761154, "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": "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": "EXM_CFD.BE", "qty": 300.0, "avg_price": 10.0, "last_price": 10.66, "unrealized_pnl": 198.00000000000006, "opened_at": "2026-02-21T09:33:26.900894+00:00"}, {"symbol": "EXPD_CFD.US", "qty": 22.01269398686576, "avg_price": 136.285, "last_price": 146.5, "unrealized_pnl": 224.8596690758338, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 6.855575868372943, "avg_price": 437.6, "last_price": 433.9, "unrealized_pnl": -25.365630712980202, "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": 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": "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": 0.0, "avg_price": 1409.0, "last_price": 1408.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+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": 0.0, "avg_price": 1976.9999999999998, "last_price": 1964.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-03T10:20:03.276878+00:00"}, {"symbol": "LIO_CFD.UK", "qty": 12.0, "avg_price": 250.0, "last_price": 270.0, "unrealized_pnl": 240.0, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "NA9_CFD.DE", "qty": 61.756350611387866, "avg_price": 48.578, "last_price": 51.65, "unrealized_pnl": 189.71550907818326, "opened_at": "2026-02-25T10:57:06.928276+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-16T17:30:52.485845+00:00"}, {"symbol": "OKTA_CFD.US", "qty": 42.747221430607006, "avg_price": 70.18, "last_price": 73.63, "unrealized_pnl": 147.47791393559368, "opened_at": "2026-02-23T18:14:12.978497+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": "TRN_CFD.UK", "qty": 0.0, "avg_price": 196.2, "last_price": 196.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-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": 94.79, "unrealized_pnl": 79.26367081754236, "opened_at": "2026-02-20T09:33:44.817899+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": 7.2727272727272725, "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": "SYNT_CFD.UK", "mean_reversion_score": 90, "selection_reason": "Extreme negative 1-day move (-32.67%) with strong oversold condition vs MA50 (-61%) and MA200 (-73.6%). High volatility (362%) suggests potential snapback."}, {"symbol": "OCDO_CFD.UK", "mean_reversion_score": 85, "selection_reason": "Large 1-day drop (-21.31%) with oversold condition vs MA50 (-3.18%) and MA200 (-14.07%). High volatility (241%) supports reversion potential."}, {"symbol": "BYIT_CFD.UK", "mean_reversion_score": 80, "selection_reason": "Significant 1-day decline (-12.67%) with oversold condition vs MA50 (-14.35%) and MA200 (-28.03%). Moderate volatility (87.8%)."}, {"symbol": "ATG_CFD.UK", "mean_reversion_score": 75, "selection_reason": "Negative 1-day move (4.27% gain but oversold vs MA50 (-1.17%) and MA200 (-30.34%)). High volatility (160%) suggests mean-reversion potential."}, {"symbol": "PZC_CFD.UK", "mean_reversion_score": 70, "selection_reason": "Large 1-day drop (-10.3%) with neutral MA50 (8.14%) and MA200 (8.41%) distance. Moderate volatility (91%)."}], "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": "Extreme negative 1-day move with strong oversold condition vs MA50 and MA200. High volatility suggests strong reversion potential.",
        "symbol": "SYNT_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Oversold vs MA50 and MA200 with high volatility, indicating mean-reversion potential despite recent gain.",
        "symbol": "ATG_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Positive PnL and near-term stability. No strong sell signal.",
        "symbol": "ADS_CFD.DE"
      },
      {
        "reason": "Strong positive PnL and uptrend. No reversion signal to justify selling.",
        "symbol": "ATO_CFD.FR"
      },
      {
        "reason": "No material price movement. Holding until clearer signal.",
        "symbol": "CBG_CFD.UK"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "DOM_CFD.UK"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "EXM_CFD.BE"
      },
      {
        "reason": "Strong positive PnL and uptrend. No reversion signal to justify selling.",
        "symbol": "EXPD_CFD.US"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Strong positive PnL and uptrend. No reversion signal to justify selling.",
        "symbol": "LIO_CFD.UK"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "NA9_CFD.DE"
      },
      {
        "reason": "Candidate for buy, but already held. Prefer to hold and monitor reversion potential.",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "OKTA_CFD.US"
      },
      {
        "reason": "Positive PnL and stable. No reversion signal to justify selling.",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "No material price movement. Holding until clearer signal.",
        "symbol": "WKP_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Marginal negative PnL and slight underperformance vs MA50. No strong reversion signal to justify holding.",
        "symbol": "EZJ_CFD.UK"
      },
      {
        "reason": "Holding period extended with no material price movement. Prefer to free capital for stronger mean-reversion candidates.",
        "symbol": "BYIT_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "Portfolio adjustments focus on mean-reversion opportunities with the highest scores. Sold EZJ_CFD.UK and BYIT_CFD.UK to free capital for stronger candidates SYNT_CFD.UK and ATG_CFD.UK. Existing positions with positive PnL or stability are held to avoid overtrading. The strategy maintains max_gross_leverage below 3.0 and adheres to position sizing rules."
}
Selection logs
#404stage12026-03-04T19:42:31.287273+00:00
{
  "selected_stocks": [
    {
      "symbol": "SYNT_CFD.UK",
      "selection_reason": "Extreme negative 1-day move (-32.67%) with strong oversold condition vs MA50 (-61%) and MA200 (-73.6%). High volatility (362%) suggests potential snapback.",
      "mean_reversion_score": 90
    },
    {
      "symbol": "OCDO_CFD.UK",
      "selection_reason": "Large 1-day drop (-21.31%) with oversold condition vs MA50 (-3.18%) and MA200 (-14.07%). High volatility (241%) supports reversion potential.",
      "mean_reversion_score": 85
    },
    {
      "symbol": "BYIT_CFD.UK",
      "selection_reason": "Significant 1-day decline (-12.67%) with oversold condition vs MA50 (-14.35%) and MA200 (-28.03%). Moderate volatility (87.8%).",
      "mean_reversion_score": 80
    },
    {
      "symbol": "ATG_CFD.UK",
      "selection_reason": "Negative 1-day move (4.27% gain but oversold vs MA50 (-1.17%) and MA200 (-30.34%)). High volatility (160%) suggests mean-reversion potential.",
      "mean_reversion_score": 75
    },
    {
      "symbol": "PZC_CFD.UK",
      "selection_reason": "Large 1-day drop (-10.3%) with neutral MA50 (8.14%) and MA200 (8.41%) distance. Moderate volatility (91%).",
      "mean_reversion_score": 70
    }
  ],
  "rejected_common_reasons": [
    "Missing earnings date (unknown risk)",
    "Missing sector (sector concentration risk)",
    "Insufficient oversold condition (MA distances neutral or positive)",
    "Extreme volatility (unreliable mean-reversion signal)",
    "No confirmed price/technical data (null MA values)"
  ]
}