Óscar Romero Quincoces

Projects / Research

Stock contest

Plays for the podium, not for return

In progress2026Personal project · El Concurso de Bolsa 2026
Data cleaning: from raw sessions to a clean panel where only past data decides eligibility
Figure 1. Data cleaning: from raw sessions to a clean panel where only past data decides eligibility

Summary

For El Concurso de Bolsa 2026. A simulator replays 452 historical windows of 23 sessions against thousands of synthetic rivals under the contest's exact scoring, so the strategy aims for the podium rather than for the highest return. Every day it sends the orders by Telegram and I place them by hand, because the rules don't allow bots. I'll publish the results after 12 November.

The problem

El Concurso de Bolsa 2026 gives each player 50,000 virtual euros on the Spanish Mercado Continuo for 23 sessions, from 13 October to 12 November. The ranking doesn't reward return alone: it mixes return relative to the leader, volatility measured against the rest of the field and a training quiz. So the best return doesn't necessarily win, and I set the goal as the probability of finishing in the top three. The rules disqualify bots, so the system never touches the account.

What I built

  • Data: unadjusted prices for the contest's stocks, a calendar of dividends and earnings, takeover bids checked by hand, and eligibility rules that only use what was known on each day.
  • Simulator: the contest's exact scoring, commissions and weekly trading requirement.
  • Laboratory: it replays 452 historical windows of 23 sessions, from 2016 to 2026, against thousands of synthetic rivals, and compares a menu of candidate strategies by their chance of reaching the podium, with bootstrap confidence intervals and stress tests such as rivals who play the same way or days I can't trade.
  • Live: three times each trading day, GitHub Actions runs the recommender, which sends me the exact orders by Telegram. I place them by hand on the contest website and tap a button to log them.

Results

The contest is still running. I'll publish the strategy I chose, the numbers behind it and the final result after it ends on 12 November.

Figures

Clustered correlations of liquid Spanish stocks, by macro-sector
Figure 2. Clustered correlations of liquid Spanish stocks, by macro-sector
How many points separate rivals on return and on volatility, across 108 simulated fields
Figure 3. How many points separate rivals on return and on volatility, across 108 simulated fields

Built with

PythonpandasNumPy · SciPyyfinanceParquetJupyterGitHub ActionsTelegram Bot API