Arena run #743

meanrev-v1deepseekdeepseek/deepseek-chatEUsuccess
Arena
Run status
as_of: 2026-03-20T10:26:40.341409+00:00
started_at: 2026-03-20T14:36:02.150799+00:00
finished_at: 2026-03-20T14:36:59.862789+00:00
duration_ms: 57710
Inputs
{
  "as_of": "2026-03-20T10:26:40.341409+00:00",
  "dry_run": false,
  "selected": [
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "High distance from MA50 indicates potential mean reversion",
      "mean_reversion_score": 85
    },
    {
      "symbol": "SPX_CFD.UK",
      "selection_reason": "Significant distance from MA200 suggests reversion potential",
      "mean_reversion_score": 78
    },
    {
      "symbol": "ESNT_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50 indicates oversold condition",
      "mean_reversion_score": 82
    },
    {
      "symbol": "JDW_CFD.UK",
      "selection_reason": "Moderate distance from MA50 suggests potential reversion",
      "mean_reversion_score": 75
    },
    {
      "symbol": "SAFE_CFD.UK",
      "selection_reason": "Mixed signals from MA200 and MA50 indicate potential reversion",
      "mean_reversion_score": 70
    }
  ],
  "simulate_only": false,
  "strict_replay": false,
  "universe_symbols": [
    "CRST_CFD.UK",
    "SPX_CFD.UK",
    "ESNT_CFD.UK",
    "JDW_CFD.UK",
    "SAFE_CFD.UK",
    "RHIM_CFD.UK",
    "CBG_CFD.UK",
    "RSW_CFD.UK",
    "DLN_CFD.UK",
    "MCG_CFD.UK",
    "CCL_CFD.UK",
    "ABDN_CFD.UK",
    "OCDO_CFD.UK",
    "HWDN_CFD.UK",
    "LRE_CFD.UK",
    "CPG_CFD.UK",
    "BME_CFD.UK",
    "BYIT_CFD.UK",
    "CF_CFD.US"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "High distance from MA50 indicates strong mean reversion potential.",
        "symbol": "CRST_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Negative distance from MA200 and MA50 indicates oversold condition with reversion potential.",
        "symbol": "ESNT_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "ABF_CFD.UK"
      },
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "ADS_CFD.DE"
      },
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "AML_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "ATG_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "BBY_CFD.UK"
      },
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "BLND_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "EMG_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "ERA_CFD.FR"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "GRI_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "HMSO_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "IEP_CFD.BE"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "IHG_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "JDW_CFD.UK"
      },
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "OSB_CFD.UK"
      },
      {
        "reason": "Marginal unrealized gain; no clear reason to sell.",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Significant unrealized loss; potential downside risk, but avoiding overtrading.",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "SYNT_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "TRN_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "UTG_CFD.UK"
      },
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "WTB_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Significant unrealized loss and mixed signals from MA200 and MA50 indicate potential downside risk.",
        "symbol": "SAFE_CFD.UK"
      },
      {
        "reason": "Persistent unrealized loss and no clear improvement in fundamentals suggest continued downside risk.",
        "symbol": "KGF_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "The portfolio is adjusted to capitalize on mean-reversion opportunities while avoiding overtrading. Two positions with significant unrealized losses are sold to mitigate risk. Two new positions are added based on strong mean-reversion signals. The remaining positions are held due to marginal changes or significant unrealized gains."
}
Prompts & responses
#1470openrouterdeepseek/deepseek-chat2026-03-20T14:36:02.177162+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": "SPX_CFD.UK", "name": "SPIRAX-SARCO ENGINEERING PLC", "sector": "", "last_price": 7608.71, "change_1d_pct": 10.91413994169097, "distance_from_ma200_pct": 15.905097055024719, "distance_from_ma50_pct": 8.459177525660632, "volatility_20d_pct": 84.71063298478786, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ESNT_CFD.UK", "name": "ESSENTRA PLC", "sector": "", "last_price": 95.5, "change_1d_pct": -11.900369003690036, "distance_from_ma200_pct": -5.3770131535859855, "distance_from_ma50_pct": -3.2917268350774465, "volatility_20d_pct": 6240.729897045604, "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": "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": "RHIM_CFD.UK", "name": "RHI MAGNESITA NV", "sector": "", "last_price": 2550.0, "change_1d_pct": -6.764168190127973, "distance_from_ma200_pct": -2.35709026809392, "distance_from_ma50_pct": 0.9429816244979738, "volatility_20d_pct": 151.25590362229855, "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": "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": "MCG_CFD.UK", "name": "MOBICO GROUP PLC", "sector": "", "last_price": 23.88, "change_1d_pct": -7.153965785381022, "distance_from_ma200_pct": -13.776450644419935, "distance_from_ma50_pct": 0.5778593931633935, "volatility_20d_pct": 15994.26624420948, "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": 1921.5, "change_1d_pct": -6.541828793774318, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -14.683615213991775, "volatility_20d_pct": 5150.407605401003, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "ABDN_CFD.UK", "name": "Aberdeen Group Plc", "sector": "", "last_price": 206.2, "change_1d_pct": 0.4873294346978474, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -3.567353199768042, "volatility_20d_pct": 5122.525857900045, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "OCDO_CFD.UK", "name": "OCADO GROUP PLC", "sector": "", "last_price": 204.3, "change_1d_pct": -5.852534562211975, "distance_from_ma200_pct": -20.74296007004722, "distance_from_ma50_pct": -11.014745505656641, "volatility_20d_pct": 7390.803402578159, "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": "LRE_CFD.UK", "name": "LANCASHIRE HOLDINGS LTD", "sector": "", "last_price": 611.0, "change_1d_pct": -7.424242424242422, "distance_from_ma200_pct": 0.4068944205071867, "distance_from_ma50_pct": -6.396619125545266, "volatility_20d_pct": 86.32350801127552, "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": "CPG_CFD.UK", "name": "COMPASS GROUP PLC", "sector": "", "last_price": 2287.0, "change_1d_pct": -0.823937554206422, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 2.8011537977172374, "volatility_20d_pct": 2808.1897930853006, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BME_CFD.UK", "name": "B&M EUROPEAN VALUE RETAIL SA", "sector": "", "last_price": 187.88, "change_1d_pct": 1.0107526881720341, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 7.318666981973787, "volatility_20d_pct": 3503.713036055361, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "BYIT_CFD.UK", "name": "BYTES TECHNOLOGY GROUP PLC", "sector": "", "last_price": 316.4, "change_1d_pct": 1.9329896907216426, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -3.036395062333752, "volatility_20d_pct": 3610.9502328075146, "market_cap_usd": null, "avg_daily_volume_usd": null, "days_to_next_earnings": null, "earnings_confirmed": null, "news_sentiment_score": null, "news_headlines_last_3": [], "data_quality_note": "snapshot_ok_prices_technicals_only"}, {"symbol": "CF_CFD.US", "name": "CF Industries Holdings Inc", "sector": "", "last_price": 97.16, "change_1d_pct": 1.0609527771999083, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 11.562182562106349, "volatility_20d_pct": 3467.4527549275817, "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": "CRST_CFD.UK",
      "selection_reason": "High distance from MA50 indicates potential mean reversion",
      "mean_reversion_score": 85
    },
    {
      "symbol": "SPX_CFD.UK",
      "selection_reason": "Significant distance from MA200 suggests reversion potential",
      "mean_reversion_score": 78
    },
    {
      "symbol": "ESNT_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50 indicates oversold condition",
      "mean_reversion_score": 82
    },
    {
      "symbol": "JDW_CFD.UK",
      "selection_reason": "Moderate distance from MA50 suggests potential reversion",
      "mean_reversion_score": 75
    },
    {
      "symbol": "SAFE_CFD.UK",
      "selection_reason": "Mixed signals from MA200 and MA50 indicate potential reversion",
      "mean_reversion_score": 70
    }
  ],
  "rejected_common_reasons": [
    "Volatility too high for reliable mean reversion",
    "Insufficient distance from moving averages",
    "Unknown sector concentration",
    "Earnings date unknown, potential risk"
  ]
}
#1471openrouterdeepseek/deepseek-chat2026-03-20T14:36:19.921743+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": "ABF_CFD.UK", "qty": 1.6220600162206003, "avg_price": 1849.5, "last_price": 1812.0, "unrealized_pnl": -60.82725060827251, "opened_at": "2026-03-10T10:41:24.306870+00:00"}, {"symbol": "ADJ_CFD.DE", "qty": 0.0, "avg_price": 0.184, "last_price": 0.2, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T21:00:47.737392+00:00"}, {"symbol": "ADS_CFD.DE", "qty": 21.873860736419978, "avg_price": 137.15, "last_price": 132.934, "unrealized_pnl": -92.22019686474681, "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": "AMH_CFD.US", "qty": 0.0, "avg_price": 29.634999999999998, "last_price": 28.67, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "AML_CFD.UK", "qty": 75.1503006012024, "avg_price": 39.92, "last_price": 38.85, "unrealized_pnl": -80.4108216432866, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "ATG_CFD.UK", "qty": 10.135135135135135, "avg_price": 296.0, "last_price": 326.5, "unrealized_pnl": 309.1216216216216, "opened_at": "2026-02-16T21:00:47.737392+00:00"}, {"symbol": "BBY_CFD.UK", "qty": 4.129387474191328, "avg_price": 726.5, "last_price": 726.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T18:02:13.212382+00:00"}, {"symbol": "BIG_CFD.FR", "qty": 0.0, "avg_price": 0.453, "last_price": 0.296, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T17:33:48.338981+00:00"}, {"symbol": "BLND_CFD.UK", "qty": 8.237232289950576, "avg_price": 364.2, "last_price": 361.4, "unrealized_pnl": -23.064250411861707, "opened_at": "2026-03-10T10:41:24.306870+00:00"}, {"symbol": "BT_CFD.UK", "qty": 0.0, "avg_price": 204.0, "last_price": 203.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T09:33:49.074031+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 10.252904989747094, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-03-04T18:49:26.891792+00:00"}, {"symbol": "BYW6_CFD.DE", "qty": 0.0, "avg_price": 3.005, "last_price": 2.94, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "CBG_CFD.UK", "qty": 0.0, "avg_price": 458.2, "last_price": 372.74, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "CCC_CFD.UK", "qty": 0.0, "avg_price": 2978.0, "last_price": 2926.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+00:00"}, {"symbol": "CCL_CFD.UK", "qty": 0.0, "avg_price": 1945.9999999999998, "last_price": 1849.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "CO_CFD.FR", "qty": 0.0, "avg_price": 0.171, "last_price": 0.165, "unrealized_pnl": 0.0, "opened_at": "2026-03-06T10:33:43.857578+00:00"}, {"symbol": "CRDA_CFD.UK", "qty": 0.0, "avg_price": 2911.0, "last_price": 2852.0, "unrealized_pnl": 0.0, "opened_at": "2026-03-02T10:31:26.559356+00:00"}, {"symbol": "CRWD_CFD.US", "qty": 0.0, "avg_price": 422.705, "last_price": 388.21500000000003, "unrealized_pnl": 0.0, "opened_at": "2026-02-20T17:33:34.647633+00:00"}, {"symbol": "EMG_CFD.UK", "qty": 11.857707509881424, "avg_price": 252.99999999999997, "last_price": 253.0, "unrealized_pnl": 3.370163173565693e-13, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "ERA_CFD.FR", "qty": 63.29113924050633, "avg_price": 47.4, "last_price": 49.18, "unrealized_pnl": 112.65822784810135, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "EZJ_CFD.UK", "qty": 0.0, "avg_price": 474.05, "last_price": 437.5, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "FLO_CFD.US", "qty": 0.0, "avg_price": 9.875, "last_price": 9.245000000000001, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "FRVIA_CFD.FR", "qty": 0.0, "avg_price": 12.709, "last_price": 11.64, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 22.466300549176236, "avg_price": 400.6, "last_price": 414.2, "unrealized_pnl": 305.54168746879606, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "GRI_CFD.UK", "qty": 15.822784810126583, "avg_price": 189.6, "last_price": 189.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "HIK_CFD.UK", "qty": 0.0, "avg_price": 1408.0, "last_price": 1275.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-26T10:33:24.101894+00:00"}, {"symbol": "HMSO_CFD.UK", "qty": 8.600917431192661, "avg_price": 348.8, "last_price": 348.8, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T10:12:30.296045+00:00"}, {"symbol": "IEP_CFD.BE", "qty": 582.5242718446601, "avg_price": 5.15, "last_price": 5.5, "unrealized_pnl": 203.88349514563083, "opened_at": "2026-02-24T18:14:37.115518+00:00"}, {"symbol": "IHG_CFD.UK", "qty": 23.21083172147002, "avg_price": 129.25, "last_price": 134.6, "unrealized_pnl": 124.17794970986446, "opened_at": "2026-03-07T10:14:47.113218+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": "KGF_CFD.UK", "qty": 9.505703422053232, "avg_price": 315.6, "last_price": 298.6, "unrealized_pnl": -161.59695817490496, "opened_at": "2026-03-15T18:15:23.812047+00:00"}, {"symbol": "LXS_CFD.DE", "qty": 0.0, "avg_price": 20.34, "last_price": 20.025, "unrealized_pnl": 0.0, "opened_at": "2026-02-18T09:36:37.284518+00:00"}, {"symbol": "MCG_CFD.UK", "qty": 0.0, "avg_price": 25.72, "last_price": 23.88, "unrealized_pnl": 0.0, "opened_at": "2026-03-08T18:08:31.007911+00:00"}, {"symbol": "OCDO_CFD.UK", "qty": 0.0, "avg_price": 217.0, "last_price": 204.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+00:00"}, {"symbol": "OSB_CFD.UK", "qty": 10.743061772605193, "avg_price": 558.5, "last_price": 544.0, "unrealized_pnl": -155.7743957027753, "opened_at": "2026-03-12T18:01:52.554929+00:00"}, {"symbol": "PAGE_CFD.UK", "qty": 59.24560595089197, "avg_price": 151.91000000000003, "last_price": 152.7, "unrealized_pnl": 46.804028701202505, "opened_at": "2026-03-05T10:27:11.178069+00:00"}, {"symbol": "RHIM_CFD.UK", "qty": 1.1764705882352942, "avg_price": 2550.0, "last_price": 2325.0, "unrealized_pnl": -264.70588235294116, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 0.0, "avg_price": 424.3, "last_price": 416.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-21T17:32:49.140800+00:00"}, {"symbol": "ROR_CFD.UK", "qty": 0.0, "avg_price": 315.64, "last_price": 309.4, "unrealized_pnl": 0.0, "opened_at": "2026-03-16T10:12:30.296045+00:00"}, {"symbol": "SAFE_CFD.UK", "qty": 8.474576271186441, "avg_price": 708.0, "last_price": 643.5, "unrealized_pnl": -546.6101694915254, "opened_at": "2026-03-10T18:24:41.570614+00:00"}, {"symbol": "SYNT_CFD.UK", "qty": 326.0869565217392, "avg_price": 18.4, "last_price": 29.05, "unrealized_pnl": 3472.826086956523, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "TRN_CFD.UK", "qty": 81.30081300813009, "avg_price": 184.5, "last_price": 206.8, "unrealized_pnl": 1813.008130081302, "opened_at": "2026-03-03T18:03:34.247734+00:00"}, {"symbol": "UKW_CFD.UK", "qty": 97.45533297238767, "avg_price": 92.35, "last_price": 101.7, "unrealized_pnl": 911.2073632918255, "opened_at": "2026-02-20T09:33:44.817899+00:00"}, {"symbol": "UTG_CFD.UK", "qty": 11.881188118811881, "avg_price": 505.0, "last_price": 505.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-27T18:23:55.960577+00:00"}, {"symbol": "VTY_CFD.UK", "qty": 0.0, "avg_price": 427.6, "last_price": 406.1, "unrealized_pnl": -150.84190832553787, "opened_at": "2026-03-11T10:11:17.665074+00:00"}, {"symbol": "WIX_CFD.UK", "qty": 0.0, "avg_price": 224.5, "last_price": 220.5, "unrealized_pnl": 0.0, "opened_at": "2026-03-09T10:19:46.508085+00:00"}, {"symbol": "WIZZ_CFD.UK", "qty": 0.0, "avg_price": 1299.0, "last_price": 1080.0, "unrealized_pnl": 0.0, "opened_at": "2026-02-25T17:57:28.313088+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-21T09:33:26.900894+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-27T18:23:55.960577+00:00"}, {"symbol": "WTB_CFD.UK", "qty": 5.11727078891258, "avg_price": 2345.0, "last_price": 2308.0, "unrealized_pnl": -189.33901918976545, "opened_at": "2026-03-13T18:17:31.188931+00:00"}], "candidates": [{"symbol": "CRST_CFD.UK", "mean_reversion_score": 85, "selection_reason": "High distance from MA50 indicates potential mean reversion"}, {"symbol": "SPX_CFD.UK", "mean_reversion_score": 78, "selection_reason": "Significant distance from MA200 suggests reversion potential"}, {"symbol": "ESNT_CFD.UK", "mean_reversion_score": 82, "selection_reason": "Negative distance from MA200 and MA50 indicates oversold condition"}, {"symbol": "JDW_CFD.UK", "mean_reversion_score": 75, "selection_reason": "Moderate distance from MA50 suggests potential reversion"}, {"symbol": "SAFE_CFD.UK", "mean_reversion_score": 70, "selection_reason": "Mixed signals from MA200 and MA50 indicate potential reversion"}], "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 distance from MA50 indicates strong mean reversion potential.",
        "symbol": "CRST_CFD.UK",
        "position_size": 3000
      },
      {
        "reason": "Negative distance from MA200 and MA50 indicates oversold condition with reversion potential.",
        "symbol": "ESNT_CFD.UK",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "ABF_CFD.UK"
      },
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "ADS_CFD.DE"
      },
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "AML_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "ATG_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "BBY_CFD.UK"
      },
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "BLND_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "EMG_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "ERA_CFD.FR"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "GRI_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "HMSO_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "IEP_CFD.BE"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "IHG_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "JDW_CFD.UK"
      },
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "OSB_CFD.UK"
      },
      {
        "reason": "Marginal unrealized gain; no clear reason to sell.",
        "symbol": "PAGE_CFD.UK"
      },
      {
        "reason": "Significant unrealized loss; potential downside risk, but avoiding overtrading.",
        "symbol": "RHIM_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "SYNT_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "TRN_CFD.UK"
      },
      {
        "reason": "Significant unrealized gain; no clear reason to sell.",
        "symbol": "UKW_CFD.UK"
      },
      {
        "reason": "No unrealized PnL; no clear reason to sell.",
        "symbol": "UTG_CFD.UK"
      },
      {
        "reason": "Marginal unrealized loss; no clear improvement or deterioration.",
        "symbol": "WTB_CFD.UK"
      }
    ],
    "sell": [
      {
        "reason": "Significant unrealized loss and mixed signals from MA200 and MA50 indicate potential downside risk.",
        "symbol": "SAFE_CFD.UK"
      },
      {
        "reason": "Persistent unrealized loss and no clear improvement in fundamentals suggest continued downside risk.",
        "symbol": "KGF_CFD.UK"
      }
    ]
  },
  "portfolio_rationale": "The portfolio is adjusted to capitalize on mean-reversion opportunities while avoiding overtrading. Two positions with significant unrealized losses are sold to mitigate risk. Two new positions are added based on strong mean-reversion signals. The remaining positions are held due to marginal changes or significant unrealized gains."
}
Selection logs
#732stage12026-03-20T14:36:19.919364+00:00
{
  "selected_stocks": [
    {
      "symbol": "CRST_CFD.UK",
      "selection_reason": "High distance from MA50 indicates potential mean reversion",
      "mean_reversion_score": 85
    },
    {
      "symbol": "SPX_CFD.UK",
      "selection_reason": "Significant distance from MA200 suggests reversion potential",
      "mean_reversion_score": 78
    },
    {
      "symbol": "ESNT_CFD.UK",
      "selection_reason": "Negative distance from MA200 and MA50 indicates oversold condition",
      "mean_reversion_score": 82
    },
    {
      "symbol": "JDW_CFD.UK",
      "selection_reason": "Moderate distance from MA50 suggests potential reversion",
      "mean_reversion_score": 75
    },
    {
      "symbol": "SAFE_CFD.UK",
      "selection_reason": "Mixed signals from MA200 and MA50 indicate potential reversion",
      "mean_reversion_score": 70
    }
  ],
  "rejected_common_reasons": [
    "Volatility too high for reliable mean reversion",
    "Insufficient distance from moving averages",
    "Unknown sector concentration",
    "Earnings date unknown, potential risk"
  ]
}