| Activo | Tipo | Sector | Posición | P.Coste medio | Precio act. | Valor € | Inv. puro € | Comisiones € | G/P € | G/P % |
|---|
* G/P calculada sobre inversión pura (precio × cantidad), sin incluir comisiones ni impuestos.
| Fecha ↓ | Tipo | Broker | Ticker | Nombre | Cant. | Precio | Comisión € | Impuestos € | Inv. pura € | Total € |
|---|
| Fecha | Tipo | Ticker | Nombre | Neto € |
|---|
| Año | Aportado € | Val.Inicio € | Val.Fin € | Renta € | G/P Real. € | Bonus € | Mi ROR | S&P 500 % | MSCI W. % | IBEX 35 % | Alpha | Veredicto |
|---|
* ROR = (ValFin − ValIni − Aportado + Renta + Bonus + G/P Real.) / ValIni · Renta = divid.+cupones+staking+interés · Bonus separado · Cash excluido · Clic en % para editar
Bienvenido al MAF Portfolio Tracker. Sigue estos pasos para empezar:
| Paso | Qué hacer |
|---|---|
| 1 | Configura tus brokers — ve a ⚙️ Configuración → Brokers y añade los brokers que usas |
| 2 | Añade tus movimientos — pulsa + Añadir o importa desde CSV (Movimientos → Importar CSV) |
| 3 | Actualiza precios — desde Netlify/PWA se hace automáticamente; desde archivo local, manualmente en Cartera |
| 4 | Haz backup — Backup → Exportar. Guarda el .json en un lugar seguro. Importa al abrir la app |
| 5 | Instala como PWA — Safari → □↑ → Añadir a pantalla de inicio. Así los datos persisten sin backup manual |
Cada operación que realices se registra como un movimiento. La app calcula automáticamente tu cartera, efectivo y rentabilidad a partir de ellos.
| Tipo | Cuándo usarlo | Campos obligatorios |
|---|---|---|
| Compra | Compra de cualquier activo | Ticker, Cantidad, Precio |
| Venta | Venta de cualquier activo | Ticker, Cantidad, Precio |
| Dividendo | Cobro de dividendo de acción o fondo | Ticker, Importe neto |
| Cupón Bono | Cobro de cupón de bono o renta fija | Ticker, Importe neto |
| Depósito | Entrada de dinero en el broker | Importe |
| Retirada | Salida de dinero del broker | Importe |
| Bonus | Bonificación, cashback del broker | Ticker, Importe neto |
| Staking / Interés | Rendimientos de cripto o cuenta remunerada | Ticker, Importe neto |
| Traspaso Salida | Salida de fondo origen en traspaso | Ticker, Cantidad, Precio mercado |
| Traspaso Entrada | Entrada en fondo destino en traspaso | Ticker, Cantidad, Precio mercado |
| Split | Desdoblamiento de acciones | Ticker, Cantidad a añadir |
Puedes importar movimientos masivamente desde un archivo CSV. La primera fila debe ser la cabecera. El separador puede ser coma, punto y coma o tabulador.
0,91), usa punto y coma como separador de columnasFormato completo:
Ejemplos:
La app calcula automáticamente el efectivo disponible en cada broker. Todo en euros internamente.
| Movimiento | Efecto en efectivo |
|---|---|
| Depósito | + suma |
| Retirada | − resta |
| Compra | − resta el total pagado |
| Venta | + suma el total recibido |
| Dividendo / Cupón / Bonus | + suma el importe neto |
Todos los importes se almacenan en euros. El campo TC indica cuántos euros vale 1 unidad de la divisa del activo.
| Divisa | TC ejemplo | Significado |
|---|---|---|
| EUR | 1 | Sin conversión |
| USD | 0.92 | 1 USD = 0,92 € |
| GBP | 1.17 | 1 GBP = 1,17 € |
Un traspaso es fiscalmente neutro — el coste del fondo origen se hereda en el destino. Se registra con dos movimientos:
| Paso | Tipo | Descripción |
|---|---|---|
| 1 | Traspaso Salida | Cierra posición en fondo origen al precio de mercado |
| 2 | Traspaso Entrada | Abre posición en fondo destino heredando el coste |
Un split aumenta el número de acciones sin cambiar el valor total. En Cantidad introduce las acciones adicionales que recibes (negativo para split inverso).
| Ratio | Tienes | Añades | Resultado |
|---|---|---|---|
| 2:1 | 50 | +50 | 100 |
| 4:1 | 10 | +30 | 40 |
| 1:10 inverso | 100 | −90 | 10 |
El importe que introduces es siempre el neto recibido en cuenta (ya descontadas retenciones).
Las rentas suman al efectivo del broker y aparecen en la pestaña Dividendos filtradas por año y ticker.
La app guarda los datos en el navegador (IndexedDB). La persistencia depende de cómo accedas:
| Modo de uso | Persistencia |
|---|---|
| 📱 PWA instalada (iPhone o Mac) | ✅ Permanente |
| 🌐 Netlify en Safari (sin instalar) | ⚠️ Puede borrarse |
| 📄 Archivo local file:// | ❌ No persiste en Safari |
portfolio-datos.json2. Al abrir → Backup → Importar → selecciona el .json
3. El archivo sobreescribe siempre el anterior (no acumula copias)
El botón ↩ Deshacer revierte las últimas 10 acciones en la misma sesión.
La pestaña Cartera muestra todas tus posiciones abiertas con tres niveles de filtros combinables:
| Nivel | Filtro | Ejemplo |
|---|---|---|
| 1 | Broker (barra arrastrable) | Global · DEGIRO · Santander… |
| 2 | Tipo de activo (pills) | Acciones · ETFs · Bonos · Cripto… |
| 3 | Sector + Divisa (dropdowns) | Tecnología + USD |
Al arrancar, la app actualiza automáticamente los precios de todos tus tickers desde Yahoo Finance (máximo una vez cada 15 minutos). El indicador en la barra superior muestra el estado:
| Indicador | Significado |
|---|---|
| 🔄 actualizando… | Fetch en curso |
| ✅ hh:mm | Todos los precios actualizados correctamente |
| ⚠️ N ok · N manual | Algunos tickers no tienen precio en Yahoo — introdúcelos manualmente haciendo clic en el precio en Cartera |
file:// el navegador bloquea las llamadas a Yahoo Finance.Métricas clave
| Métrica | Qué muestra |
|---|---|
| Valor de mercado | Precio actual × cantidad de todas las posiciones abiertas |
| Beneficio latente | Valor mercado − Coste de compra, con % sobre coste |
| Retorno total | Beneficio latente + dividendos cobrados + G/P realizadas |
| Renta recibida | Suma de dividendos, cupones, staking e intereses |
| Comisiones | Total pagado en comisiones y su % sobre coste total |
| Mejor / Peor posición | Ticker con mayor y menor G/P% en la cartera actual |
| Mayor concentración | Ticker con más peso y su % sobre el total del portfolio |
Gráfico de evolución
Tres líneas a lo largo del tiempo: Total Invertido (coste acumulado), Valor Mercado y Valor Total (incluyendo renta y G/P realizadas).
· Se guardan automáticamente cada vez que se actualizan los precios
· Puedes guardar uno manualmente con el botón 📸 Snapshot
· Períodos con snapshot → valor real (punto visible en el gráfico)
· Períodos sin snapshot → coste acumulado como aproximación
Con el tiempo, los snapshots diarios irán completando el historial real.
Donut de distribución
| Vista | Agrupa por |
|---|---|
| Por broker | Peso de cada broker ponderado por coste real de compras |
| Por tipo | Acciones, ETFs, Bonos, Cripto… |
| Por sector | Tecnología, Financiero, Salud… |
Compara tu rentabilidad anual (ROR — Rate of Return) con los principales índices bursátiles. Los datos de benchmarks se obtienen automáticamente desde Yahoo Finance al arrancar la app.
¿Qué es el ROR?
El ROR mide cuánto han crecido tus inversiones en un año, descontando el dinero nuevo que hayas aportado ese año. Si metes 10.000€ en diciembre y el mercado no se mueve, tu ROR es 0% — no has ganado ni perdido nada.
· Aportaciones — compras y traspasos entrada realizados ese año
· Rentas — dividendos, cupones, staking, intereses cobrados
· G/P realizadas — plusvalías de ventas ejecutadas ese año
Columnas de la tabla
| Columna | Qué significa | Fuente |
|---|---|---|
| Mi ROR | Tu rentabilidad anual real | Calculada de tus movimientos |
| S&P 500 % | Retorno del índice de las 500 mayores empresas de EE.UU. | Yahoo Finance ^GSPC |
| MSCI World % | Retorno del índice mundial de países desarrollados (~1.500 empresas) | Yahoo Finance IWDA.AS |
| IBEX 35 % | Retorno del índice español de las 35 mayores empresas | Yahoo Finance ^IBEX |
| Alpha | Tu ROR menos el S&P 500. Positivo = batiste al mercado americano | Calculada |
| Veredicto | ✅ Positivo si tu ROR > 0% · ❌ Negativo si tu ROR < 0% | Calculada |
¿Por qué comparar con estos índices?
Estos índices representan lo que habrías ganado comprando un ETF de mercado en vez de gestionar tu propia cartera. Si tu ROR supera al S&P 500 de forma consistente, estás añadiendo valor con tu selección de activos — algo que la mayoría de gestores profesionales no logran a largo plazo.
Con el tiempo, los snapshots diarios automáticos irán mejorando esta precisión. Solo el año en curso tiene ROR fiable.
file://). El año en curso siempre se refresca. Los años anteriores se cachean y no se vuelven a pedir.| Concepto | Fórmula |
|---|---|
| Inversión pura | Cantidad × Precio / TC |
| Total pagado | Inv. pura + Comisión/TC |
| Coste medio | Suma(inv. puras) / Cantidad total |
| G/P latente € | Valor actual − Inversión pura |
| G/P latente % | (G/P € / Inversión pura) × 100 |
| G/P realizada | (Precio venta − Coste medio) × Cantidad vendida |
| Retorno total | G/P latente + Dividendos + G/P realizadas |
| Yield | (Total dividendos / Inversión pura) × 100 |
| ROR anual | (Val.Fin − Val.Ini − Aportado + Rentas + G/P real.) / Val.Ini × 100 |
| Alpha | ROR − S&P 500 % |
| Efectivo broker | Depósitos − Retiradas − Compras + Ventas + Rentas |