¿Inversores Extremadamente Exitosos? ¿O Extremadamente Afortunados?

Este es un nuevo post sobre la rentabilidad conseguida por los gestores activos, el azar, y por qué la inversión pasiva tiene sentido.

Es una justificación de que «rentabilidades pasadas no aseguran rentabilidades futuras».

Este post hereda de este otro Extremely Successful? Extremely Lucky!, del CFA Institute. Hay elementos comunes, pero fundamentalmente es una elaboración propia de la misma idea.

Este post va en la línea de muchos otros que tratan el tema de por qué la inversión pasiva es una buena idea para un pequeño inversor. Vea por ejemplo:

Y este tema está muy tratado en nuestros libros:

Bueno, comencemos.

Introducción

Las personas a las que les va bien en la vida tienden a pensar que es porque ellas tienen mejores habilidades que los demás, y trabajan más duro.

Sin duda, las habilidades y el trabajo duro son muy importantes. Pero hay otra componente: la suerte.

En muchos aspectos de nuestra vida el azar es importante. Pero en inversiones, lo es aún más. Si alguien ha obtenido rentabilidades excepcionalmente buenas con las inversiones, muy seguramente habrá sido por suerte.

Esto no es una ofensa al lector, ni a los grandes inversores, es solo reconocer la importancia de la fortuna.

Nuestra primera intuición («los mejores inversores son necesariamente los que obtienen los mejores resultados») nos engaña hasta el momento que se ven las gráficas y se confronta la realidad. Fooled by randomness, que diría Nassim Taleb.

Descripción de las Simulaciones

Hemos simulado tres grupos de inversores según el alfa (la rentabilidad por encima del promedio del mercado) que proporcionan. Es alfa después de pagar costes de gestión.

AlfaProporción de InversoresDescripción
Excelentes+2%25%Gestores que toman muy buenas decisiones de inversión. Son ejemplos de este grupo los gestores de pequeños fondos de autor, que tienen unos incentivos alineados con los de sus partícipes.
Normales050%Proporcionan la rentabilidad promedio del mercado. Son ejemplos de este grupo la mayor parte de los pequeños inversores.
Malos-2%25%¡Alfa negativa! Son ejemplos de este grupo gestores mediáticos que invierten de manera estrambótica; o los fondos de inversión de los grandes bancos, que cobran su sueldo independientemente del resultado, y que simplemente compran un ETF del índice y se llevan el 2% anual de comisión sin riesgo.
Tabla 1: Grupos de inversores simulados.

Vamos a suponer también las características de un mercado bursátil típico: las acciones de EEUU de gran capitalización (fuente: base datos de CRSP, Center for Research in Security Prices), de la Reserva Federal de EEUU, via el libro All About Asseet Allocation de Rick Ferri).

Simulemos 20 mil inversores, que es el orden de magnitud de fondos de inversión disponibles en la base de datos de MorningStar.es

Estos inversores toman sus decisiones durante el año. En promedio obtienen la rentabilidad del mercado (9.3% anual), con una volatilidad del 18.1%. Como invierten en una cartera diversificada de acciones que forman parte del mercado, es razonable suponer que obtienen la misma volatilidad que el mercado.

Esta volatilidad se simula como ruido gaussiano, una distribución «normal», con forma de campana, de números aleatorios donde 1 sigma de la distribución es exactamente 18.1%.

Además, los inversores excelentes consiguen añadir un +2% anual, y los malos inversores toman tan malas decisiones que pierden un 2% anual.

Simulamos la rentabilidad de cada inversor, anualmente, con la siguiente fórmula:

rentabilidad_del_inversor = rentabilidad_promedio_del_mercado + [alfa] + número_aleatorio_volatilidad

En años sucesivos, las rentabilidades de cada año se van multiplicando. Y al final se calcula la rentabilidad anualizada (CAGR).

El hecho de que la volatilidad sea el doble que la rentabilidad esperada, y casi 10 veces más que el alfa que queremos medir, es es meollo de la cuestión.

Simulación de 1 Año

Veamos en un año cualquiera cuál sería la distribución de rentabilidades.

Figura 1: Rentabilidades obtenidas por inversores malos/normales/excelentes en 1 año.

La Figura 1 muestra las tres distribuciones de rentabilidades. En el eje horizontal se encuentran las rentabilidades, y en el vertical el número de inversores que han obtenido esas rentabilidades.

Como era de esperar, son distribuciones «normales», en campana de Gauss. Esto es así porque los números aleatorios siguen esta distribución. En primera aproximación nos vale.

  • Los malos inversores (en rojo) obtienen una rentabilidad promedio de 9.3%-2%=7.3%.
  • Los inversores normales (en naranja) obtienen una rentabilidad igual a la del promedio del mercado: 9.3%. Son el grupo más grande, con el doble de inversores que cualquiera de los otros dos grupos.
  • Los inversores excelentes (en verde) obtienen una rentabilidad promedio del 9.3%+2%=11.3%

En la Figura 1 se aprecia que la gran mayoría de los inversores obtienen rentabilidades en la zona central, cerca del promedio del marcado, y muy pocos obtienen rentabilidades o muy altas o muy bajas.

En vez de poner a los tres grupos por separado, podemos combinarlos en una sola gráfica. Esta es la Figura 2.

Figura 2: Los tres grupos de inversores tras 1 año invertidos.

La Figura 2 muestra que en un año apenas se aprecia diferencia entre los tres grupos. Uno esperaría que los inversores excelentes (los verdes) se encontrarían más a la derecha (hacia la zona de mayores rentabilidades). Pero no es así, los tres grupos son aparentemente equivalentes. Esto es así porque en un año el azar es la principal contribución a la rentabilidad de los inversores.

Podríamos fijarnos qué es lo que sucede con los inversores que han obtenido los mejores resultados. Los inversores que se encuentran en el décimo decil, el 10% de los mejores inversores (los 2000 mejores inversores). Son inversores con rentabilidades mejores que 32.7%. Esto es lo que muestra la Figura 3.

Figura 3: Subset de la Figura 2, mostrando el 10% de los mejores inversores. 1 año invertidos.

Como muestra la Figura 3, los 2000 mejores inversores están muy repartidos. Los inversores excelentes no son mayoría. Incluso encontramos gestores malos en este grupo, a pesar de que han perdido un -2% por su alfa negativa. Un buen ejemplo de cómo el azar es más importante que la habilidad.

Simulación de 5 Años

Las gráficas correspondientes a una simulación de 5 años de duración son las siguientes.

Figura 4: Rentabilidades obtenidas por inversores malos/normales/excelentes tras 5 años.

Se aprecia que ahora las distribuciones son más estrechas. Con el paso de los años, el azar se compensa. Ya sabe, «unas veces se pierde, otras se gana», «las gallinas que entran por las que salen».

De hecho, en la Figura 5 se intuye que la distribución de gestores excelentes está ligeramente escorada a la derecha (hacia mayores rentabilidades), con respecto a los malos inversores, que parece estar ligeramente más hacia la izquierda (menores rentabilidades).

Figura 5: Los tres grupos de inversores tras 5 años invertidos.

Ahora mire la Figura 6. Muestra la composición del 10% de los mejores inversores (de nuevo el décimo decil, que han obtenido una rentabilidad mejor que 18.9% anual), vemos que hay un poco de todo. Hay más inversores excelentes, pero hay más aún inversores normales, e incluso encontramos a malos inversores que han llegado allí por pura suerte.

Figura 6: Subset de la Figura 5, mostrando el 10% de los mejores inversores. 5 años invertidos.

Simulación de 30 Años

Vayamos ahora a lo grande. Supongamos que tenemos datos históricos de los 20 mil inversores durante 30 años. ¿Qué resultados habrían obtenido?

La Figura 7 muestra claramente que aunque todos los inversores tienen una distribución similar en campana de Gauss, los inversores excelentes están más desplazados a la derecha (mejores rentabilidades) y los malos inversores más desplazados hacia la izquierda (peores rentabilidades).

Figura 7: Rentabilidades obtenidas por inversores malos/normales/excelentes tras 30 años.

La Figura 8 muestra los mismos datos que la Figura 7, pero ahora se aprecia que, en su conjunto, los inversores excelentes obtienen en promedio mejores rentabilidades que los demás. Bien, eso es lo que esperamos.

Figura 8: Los tres grupos de inversores tras 30 años invertidos.

Centrémonos ahora en el 10% mejor de los inversores, aquellos que obtienen una rentabilidad anual igual o mejor a 12.5%, mostrado en la Figura 9. Podríamos haber supuesto que después de 30 años, los inversores con mejores resultados son todos ellos los inversores excelentes. Pero no es así. De los inversores que han obtenido las mejores rentabilidades, la mitad de ellos son normales o incluso malos ¡Están ahí por suerte!

Figura 9: Subset de la Figura 8, mostrando el 10% de los mejores inversores. 30 años invertidos.

Simulación de 30 Años Con Pocos Inversores

Pero las gráficas a 30 años anteriores no son realistas, porque el número de fondos disminuye con los años. En vez de suponer que hay 20 mil fondos con 30 años de historia, supongamos solo 200 fondos, que es una cantidad más razonable. Esto se muestra en la Figura 10. Cuando hay pocos casos, queda aún más claro el azar.

  • Hay un inversor que ha obtenido un 15% de rentabilidad anual durante 30 años, a pesar de ser un mal inversor, ¡a pesar de que sus decisiones (o sus costes) le restan un -2% anual!
  • El mejor inversor (rentabilidad anualizada del 17%)… ¡es un inversor normal!
Figura 10: Igual a la Figura 9, mostrando solo el 10% de los mejores inversores, siendo 200 el número total de inversores. 30 años invertidos.

Esto es solo una simulación, no una descripción de la realidad. Pero necesariamente, la realidad se ha de comportar de manera similar.

Estadística

Veamos ahora la Tabla 2, que muestra la composición del décimo decil, el 10% de los mejores inversores (básicamente un recuento de las Figuras 3, 6, y 9). Son los resultados de la estadística con 20 mil inversores.

Inversores MalosInversores NormalesInversores ExcelentesInversores Total
1 año20%50%30%100%
5 años15%49%36%100%
30 años11%46%43%100%
Tabla 2: Composición del décimo decil, el 10% de los mejores inversores

Si nos fijamos solo en el 10% de los mejores inversores, los inversores excelentes ni siquiera son mayoría. Son como mucho el 43% tras 30 años. Esto quiere decir que si escoge un inversor del décimo decil al azar, lo más probable es que no sea de los excelentes.

Más aún, el número de malos inversores entre el 10% de mejores rentabilidades es relativamente grande ¡Hasta un 11% después de 30 años!

Si elige el gestor de su fondo de inversión de entre este 10% de los mejores, y tiene la mala suerte de elegir a un mal inversor que está ahí por suerte, en el futuro no puede esperar más que la rentabilidad del mercado menos el 2% del alfa negativo del mal gestor.

Notas Finales

Un primer comentario consiste en indicar que si usted está leyendo esto, su salario sea de 50 kEUR brutos al año o equivalente. O más. Si es así, enhorabuena. Además, sepa que eso le coloca confortablemente en el 1% de los ricos del mundo (fuente: How Rich Am I?). ¿Cuánto ha contribuido la suerte?

Si encuentra un gestor con 30 años de historial excelente, eso ni siquiera le garantiza que proporcione alfa positivo. Recuerde: «rentabilidades pasadas no aseguran rentabilidades futuras». Confirmado está.

Si encuentra un gestor excelente con 30 años de historial, debe de estar cerca de jubilarse, así que de poco le va a servir empezar a ser partícipe de su fondo ahora.

Si en vez de fijarnos en el 10% de los mejores inversores nos fijáramos en el 1%, las cifras mejoran un poco a favor de los inversores excelentes. Pero es una estadística de números pequeños. Hay muy pocos inversores con muchos años de historial y uno se puede encontrar con cualquier tipo de inversor, como bien indica la Figura 10.

Esta no es una crítica a los gestores de fondos de inversión. No es que sean poco habilidosos. Es que compiten con otros gestores que también buscan la excelencia. Y la componente de azar es grande y no es controlable por nadie.

Los inversores pasivos simplemente aprovechamos el mercado eficiente creado por estos inversores activos. Debido a sus decisiones, la rentabilidad promedio del mercado tiene sentido. Como inversores pasivos, no podemos mas que dar las gracias a los inversores activos.

No es que los inversores pasivos seamos gorrones que vivimos a costa de los inversores activos. No. Nosotros también valoramos mucho la excelencia en el trabajo. Por eso damos lo mejor de nosotros mismos en la empresa. Y en las facetas de nuestra vida en las que no somos excepcionales, nos conformamos con ser normales. Por eso invertimos pensando en obtener la rentabilidad promedio del mercado.

Descargo de Responsabilidad

Recuerde que la inversión implica riesgos y podría llevar a la pérdida de lo invertido. No somos asesores financieros, nada de lo que hay aquí escrito es una recomendación de compra de un producto determinado. En este post no hay enlaces de afiliados.

Código

Como es natural, «no confíe, verifique» toda fuente de información. Si sabe programar en Python y quiere comprobar las cifras, aquí tiene el programa original que realiza las simulaciones. Si encuentra algún error, cuéntenoslo en los comentarios.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Jul  4 15:34:30 2022
@author: Willyfog
"""
import random
import numpy as np
import matplotlib.pyplot as plt
import statistics
# There are 3 groups of investors:
#   25% of them are excellent and provide alpha=+1%/year
#   50% of them are normal and provide alpha=0%/year
#   25% of them are awful and provide alpha=-1%/year
alpha=0.02
fraction_of_excellent_investors=0.25
fraction_of_normal_investors=0.50
fraction_of_awful_investors=0.25
# Stock market averages
# Fuente: base datos de CRSP, Center for Research in Security Prices),
# de la Reserva Federal de EEUU, via el libro All About Asseet Allocation
# de Rick Ferri).
average_annual_return=0.093
average_annual_volatility=0.181
number_of_investors=20000 # Change this number for different simulations
bin_min=-60.
bin_max=+60
bin_number=31
sigmas=3.2
IS_COLOR=True
if IS_COLOR:
    color_excellent='green'
    color_normal='orange'
    color_awful='red'
else:
    color_excellent='black'
    color_normal='gray'
    color_awful='lightgray'
# Fixing random state for reproducibility
random.seed(110)
# Labels for plotting
label_excellent='Excelentes α=+%1.0f%%' % (alpha*100.)
label_normal='Normales'
label_awful='Malos α=-%1.0f%%' % (alpha*100.)
# Loop to simulations with these number of years
for number_of_years in [1,3,5,10,30]:
    # Annual return of excellent investors
    number_of_excellent_investors=round(fraction_of_excellent_investors*number_of_investors)
    total_return_excellent_investors=np.zeros(number_of_excellent_investors)
    for n in range(number_of_excellent_investors):
        this_total_return=1.0
        for nYear in range(number_of_years):
            this_total_return = this_total_return* \
                (1.+random.gauss(average_annual_return,average_annual_volatility)+alpha)
        total_return_excellent_investors[n]=this_total_return**(1./number_of_years)-1.
    
    # Annual return of normal investors
    number_of_normal_investors=round(fraction_of_normal_investors*number_of_investors)
    total_return_normal_investors=np.zeros(number_of_normal_investors)
    for n in range(number_of_normal_investors):
        this_total_return=1.0
        for nYear in range(number_of_years):
            this_total_return = this_total_return* \
                (1.+random.gauss(average_annual_return,average_annual_volatility))
        total_return_normal_investors[n]=this_total_return**(1./number_of_years)-1.
    # Annual return of awful investors
    number_of_awful_investors=round(fraction_of_awful_investors*number_of_investors)
    total_return_awful_investors=np.zeros(number_of_awful_investors)
    for n in range(number_of_awful_investors):
        this_total_return=1.0
        for nYear in range(number_of_years):
            this_total_return = this_total_return* \
                (1.+random.gauss(average_annual_return,average_annual_volatility)-alpha)
        total_return_awful_investors[n]=this_total_return**(1./number_of_years)-1.
   
    
    #--- Display the 3 different histograms side by side
    
    fig, axs = plt.subplots(ncols=3, nrows=1, sharey=True, sharex=True)
    fig.subplots_adjust(wspace=0)
    this_bin_max=100.*(average_annual_return + alpha + average_annual_volatility*sigmas/np.sqrt(number_of_years))
    this_bin_min=100.*(average_annual_return - alpha - average_annual_volatility*sigmas/np.sqrt(number_of_years))   
    my_bins=np.linspace(this_bin_min,this_bin_max,bin_number)
    axs[0].hist(100.*total_return_awful_investors,color=color_awful,bins=my_bins)
    axs[0].set_title(label_awful)
    axs[0].set_ylabel('Número de Inversores')
    
    axs[1].hist(100.*total_return_normal_investors,color=color_normal,bins=my_bins)
    axs[1].set_title(label_normal)
    axs[1].set_xlabel('Rentabilidad Anual [%]')
    
    axs[2].hist(100.*total_return_excellent_investors,color=color_excellent,bins=my_bins)
    axs[2].set_title(label_excellent)
 
    output_file='histograms_'+str(number_of_years)+'years_3independent.png'
    print('Save: '+output_file)
    plt.savefig( output_file, dpi=300, transparent=True, bbox_inches='tight' )
    plt.close()
    
    
    #--- Display the 3 histograms stacked
    
    plt.figure()
    output=plt.hist(100.*total_return_excellent_investors,color=color_excellent,bins=my_bins,stacked=True,label='Excelentes',histtype='bar',fill=True)
    number_of_excellent_investors_in_bin=output[0]
    output=plt.hist(100.*total_return_normal_investors,color=color_normal,bins=my_bins,stacked=True,label='Normales',histtype='bar',fill=True)
    number_of_normal_investors_in_bin=output[0]
    output=plt.hist(100.*total_return_awful_investors,color=color_awful,bins=my_bins,stacked=True,label='Malos',histtype='bar',fill=True)
    number_of_awful_investors_in_bin=output[0]
    plt.close()
    
    fig, ax = plt.subplots()
    
    my_width=(this_bin_max-this_bin_min)/bin_number
    my_linewidth=0.5
    plt.bar(my_bins[:-1],number_of_excellent_investors_in_bin,color=color_excellent,width=my_width,edgecolor='white',linewidth=my_linewidth,label=label_excellent)
    plt.bar(my_bins[:-1],number_of_normal_investors_in_bin,color=color_normal,width=my_width,bottom=number_of_excellent_investors_in_bin,edgecolor='white',linewidth=my_linewidth,label=label_normal)
    plt.bar(my_bins[:-1],number_of_awful_investors_in_bin,color=color_awful,width=my_width,bottom=number_of_excellent_investors_in_bin+number_of_normal_investors_in_bin,edgecolor='white',linewidth=my_linewidth,label=label_awful)
    
    # Reverse the order of the labels in the legend
    handles, labels = ax.get_legend_handles_labels()
    plt.legend(reversed(handles), reversed(labels))
    plt.xlabel('Rentabilidad Anual [%]')
    plt.ylabel('Número de Inversores')
      
    output_file='histograms_'+str(number_of_years)+'years_3stacked.png'
    print('Save: '+output_file)
    plt.savefig( output_file, dpi=300, transparent=True, bbox_inches='tight' )
    plt.close()
    
    
    #--- Display the 3 histograms stacked, only the best quartile/decile
    
    total_return_all_investors = np.concatenate( (total_return_excellent_investors,
                                                  total_return_normal_investors,
                                                  total_return_awful_investors) )
    number_of_fractions=10 # 10=decils, 4=quartils
    my_quantiles=statistics.quantiles(total_return_all_investors,n=number_of_fractions)    
    #my_quantiles=statistics.quantiles(total_return_all_investors,n=4)    
    #this_label='Quartil'
    this_label='Decil'
    threshold_best_investors=my_quantiles[-1]
    print('number_of_years='+str(number_of_years))
    print('threshold_best_investors='+str(threshold_best_investors*100.)+' %')
    
    total_return_excellent_investors_best=total_return_excellent_investors[np.where(total_return_excellent_investors>threshold_best_investors)]
    total_return_normal_investors_best   =total_return_normal_investors   [np.where(total_return_normal_investors>threshold_best_investors)]
    total_return_awful_investors_best    =total_return_awful_investors    [np.where(total_return_awful_investors>threshold_best_investors)]
    
    this_bin_max=round(100.*(average_annual_return + average_annual_volatility*sigmas/np.sqrt(number_of_years)))
    this_bin_min_float=threshold_best_investors*100.
    # Round to higher integer, to avoid strange histogram
    this_bin_min_int=int(this_bin_min_float)
    if (this_bin_min_float-this_bin_min_int)<0.5:
        this_bin_min=this_bin_min_int+0.5
    else:
        this_bin_min=this_bin_min_int+1.0
    this_bin_number=round((this_bin_max-this_bin_min)*2+1)
    my_bins_best=np.linspace(this_bin_min,this_bin_max,this_bin_number)
    my_width=(this_bin_max-this_bin_min)/this_bin_number
    
    plt.figure()
    output=plt.hist(100.*total_return_excellent_investors_best,bins=my_bins_best,histtype='bar')
    number_of_excellent_investors_in_bin=output[0]
    output=plt.hist(100.*total_return_normal_investors_best,bins=my_bins_best,histtype='bar')
    number_of_normal_investors_in_bin=output[0]
    output=plt.hist(100.*total_return_awful_investors_best,bins=my_bins_best,histtype='bar')
    number_of_awful_investors_in_bin=output[0]
    plt.close()
    number_of_best_investors=number_of_investors/number_of_fractions
    print('excellent=%5.2f, normal=%5.2f, awful=%5.2f (10%% best)' % (
          len(total_return_excellent_investors_best)/number_of_best_investors*100.,
          len(total_return_normal_investors_best)/number_of_best_investors*100.,
          len(total_return_awful_investors_best)/number_of_best_investors*100. ))
    plt.figure()
    plt.bar(my_bins_best[:-1],number_of_excellent_investors_in_bin,color=color_excellent,width=my_width,edgecolor='white',linewidth=my_linewidth,label='Excelentes')
    plt.bar(my_bins_best[:-1],number_of_normal_investors_in_bin,color=color_normal,width=my_width,bottom=number_of_excellent_investors_in_bin,edgecolor='white',linewidth=my_linewidth,label='Normales')
    plt.bar(my_bins_best[:-1],number_of_awful_investors_in_bin,color=color_awful,width=my_width,bottom=number_of_excellent_investors_in_bin+number_of_normal_investors_in_bin,edgecolor='white',linewidth=my_linewidth,label='Malos')
    plt.xlim(this_bin_min-0.25,this_bin_max-0.25)
    
    # Reverse the order of the labels in the legend
    handles, labels = ax.get_legend_handles_labels()
    plt.legend(reversed(handles), reversed(labels))
    plt.xlabel('Rentabilidad Anual [%]')
    plt.ylabel('Número de Inversores')
    plt.title('Mejor '+this_label)
    
    output_file='histograms_'+str(number_of_years)+'years_3stacked_OnlyBest.png'
    print('Save: '+output_file)
    plt.savefig( output_file, dpi=300, transparent=True, bbox_inches='tight' )
    plt.close()
    #--- Display the 3 histograms stacked, only the 1% very best
    
    total_return_all_investors = np.concatenate( (total_return_excellent_investors,
                                                  total_return_normal_investors,
                                                  total_return_awful_investors) )
    number_of_fractions=100 # 10=decils, 4=quartils
    my_quantiles=statistics.quantiles(total_return_all_investors,n=number_of_fractions)    
    this_label='1%'
    threshold_best_investors=my_quantiles[-1]
    print('number_of_years='+str(number_of_years))
    print('threshold_best_investors='+str(threshold_best_investors*100.)+' %')
    
    total_return_excellent_investors_best=total_return_excellent_investors[np.where(total_return_excellent_investors>threshold_best_investors)]
    total_return_normal_investors_best   =total_return_normal_investors   [np.where(total_return_normal_investors>threshold_best_investors)]
    total_return_awful_investors_best    =total_return_awful_investors    [np.where(total_return_awful_investors>threshold_best_investors)]
    
    this_bin_max=round(100.*(average_annual_return + average_annual_volatility*sigmas/np.sqrt(number_of_years)))
    this_bin_min_float=threshold_best_investors*100.
    # Round to higher integer, to avoid strange histogram
    this_bin_min_int=int(this_bin_min_float)
    if (this_bin_min_float-this_bin_min_int)<0.5:
        this_bin_min=this_bin_min_int+0.5
    else:
        this_bin_min=this_bin_min_int+1.0
    this_bin_number=round((this_bin_max-this_bin_min)*2+1)
    my_bins_best=np.linspace(this_bin_min,this_bin_max,this_bin_number)
    my_width=(this_bin_max-this_bin_min)/this_bin_number
    
    plt.figure()
    output=plt.hist(100.*total_return_excellent_investors_best,bins=my_bins_best,histtype='bar')
    number_of_excellent_investors_in_bin=output[0]
    output=plt.hist(100.*total_return_normal_investors_best,bins=my_bins_best,histtype='bar')
    number_of_normal_investors_in_bin=output[0]
    output=plt.hist(100.*total_return_awful_investors_best,bins=my_bins_best,histtype='bar')
    number_of_awful_investors_in_bin=output[0]
    plt.close()
    number_of_best_investors=number_of_investors/number_of_fractions
    print('excellent=%5.2f, normal=%5.2f, awful=%5.2f (1%% best)' % (
          len(total_return_excellent_investors_best)/number_of_best_investors*100.,
          len(total_return_normal_investors_best)/number_of_best_investors*100.,
          len(total_return_awful_investors_best)/number_of_best_investors*100.) )
    
    plt.figure()
    plt.bar(my_bins_best[:-1],number_of_excellent_investors_in_bin,color=color_excellent,width=my_width,edgecolor='white',linewidth=my_linewidth,label='Excelentes')
    plt.bar(my_bins_best[:-1],number_of_normal_investors_in_bin,color=color_normal,width=my_width,bottom=number_of_excellent_investors_in_bin,edgecolor='white',linewidth=my_linewidth,label='Normales')
    plt.bar(my_bins_best[:-1],number_of_awful_investors_in_bin,color=color_awful,width=my_width,bottom=number_of_excellent_investors_in_bin+number_of_normal_investors_in_bin,edgecolor='white',linewidth=my_linewidth,label='Malos')
    plt.xlim(this_bin_min-0.25,this_bin_max-0.25)
    
    # Reverse the order of the labels in the legend
    handles, labels = ax.get_legend_handles_labels()
    plt.legend(reversed(handles), reversed(labels))
    plt.xlabel('Rentabilidad Anual [%]')
    plt.ylabel('Número de Inversores')
    plt.title('Mejor '+this_label)
    
    output_file='histograms_'+str(number_of_years)+'years_3stacked_OnlyVeryBest.png'
    print('Save: '+output_file)
    plt.savefig( output_file, dpi=300, transparent=True, bbox_inches='tight' )
    plt.close()
# --- The End ---

Autor: willyfog

Turista laboral por la Unión Europea. Por favor que dure. Lo que veo, leo o me cuentan no lo suelo encontrar en español, así que me gusta escribirlo por aquí.

Un comentario en “¿Inversores Extremadamente Exitosos? ¿O Extremadamente Afortunados?”

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

CFA Institute Daily Browse

Research. Reviews. Ideas. Built for investment professionals.

Rompiendo Fronteras

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

spertas

for empirical minds

iretiredyoung

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

Wait But Why

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

Ideas by Muloko

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

Una semana mejor

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

Living a FI

A Geek's Guide to Financial Independence

¡Libre a los 45!

La Independencia Financiera puesta a prueba. ¿Es posible? SÍ, Reto familiar para conseguirla. OBJETIVO 2026

Stop Ironing Shirts

Financial Independence, Investments, and Escaping Corporate Life

unavidaideal.com/

Blog Una Vida Ideal

Finumus

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

MonkWealth

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

Banker on FIRE

What an investment banker does to build wealth, reach financial independence, and live the best life possible

El Céntimo

Ahorro e Inversion.

Inversor provinciano

Convierte el dinero en tu esclavo

Inversor Sintético

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

One Million Journey

Shaping the Future through Saving & Investing

P2P Millionaire

Investing millions in P2P

Inversor Millennial

Ahorro, inversión, crowdlending y libertad financiera…contado por un millennial

Yoran Brondsema

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

Accidental Fire

Financial Independence | Early Retirement | Outdoor Adventure | Satire

Chris and Gabs World Cycling Tour

WE HARNESS THE ELEMENTS - SOME JUST SHELTER

KAIZEN INVESTOR

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

The Evidence-Based Investor

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

The Best Interest

Invest in knowledge

Independencia Financiera 101

Mi camino, lleno de errores y aprendizajes, hacia la independencia financiera

Four Pillar Freedom

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

Odisea Hacia La Independencia Financiera

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

JCM Compounding Capital

Inversión a largo plazo con enfoque empresarial y sentido común.

Independencia Financiera

Ahorrar suficiente y moderar tus gastos para retirarte antes

Taxes in Spain Online

Legal & Tax Advice

Jake Desyllas

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

pragcap.com/

Just another WordPress.com site

Hippies de Land Rover [HdLR]

Libertad financiera en Suiza y Latinoamerica!

Inversor Millennial

Ahorro, finanzas personales, crowdlending, inversión y libertad financiera...contado por un millennial

Portfolio Charts

Find a portfolio to love

Your Third LIfe

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

bradomyn

personal brain dump

Capturando Dividendos

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

Lúpulo y números

Batiburrillo de ideas en el que unos amigos se entretienen escribiendo sobre temas como Libertad Financiera, ciencia, programación, filosofía, inversión pasiva, ETFs, criptomonedas, etc.

A %d blogueros les gusta esto: