Portfolio
What I own, and why
My own positions, with real money and in the open. Each one carries the reason I opened it, written before knowing how it would go, and the risk I think it has.
Nothing published yet
There are no positions on this page yet. It goes up when there is a position with a thesis worth reading, not before.
- Each position with its shares, the price paid and the date.
- The thesis: one or two sentences on why I bought it.
- The main risk of that position.
- What the positions are worth today, with delayed prices.
- A chart built from one snapshot per trading night.
What a position looks like
This is the documented example inside the file — not a real position. It is checked by the same schema as the real ones, so it can be copied as it is.
{
"ticker": "NAFTRAC",
"nombre": "NAFTRAC (ETF del IPC)",
"mercado": "BMV",
"historyPair": "NAFTRAC",
"entrada": {
"fecha": "2026-09-01",
"precio": 60
},
"cantidad": 100,
"peso": null,
"tesis": {
"es": "Ejemplo: aquí va la razón por la que compré, en una o dos frases y con mis palabras.",
"en": "Example: this is where the reason I bought goes, in one or two sentences and in my own words."
},
"riesgo": {
"es": "Ejemplo: aquí va lo que más puede salir mal con esta posición.",
"en": "Example: this is where the main thing that can go wrong with this position goes."
},
"estado": "abierta",
"salida": null
} What I am holding myself to
- The thesis goes up when the position is opened, and it is not edited afterwards to look smarter.
- A position that loses money stays on the page, with its exit price and its date.
- If a company on this page also appears in my research, both pages say so.
- Every position on this page carries its thesis, its size and its weight. What is not published is my account balance, and this page is not a statement of net worth.
How this page is built
-
The positions live in a JSON file in the public repository. I edit it by hand and write the thesis and the risk myself; nothing here is generated by AI.
-
The file is checked against a schema on every build. A missing date, a price that is not a number or a closed position without an exit price stops the deploy instead of publishing a wrong figure.
-
Prices come from the site's own endpoint, which reads Yahoo Finance and caches it. They are delayed, and the page says by how much right next to the figures.
-
Every trading night a scheduled job works out what the portfolio is worth and writes one line into the repository. That file, and nothing else, is what the chart draws.
See the file on GitHub ↗ Full site methodology → My Actinver Challenge portfolio (fictional money) →
Educational, not advice
I am a student publishing my own positions to learn in the open. This is not financial, investment or tax advice, and it is not a recommendation to buy or sell anything. I hold the positions listed here, so read them as what they are: an interested party's opinion, with the interest declared. Prices come from Yahoo Finance with a delay and can be wrong; check them at the source before deciding anything.