El panel de inversión que me faltaba
Una aplicación para llevar mi cartera de acciones: qué tengo, cómo va, qué se espera y qué ha dicho cada empresa, con las noticias sacadas de su sala de prensa siempre que se puede.
El contexto
Qué había antesEn 2022 rediseñé DEGIRO en Figma. Era una propuesta: la página de inicio que le faltaba al bróker, con la cartera arriba, el análisis de en qué estás metido y las fechas de tus empresas a un lado. Se quedó en pantallas. GBV es esa misma idea, pero funcionando y con mi dinero dentro.
Quería resolver tres cosas que hacía a mano y mal. Saber cuánto tengo y cuánto he ganado sin abrir una hoja de cálculo. Enterarme de lo que pasa en mis empresas sin pasar por cinco medios que cuentan lo mismo un día tarde. Y poder preguntar algo —qué significa un dato, cómo va el sector, qué dijeron en los últimos resultados— sin salir de la aplicación.
El proceso
Qué decidí y por quéEl panel es aquella propuesta ya construida: la cartera con los totales, el calendario de resultados y dividendos, el reparto por mercados y la tabla de acciones. Todo cabe de una vez, sin desplazarse, porque la pregunta con la que uno abre esto es siempre la misma.
Las noticias son la parte que más trabajo dio. Lo fácil era tirar de un agregador, pero entonces lees lo que un medio decidió contar. GBV va antes: para cada empresa busca su sala de prensa. Las del IBEX 35 están escritas a mano, una por una. Si una dirección cambia, o la empresa no está en la lista, el servicio rastrea su web corporativa buscando la sección de actualidad, y solo si tampoco la encuentra baja a fuentes públicas. Cada noticia lleva delante de dónde salió.
VEGA, el asistente, no es un chat pegado al lado: lee la cartera. Le puedes pedir un resumen, las noticias de lo que tienes, una explicación de un concepto o los últimos resultados de una empresa, y responde con formato —tarjetas de datos, tablas, enlaces— en vez de con un párrafo.
class Movimientos(models.Model):
TIPOS_MOVIMIENTO = [
("Compra", "Compra"),
("Venta", "Venta"),
("Dividendos", "Dividendos"),
("Impuestos", "Impuestos"),
]
fecha = models.DateField()
cantidad = models.IntegerField()
# Beneficio total real: combina
# ganancias no realizadas + ventas
# cerradas + dividendos - costes.
beneficio_total_num = (
ganancia_total_num
+ resultado_realizado_num
+ dividendos_netos
- comisiones_totales
- impuestos_totales
)
El resultado
Cómo quedóLo uso todos los días con mi cartera real, que era la única prueba que me interesaba. Y lo que más ha cambiado no es el panel: es leer lo que la empresa publica, con su fecha y su enlace, en vez de lo que alguien resumió.
Sigue creciendo. La lista de salas de prensa se amplía cuando compro algo nuevo, y al asistente le voy añadiendo consultas a medida que se me ocurren.