Arena run #255

meanrev-v1minimaxminimax/minimax-m2.1EUsuccess
Arena
Run status
as_of: 2026-02-23T10:32:09.961595+00:00
started_at: 2026-02-23T15:19:38.791670+00:00
finished_at: 2026-02-23T15:23:16.458879+00:00
duration_ms: 217666
Inputs
{
  "dry_run": false,
  "selected": [
    {
      "symbol": "RCO_CFD.FR",
      "selection_reason": "Strongest mean-reversion setup: positive 1d change +2.4% but still -3.3% below MA200, +10.6% above MA50; moderate volatility 87%; clean technicals with no binary risks indicated",
      "mean_reversion_score": 85
    },
    {
      "symbol": "BRNL_CFD.NL",
      "selection_reason": "Significant 1d gain +9.5% but still -18.1% below MA200, -6.7% below MA50; volatility 70% is manageable; positive momentum on pullback",
      "mean_reversion_score": 82
    },
    {
      "symbol": "WKP_CFD.UK",
      "selection_reason": "Small 1d gain +3.7% with +1.9% above MA200 and +5.8% above MA50; low volatility 70%; stable technical position suggesting consolidation before mean-reversion move",
      "mean_reversion_score": 78
    },
    {
      "symbol": "UKW_CFD.UK",
      "selection_reason": "1d decline -2.2% with -12.5% below MA200 and -6.8% below MA50; moderate volatility 33%; oversold with room for reversion to mean",
      "mean_reversion_score": 75
    },
    {
      "symbol": "LIO_CFD.UK",
      "selection_reason": "Near MA50 (-0.4%) with -20.7% below MA200; 1d flat +0.2%; volatility 128% elevated but price compression suggests mean-reversion opportunity",
      "mean_reversion_score": 72
    }
  ],
  "universe_symbols": [
    "UKW_CFD.UK",
    "FUTR_CFD.UK",
    "BIG_CFD.FR",
    "RCO_CFD.FR",
    "HOT_CFD.DE",
    "LIO_CFD.UK",
    "BRNL_CFD.NL",
    "GLPG_CFD.NL",
    "ATG_CFD.UK",
    "EXA_CFD.FR",
    "BYIT_CFD.UK",
    "WKP_CFD.UK",
    "PZC_CFD.UK",
    "HO_CFD.FR",
    "OPM_CFD.FR",
    "FCNCA_CFD.US",
    "OCDO_CFD.UK",
    "ARCAD_CFD.NL",
    "RBT_CFD.FR",
    "BTRW_CFD.UK",
    "BESI_CFD.NL",
    "SMHN_CFD.DE",
    "HMSO_CFD.UK",
    "ESTC_CFD.US",
    "ASML_CFD.NL",
    "ZS_CFD.US",
    "AALB_CFD.NL"
  ]
}
Outputs
{
  "actions": {
    "buy": [
      {
        "reason": "Top mean-reversion candidate: strong 1d gain +2.4% with significant discount to MA200 (-3.3%) and premium to MA50 (+10.6%); clean technicals; volatility manageable at 87%",
        "symbol": "RCO_CFD.FR",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Position at cost basis with no deviation; no mean-reversion signal present",
        "symbol": "BIG_CFD.FR"
      },
      {
        "reason": "Position flat with no price movement; no mean-reversion signal",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "No active position (qty=0); holding observation only",
        "symbol": "DSY_CFD.FR"
      },
      {
        "reason": "No active position (qty=0); holding observation only",
        "symbol": "ERA_CFD.FR"
      },
      {
        "reason": "Position showing unrealized gains +516.72; price above cost basis but no clear mean-reversion signal to exit yet",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Position at cost basis with no deviation; no mean-reversion signal present",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Position at cost basis with no deviation; no mean-reversion signal present",
        "symbol": "RMV_CFD.UK"
      },
      {
        "reason": "No active position (qty=0); holding observation only",
        "symbol": "TRST_CFD.UK"
      }
    ],
    "sell": []
  },
  "portfolio_rationale": "Initiating one BUY position in RCO_CFD.FR as the highest-scoring mean-reversion setup. The stock shows positive momentum (+2.4% 1d) while trading below its 200-day MA, suggesting a potential continuation of mean-reversion toward the longer-term average. The position size is fixed at 3000 EUR per the strategy rules. No SELL actions are warranted as existing positions lack clear mean-reversion signals for exit, and the FUTR_CFD.UK position is profitable but not yet at a point requiring profit-taking. Holding all other positions maintains portfolio stability while respecting the max 2 buys per run and avoiding overtrading."
}
Prompts & responses
#497openrouterminimax/minimax-m2.12026-02-23T15:19:38.815700+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": "UKW_CFD.UK", "name": "GREENCOAT UK WIND PLC", "sector": "", "last_price": 98.15, "change_1d_pct": -2.163078149920239, "distance_from_ma200_pct": -12.46829595436757, "distance_from_ma50_pct": -6.845149398930528, "volatility_20d_pct": 32.62462101640031, "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": "FUTR_CFD.UK", "name": "FUTURE PLC", "sector": "", "last_price": 422.0, "change_1d_pct": -13.70143149284253, "distance_from_ma200_pct": -38.122509366851766, "distance_from_ma50_pct": -25.139370269544393, "volatility_20d_pct": 146.49494054552733, "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": "BIG_CFD.FR", "name": "Bigben Interactive", "sector": "", "last_price": 0.473, "change_1d_pct": -40.65244667503137, "distance_from_ma200_pct": -57.481044006670004, "distance_from_ma50_pct": -45.84258856396987, "volatility_20d_pct": 245.7660340614924, "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": "RCO_CFD.FR", "name": "Remy Cointreau SA", "sector": "", "last_price": 44.46, "change_1d_pct": 2.39520958083832, "distance_from_ma200_pct": -3.2796592729049445, "distance_from_ma50_pct": 10.645677004214793, "volatility_20d_pct": 86.69304047565859, "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": "HOT_CFD.DE", "name": "HOCHTIEF AG", "sector": "", "last_price": 398.6, "change_1d_pct": -2.447381302006857, "distance_from_ma200_pct": 58.05159262356643, "distance_from_ma50_pct": 11.57058011999239, "volatility_20d_pct": 4685.701433158062, "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": "LIO_CFD.UK", "name": "LIONTRUST ASSET MANAGEMENT", "sector": "", "last_price": 259.0, "change_1d_pct": 0.19342359767891004, "distance_from_ma200_pct": -20.670350849922237, "distance_from_ma50_pct": -0.35817197640911624, "volatility_20d_pct": 128.03912578370827, "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": "BRNL_CFD.NL", "name": "Brunel International", "sector": "", "last_price": 7.29, "change_1d_pct": 9.459459459459453, "distance_from_ma200_pct": -18.088599146503427, "distance_from_ma50_pct": -6.739092055808138, "volatility_20d_pct": 70.09638475078242, "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": "GLPG_CFD.NL", "name": "", "sector": "", "last_price": 27.9, "change_1d_pct": -1.2738853503184822, "distance_from_ma200_pct": 2.349620801991814, "distance_from_ma50_pct": -1.303221972237556, "volatility_20d_pct": 75.74925360349539, "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": 308.0, "change_1d_pct": 0.8183306055646433, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 0.788638371674466, "volatility_20d_pct": 4266.048570157822, "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": "EXA_CFD.FR", "name": "Exail Technologies SA", "sector": "", "last_price": 119.4, "change_1d_pct": -3.0844155844155785, "distance_from_ma200_pct": 27.051593268478857, "distance_from_ma50_pct": 16.46458013640988, "volatility_20d_pct": 4642.965535142968, "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": 296.8, "change_1d_pct": 0.33806626098715764, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -11.728666769768846, "volatility_20d_pct": 3915.770802621436, "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": 88.8, "change_1d_pct": -1.442841287458374, "distance_from_ma200_pct": 17.468164209381708, "distance_from_ma50_pct": 17.734408145948244, "volatility_20d_pct": 83.4578314576364, "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": "HO_CFD.FR", "name": "", "sector": "", "last_price": 254.4, "change_1d_pct": -3.490136570561464, "distance_from_ma200_pct": 3.535507642753899, "distance_from_ma50_pct": 2.0365435217142958, "volatility_20d_pct": 55.662032611698024, "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": "OPM_CFD.FR", "name": "", "sector": "", "last_price": 16.501, "change_1d_pct": -2.7063679245282968, "distance_from_ma200_pct": 19.71720881369976, "distance_from_ma50_pct": 1.4485981882993215, "volatility_20d_pct": 53.97744690192678, "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": "FCNCA_CFD.US", "name": "First Citizens BancShares Inc", "sector": "", "last_price": 2062.21, "change_1d_pct": 2.9771445977459177, "distance_from_ma200_pct": 5.907751416577356, "distance_from_ma50_pct": -2.1858617088771015, "volatility_20d_pct": 72.5049794337677, "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": "ARCAD_CFD.NL", "name": "Arcadis", "sector": "", "last_price": 29.14, "change_1d_pct": -16.26436781609194, "distance_from_ma200_pct": -33.61450347680939, "distance_from_ma50_pct": -29.785264351010067, "volatility_20d_pct": 177.66442273009648, "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": "RBT_CFD.FR", "name": "", "sector": "", "last_price": 864.0, "change_1d_pct": 0.7971608799685503, "distance_from_ma200_pct": 2.4201022590039756, "distance_from_ma50_pct": -1.1206101957010772, "volatility_20d_pct": 40.43977142028838, "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": "BTRW_CFD.UK", "name": "Barratt Redrow Plc", "sector": "", "last_price": 388.9, "change_1d_pct": -1.0432569974554773, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 2.643553171947066, "volatility_20d_pct": 2256.25743018361, "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": 173.0, "change_1d_pct": -7.486631016042777, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 10.073997722168148, "volatility_20d_pct": 4491.334001117135, "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": "SMHN_CFD.DE", "name": "SUSS MicroTec SE", "sector": "", "last_price": 49.396, "change_1d_pct": -0.11122120887342435, "distance_from_ma200_pct": 32.297384143035245, "distance_from_ma50_pct": 9.351022182787737, "volatility_20d_pct": 88.78036776367544, "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": "ESTC_CFD.US", "name": "Elastic NV", "sector": "", "last_price": 58.12, "change_1d_pct": -6.348694811472777, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -17.911459628031, "volatility_20d_pct": 5992.432493755186, "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": "ASML_CFD.NL", "name": "ASML HOLDING NV", "sector": "", "last_price": 1238.2, "change_1d_pct": -0.530205655526983, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 14.613821945219009, "volatility_20d_pct": 3327.489164148393, "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": "ZS_CFD.US", "name": "Zscaler Inc", "sector": "", "last_price": 159.75, "change_1d_pct": -5.467779158530095, "distance_from_ma200_pct": null, "distance_from_ma50_pct": -23.608710185074933, "volatility_20d_pct": 5347.360864637588, "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": "AALB_CFD.NL", "name": "Aalberts", "sector": "", "last_price": 34.92, "change_1d_pct": 1.041666666666674, "distance_from_ma200_pct": null, "distance_from_ma50_pct": 15.641392465426819, "volatility_20d_pct": 3530.057506339397, "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": "RCO_CFD.FR",
      "selection_reason": "Strongest mean-reversion setup: positive 1d change +2.4% but still -3.3% below MA200, +10.6% above MA50; moderate volatility 87%; clean technicals with no binary risks indicated",
      "mean_reversion_score": 85
    },
    {
      "symbol": "BRNL_CFD.NL",
      "selection_reason": "Significant 1d gain +9.5% but still -18.1% below MA200, -6.7% below MA50; volatility 70% is manageable; positive momentum on pullback",
      "mean_reversion_score": 82
    },
    {
      "symbol": "WKP_CFD.UK",
      "selection_reason": "Small 1d gain +3.7% with +1.9% above MA200 and +5.8% above MA50; low volatility 70%; stable technical position suggesting consolidation before mean-reversion move",
      "mean_reversion_score": 78
    },
    {
      "symbol": "UKW_CFD.UK",
      "selection_reason": "1d decline -2.2% with -12.5% below MA200 and -6.8% below MA50; moderate volatility 33%; oversold with room for reversion to mean",
      "mean_reversion_score": 75
    },
    {
      "symbol": "LIO_CFD.UK",
      "selection_reason": "Near MA50 (-0.4%) with -20.7% below MA200; 1d flat +0.2%; volatility 128% elevated but price compression suggests mean-reversion opportunity",
      "mean_reversion_score": 72
    }
  ],
  "rejected_common_reasons": [
    "Extreme volatility exceeding reasonable risk parameters (HOT, ATG, EXA, BYIT, HMSO, BESI, ASML, AALB, ESTC, ZS all >3000% 20d volatility)",
    "Extreme single-day drops suggesting binary/event risk (BIG -40.7%, FUTR -13.7%, OCDO -21.3%, ARCAD -16.3%)",
    "Missing critical technical data (MA200 distance unknown for ATG, BYIT, BTRW, BESI, ESTC, ZS, ASML, AALB)",
    "US-listed securities outside EU region mandate (FCNCA, ESTC, ZS)",
    "Excessive sector concentration avoided (no sector data available, diversified across UK/FR/NL)"
  ]
}
#498openrouterminimax/minimax-m2.12026-02-23T15:21:06.693872+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": "BIG_CFD.FR", "qty": 6622.516556291391, "avg_price": 0.453, "last_price": 0.453, "unrealized_pnl": 0.0, "opened_at": "2026-02-22T09:32:59.506254+00:00"}, {"symbol": "BYIT_CFD.UK", "qty": 20.505809979494188, "avg_price": 292.6, "last_price": 292.6, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "DSY_CFD.FR", "qty": 0.0, "avg_price": 17.881, "last_price": 17.133, "unrealized_pnl": 0.0, "opened_at": "2026-02-16T09:30:55.514112+00:00"}, {"symbol": "ERA_CFD.FR", "qty": 0.0, "avg_price": 47.4, "last_price": 48.88, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T17:33:27.020111+00:00"}, {"symbol": "FUTR_CFD.UK", "qty": 22.466300549176236, "avg_price": 400.6, "last_price": 423.6, "unrealized_pnl": 516.7249126310534, "opened_at": "2026-02-19T00:47:27.070066+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-22T09:32:59.506254+00:00"}, {"symbol": "RMV_CFD.UK", "qty": 7.070469007777516, "avg_price": 424.3, "last_price": 424.3, "unrealized_pnl": 0.0, "opened_at": "2026-02-19T00:47:27.070066+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-19T09:33:49.074031+00:00"}], "candidates": [{"symbol": "RCO_CFD.FR", "mean_reversion_score": 85, "selection_reason": "Strongest mean-reversion setup: positive 1d change +2.4% but still -3.3% below MA200, +10.6% above MA50; moderate volatility 87%; clean technicals with no binary risks indicated"}, {"symbol": "BRNL_CFD.NL", "mean_reversion_score": 82, "selection_reason": "Significant 1d gain +9.5% but still -18.1% below MA200, -6.7% below MA50; volatility 70% is manageable; positive momentum on pullback"}, {"symbol": "WKP_CFD.UK", "mean_reversion_score": 78, "selection_reason": "Small 1d gain +3.7% with +1.9% above MA200 and +5.8% above MA50; low volatility 70%; stable technical position suggesting consolidation before mean-reversion move"}, {"symbol": "UKW_CFD.UK", "mean_reversion_score": 75, "selection_reason": "1d decline -2.2% with -12.5% below MA200 and -6.8% below MA50; moderate volatility 33%; oversold with room for reversion to mean"}, {"symbol": "LIO_CFD.UK", "mean_reversion_score": 72, "selection_reason": "Near MA50 (-0.4%) with -20.7% below MA200; 1d flat +0.2%; volatility 128% elevated but price compression suggests mean-reversion opportunity"}], "output_schema": {"actions": {"sell": [{"symbol": "string", "reason": "string"}], "hold": [{"symbol": "string", "reason": "string"}], "buy": [{"symbol": "string", "position_size": "number (currency amount)", "reason": "string"}]}, "portfolio_rationale": "string"}}
Output JSON
{
  "actions": {
    "buy": [
      {
        "reason": "Top mean-reversion candidate: strong 1d gain +2.4% with significant discount to MA200 (-3.3%) and premium to MA50 (+10.6%); clean technicals; volatility manageable at 87%",
        "symbol": "RCO_CFD.FR",
        "position_size": 3000
      }
    ],
    "hold": [
      {
        "reason": "Position at cost basis with no deviation; no mean-reversion signal present",
        "symbol": "BIG_CFD.FR"
      },
      {
        "reason": "Position flat with no price movement; no mean-reversion signal",
        "symbol": "BYIT_CFD.UK"
      },
      {
        "reason": "No active position (qty=0); holding observation only",
        "symbol": "DSY_CFD.FR"
      },
      {
        "reason": "No active position (qty=0); holding observation only",
        "symbol": "ERA_CFD.FR"
      },
      {
        "reason": "Position showing unrealized gains +516.72; price above cost basis but no clear mean-reversion signal to exit yet",
        "symbol": "FUTR_CFD.UK"
      },
      {
        "reason": "Position at cost basis with no deviation; no mean-reversion signal present",
        "symbol": "OCDO_CFD.UK"
      },
      {
        "reason": "Position at cost basis with no deviation; no mean-reversion signal present",
        "symbol": "RMV_CFD.UK"
      },
      {
        "reason": "No active position (qty=0); holding observation only",
        "symbol": "TRST_CFD.UK"
      }
    ],
    "sell": []
  },
  "portfolio_rationale": "Initiating one BUY position in RCO_CFD.FR as the highest-scoring mean-reversion setup. The stock shows positive momentum (+2.4% 1d) while trading below its 200-day MA, suggesting a potential continuation of mean-reversion toward the longer-term average. The position size is fixed at 3000 EUR per the strategy rules. No SELL actions are warranted as existing positions lack clear mean-reversion signals for exit, and the FUTR_CFD.UK position is profitable but not yet at a point requiring profit-taking. Holding all other positions maintains portfolio stability while respecting the max 2 buys per run and avoiding overtrading."
}
Selection logs
#247stage12026-02-23T15:21:06.691970+00:00
{
  "selected_stocks": [
    {
      "symbol": "RCO_CFD.FR",
      "selection_reason": "Strongest mean-reversion setup: positive 1d change +2.4% but still -3.3% below MA200, +10.6% above MA50; moderate volatility 87%; clean technicals with no binary risks indicated",
      "mean_reversion_score": 85
    },
    {
      "symbol": "BRNL_CFD.NL",
      "selection_reason": "Significant 1d gain +9.5% but still -18.1% below MA200, -6.7% below MA50; volatility 70% is manageable; positive momentum on pullback",
      "mean_reversion_score": 82
    },
    {
      "symbol": "WKP_CFD.UK",
      "selection_reason": "Small 1d gain +3.7% with +1.9% above MA200 and +5.8% above MA50; low volatility 70%; stable technical position suggesting consolidation before mean-reversion move",
      "mean_reversion_score": 78
    },
    {
      "symbol": "UKW_CFD.UK",
      "selection_reason": "1d decline -2.2% with -12.5% below MA200 and -6.8% below MA50; moderate volatility 33%; oversold with room for reversion to mean",
      "mean_reversion_score": 75
    },
    {
      "symbol": "LIO_CFD.UK",
      "selection_reason": "Near MA50 (-0.4%) with -20.7% below MA200; 1d flat +0.2%; volatility 128% elevated but price compression suggests mean-reversion opportunity",
      "mean_reversion_score": 72
    }
  ],
  "rejected_common_reasons": [
    "Extreme volatility exceeding reasonable risk parameters (HOT, ATG, EXA, BYIT, HMSO, BESI, ASML, AALB, ESTC, ZS all >3000% 20d volatility)",
    "Extreme single-day drops suggesting binary/event risk (BIG -40.7%, FUTR -13.7%, OCDO -21.3%, ARCAD -16.3%)",
    "Missing critical technical data (MA200 distance unknown for ATG, BYIT, BTRW, BESI, ESTC, ZS, ASML, AALB)",
    "US-listed securities outside EU region mandate (FCNCA, ESTC, ZS)",
    "Excessive sector concentration avoided (no sector data available, diversified across UK/FR/NL)"
  ]
}