¿Puedo calcular un rendimiento promedio anualizado de las inversiones mantenidas durante diferentes períodos de tiempo?

Mi pregunta es: dada una cantidad de inversiones de diferentes cantidades, mantenidas por diferentes períodos de tiempo, ¿cómo calcularía un crecimiento anual promedio aproximado para toda la cartera durante su vida útil? (Supongo que una respuesta exacta no será posible a partir de estos datos).

En mi cartera, he rastreado los siguientes datos:

  • Fecha de compra
  • Costo de la compra
  • Dividendos recibidos
  • Fecha de venta
  • valor vendido

A partir de eso puedo calcular:

  • Ganancias/Pérdidas (Valor vendido + Dividendos - Costo de compra)
  • Crecimiento real (ganancias/pérdidas ÷ costo de compra)
  • Número de años retenidos (Fecha de venta - Fecha de compra) ÷ 365
  • Crecimiento anualizado ((Valor vendido + Dividendos)/Costo de compra ^ (1/Número de años mantenido)) - 1

Aquí hay algunos valores del mundo real, si eso ayuda:

Datos de ejemplo

Respuestas (1)

En el siguiente método se calculan todos los valores de la cartera en cada intervalo de tiempo. Luego se agregan en cada período de tiempo y se calcula el rendimiento del período. Finalmente, los rendimientos del período se capitalizan y anualizan.

Por ejemplo, el rendimiento de la cartera entre periodos x5y x6es

(a11 + a23 + a34)/(a1 + a22 + a33) - 1 = 0.903 %

donde a1es el valor inicial del activo 1 y a11es el valor del activo 1 después de un período de tiempo. Si se conocieran los valores reales, esto daría un mejor resultado, pero dada la información limitada, se calculan.

La capitalización de los rendimientos del período es lo mismo que tomar el rendimiento ponderado en el tiempo.

ingrese la descripción de la imagen aquí

s1 = {2017, 6, 7};
e1 = {2017, 12, 4};
s2 = {2015, 9, 2};
e2 = {2017, 11, 1};
s3 = {2015, 2, 25};
e3 = {2017, 7, 3};
s4 = {2015, 2, 20};
e4 = {2017, 6, 2};

d1 = QuantityMagnitude@DateDifference[s1, e1, "Day"];
d2 = QuantityMagnitude@DateDifference[s2, e2, "Day"];
d3 = QuantityMagnitude@DateDifference[s3, e3, "Day"];
d4 = QuantityMagnitude@DateDifference[s4, e4, "Day"];

a1 = 4606.75;
v1 = 4529 + 27.48;
a2 = 3500;
v2 = 5827 + 56;
a3 = 2900;
v3 = 3998 + 72;
a4 = 2900;
v4 = 3566;

r1 = (v1/a1)^(1/d1) - 1.0
r2 = (v2/a2)^(1/d2) - 1.0
r3 = (v3/a3)^(1/d3) - 1.0
r4 = (v4/a4)^(1/d4) - 1.0
-0.0000609549
0.000656731
0.000394644
0.000248211

Las anteriores son las tasas diarias de rendimiento de los cuatro activos.

x1 = {2015, 2, 20};
x2 = {2015, 2, 25};
x3 = {2015, 9, 2};
x4 = {2017, 6, 2};
x5 = {2017, 6, 7};
x6 = {2017, 7, 3};
x7 = {2017, 11, 1};
x8 = {2017, 12, 4};

k1 = QuantityMagnitude@DateDifference[x1, x2, "Day"];
k2 = QuantityMagnitude@DateDifference[x2, x3, "Day"];
k3 = QuantityMagnitude@DateDifference[x3, x4, "Day"];
k4 = QuantityMagnitude@DateDifference[x4, x5, "Day"];
k5 = QuantityMagnitude@DateDifference[x5, x6, "Day"];
k6 = QuantityMagnitude@DateDifference[x6, x7, "Day"];
k7 = QuantityMagnitude@DateDifference[x7, x8, "Day"];

a41 = a4 (1 + r4)^k1;
a42 = a41 (1 + r4)^k2;
a43 = a42 (1 + r4)^k3
3566.

El valor calculado del activo 4 después de tres períodos es el mismo que el valor final v4anterior.

a31 = a3 (1 + r3)^k2;
a32 = a31 (1 + r3)^k3;
a33 = a32 (1 + r3)^k4;
a34 = a33 (1 + r3)^k5
4070.
a21 = a2 (1 + r2)^k3;
a22 = a21 (1 + r2)^k4;
a23 = a22 (1 + r2)^k5;
a24 = a23 (1 + r2)^k6
5883.
a11 = a1 (1 + r1)^k5;
a12 = a11 (1 + r1)^k6;
a13 = a12 (1 + r1)^k7
4556.48
z1 = a41/a4;
z2 = (a31 + a42)/(a3 + a41);
z3 = (a21 + a32 + a43)/(a2 + a31 + a42);
z4 = (a22 + a33)/(a21 + a32);
z5 = (a11 + a23 + a34)/(a1 + a22 + a33);
z6 = (a12 + a24)/(a11 + a23);
z7 = a13/a12;

k = QuantityMagnitude@DateDifference[x1, x8, "Day"];

(z1*z2*z3*z4*z5*z6*z7)^(365/k) - 1
0.154885

Entonces, el rendimiento de la cartera es del 15,49% anual.