Gracias por probar los scripts y gracias por las ideas! Te respondo a la parte que se refiere a los scripts.
He probado el script de mstar_ftimes.sh y tardó un ratillo pero funcionó correctamente desde windows.
He revisado valores puntuales, los fondos y fechas en los que tenía movimientos y son
correctos.
Como posible mejora estaría genial que este script solo rellenara los VL de fondos que falten en esa fecha, en plan relleno los agujeros. Supongo que esto será complicado pero es una idea :-)
Otra mejora es que le pases como parámetro el isin y te descargue solo ese fondo para por ejemplo cuando acabas de comprar un fondo nuevo poder tener los 6 meses anteriores de ese fondo sin que te machaque los datos del resto de las cartera que te has ido descargando día a día de mstar.
El mstar_movimientos.bat también me ha funcionado correctamente, tengo menos de 100 movimientos.
Respecto a lo que tarda, la mayoría del tiempo es por las conexiones a Internet que tiene que hacer, una por cada fondo. Si tienes 10 fondos, tiene que conectarse 10 veces a la página del finantial times, y eso lleva su tiempo ... El procesado luego de lo descargado es bastante rápido, no varía mucho si estás incorporando todos los datos o solo los de una semana.
Respecto a las 2 mejoras que propones:
1.- Lo del relleno de los agujeros, entiendo que ya lo está haciendo, o al menos debería. Si el fichero mstar_portfolio_xxx.dat tiene ya el VL de una fecha concreta (da igual si es porque usas el script mstar o porque ya has usado el mstar_ftimes antes), no lo sobreescribe, por lo que en la práctica, si te faltan unos VLs y ejecutas el script, te rellena los huecos. Este es el código, por si sirve para que alguien lo entienda :-D
# Solo escribimos los movimientos cuyas fechas estan en el rango y que no esten ya en el dat
if [ $fechaConAnyoAMD -ge $FECHA_INICIO ] && [ $fechaConAnyoAMD -le $FECHA_FIN ]; then
grep "$isin;.*;fechaConAnyoAMD" "$CARPETA_OUT/mstar_portfolio_$sufijo.dat" > /dev/null
if [ ! $? -eq 0 ]; then
echo "$isin;$nombre;$fechaConAnyoAMD;$fechaConAnyo;$valor;EUR;1;$valor"
fi
fi
Si lo quieres probar, edita el fichero mstar_portfolio_xxx.dat (con el bloc de notas, por ejemplo), borra un par de lineas de la misma fecha, ejecuta el script mstar_ftimes pasándole solo esa fecha (como inicio con -i y final con -f) y comprueba que las vuelve a generar.
También puedes probar a editar en el fichero mstar_portfolio_xxx.dat un VL poníendole más decimales antes de ejecutar el script mstar_ftimes (4 decimales, como tiene la pagina de morningstar) y deberías ver que no los sobreescribe con los valores del Finantial Times, es decir, que no pierdes decimales.
2.- Lo de poder pasar un ISIN no es mala una opción. El script, como te comento, no machacaría los datos que te hayas ido descargando de morningstar, pero te conectaría a la pagina del finantial times una vez por cada ISIN, y eso si te lo puedes ahorrar si solo has añadido un ISIN nuevo. Lo apunto para la siguiente versión.
De nuevo, muchas gracias por probarlo :-D