26 votos

Frecuencia de las inversiones para maximizar el rendimiento (y minimizar las comisiones)

Si tengo una determinada cantidad de dinero para invertir regularmente, ¿cómo calculo la cantidad que debo dejar acumular en mi banco antes de realizar esa inversión, suponiendo que hay una comisión asociada a cada inversión adicional?

Por ejemplo, podría apartar $100 every week to invest into a stock with an expected growth of 9% p.a., but brokerage fees are $ 10/trade. ¿Durante cuántas semanas debo acumular los 100 dólares antes de invertirlos, si puedo ponerlos en mi cuenta bancaria de alto interés al 4% anual hasta entonces?

Evidentemente, si las cantidades que invierto son muy pequeñas, las comisiones se sumarán y lo harán caro. Por otro lado, si dejo que se acumule demasiado dinero en el banco primero, no estoy aprovechando los mayores rendimientos esperados de la inversión.

Para plantear el problema con precisión, definamos estas variables:

  • s = cantidad apartada cada periodo
  • d = duración del período en años (por ejemplo 1 / 52 o 1 / 26 )
  • r = interés anual de la cuenta bancaria, indexado mensualmente
  • g = crecimiento anual esperado de las acciones
  • b = comisión de intermediación por operación
  • n = número de períodos para acumular fondos en el banco antes de invertir (cero si s debe invertirse inmediatamente).

Mis preguntas exactas son:

Dados los valores de s , d , r , g y b , qué valor de n ¿máxima rentabilidad?

O si esta pregunta es demasiado difícil de responder exactamente, ¿qué simplificaciones podemos hacer para obtener una solución práctica a este problema? ¿Lo he complicado demasiado?

Supongo que se podría escribir un programa de ordenador para comparar diferentes valores de n pero espero una solución de forma cerrada. Parece que la solución a este problema debería ser bien conocida, pero no la he visto en ningún sitio.


Mi progreso hasta ahora:

editar: Ahora he publicado lo que había aquí como parte de mi propia respuesta.

0 votos

Existen start-ups con cero comisiones Lo que puede hacer que la pregunta sea obsoleta. Uno espera. :-)

0 votos

@PeterK. Suena celestial. Donde yo vivo, tienes suerte si puedes conseguir 20 dólares de comisiones de corretaje. El mercado de valores estadounidense es mucho más barato para operar.

0 votos

Hubiera preferido añadir esto como comentario, pero ¿de dónde sacas el 4% de rendimiento en los ahorros?

22voto

LanceBaynes Puntos 274

Vale, ¡creo que he conseguido encontrar la respuesta precisa a este problema!

Se trata de resolver una ecuación exponencial no lineal, pero también he encontrado una buena solución aproximada utilizando la serie de Taylor truncada. A continuación encontrará una hoja de cálculo que puede utilizar.

Encontrar el valor futuro:

Empecemos por definir los factores de crecimiento por periodo, para el dinero en el banco y el dinero invertido:

R = (1+r/12)^(12d)

G = (1+g)^d

Ahora, dejemos que S es la cantidad que se puede invertir después de n +1 periodos; así que el primero de ese dinero ha devengado intereses por n periodos. Es decir,

S = s (1-R^(n+1)) / (1-R)

El paso clave para resolver el problema fue fijar el número total de períodos considerados. Así que vamos a introducir una nueva variable:

t \= el número total de períodos de tiempo transcurridos

Así que si el dinero está listo para invertir cada n +1 períodos, habrá t / ( <em>n </em>+1) inversiones separadas, y el valor futuro de las inversiones será:

FV = (S-b) (1-G^t) / (1-G^(n+1))

Esta fórmula es exacta en el caso de los enteros t y n y una buena aproximación cuando t y n no son números enteros. Sustituyendo S obtenemos la versión de la fórmula que depende explícitamente de n :

FV = (s (1-R^(n+1)) / (1-R) - b) (1-G^t) / (1-G^(n+1))

Derivado del valor futuro con respecto a n :

Afortunadamente, sólo un par de términos en FV dependen de n , por lo que podemos encontrar la derivada después de un poco de esfuerzo:

dFV/dn = G^(n+1) (1-G^t) ln(G) (s (1-R^(n+1))/(1-R)-b) / (1-G^(n+1))^2 - s (1-G^t) R^(n+1) log(R) / ((1-G^(n+1)) (1-R))

Maximizar el valor futuro:

Igualando la derivada a cero, podemos eliminar el denominador, y suponiendo t es mayor que cero, podemos dividir por la constante ( 1- G t ):

G^(n+1) ln(G) (s (1-R^(n+1)) - b (1-R)) - s R^(n+1) ln(R) (1-G^(n+1)) = 0

Para simplificar la ecuación, podemos definir algunas constantes adicionales:

α = (s - b + b R) ln(G)

β = s ln(G/R)

γ = s ln(R)

Entonces, podemos definir una función f ( n ) y escribir la ecuación como

f(n) = α (G/R)^(n+1) - β G^(n+1) - γ

Tenga en cuenta que α , β , γ , G y R son todos constantes.

Soluciones:

A partir de aquí hay dos opciones:

  1. Utilice Método de Newton u otro método numérico para encontrar root positiva de f ( n ). Esto puede hacerse en varios paquetes de software como MATLAB, Octave, etc., o utilizando una calculadora gráfica.

  2. Resolver de forma aproximada utilizando un truncamiento Serie Taylor polinomio. Aquí utilizaré este método.

Aproximación de la solución con una serie de Taylor:

La serie Taylor de f ( n ), centrado en n \=0, es:

f(n) = ( α (G/R) - β G -γ ) + sum_(k=1)^inf ( α (G/R) ln(G/R)^k - β G ln(G)^k) n^k / k!

Truncando la serie a los tres primeros términos, obtenemos un polinomio cuadrático (con coeficientes constantes):

f(n) ~ (α (G/R) - β G - γ) + (α (G/R) ln(G/R) - β G ln(G)) n + 0.5 (&alpha (G/R) ln(G/R)^2 - β G ln(G)^2) n^2

Solución aproximada de forma cerrada:

Utilizando R , G , α , β y γ definida anteriormente, dejemos que c 0 , c 1 y c 2 sean los coeficientes de la serie de Taylor truncada para f ( n ):

c_0 = 0.5 (&alpha (G/R) ln(G/R)^2 - β G ln(G)^2)

c_1 = α (G/R) ln(G/R) - β G ln(G)

c_2 = α (G/R) - β G - γ

Entonces,

n ~ (c_1^2 - 4 c_0 c_2) ) / abs(2 c_0) - c_1 / (2 c_0)

n debe redondearse al número entero más cercano. Para estar seguro, compruebe los valores de arriba y de abajo n utilizando la fórmula de FV .

Ejemplo:

Utilizando el ejemplo de la pregunta:

Por ejemplo, podría apartar $100 every week to invest into a stock with an expected growth of 9% p.a., but brokerage fees are $ 10/comercio. ¿Durante cuántas semanas debo acumular los 100 dólares antes de invertirlos, si puedo ponerlos en mi cuenta bancaria de alto interés al 4% anual hasta entonces?

Utilizando el método de Newton para encontrar las raíces de f ( n ) anterior, obtenemos n \= 14.004.

Utilizando la solución aproximada de forma cerrada, obtenemos n \= 14.082.

Comprobando esto con el FV con t \= 1680 (divisible uniformemente por cada n + 1 probado):

  • Cuando n \= 13, FV \= $903,861.85
  • Cuando n \= 14, FV \= $903,891.13
  • Cuando n \= 15, FV \= $903,865.89

Por lo tanto, debe esperar a n \= 14 periodos, manteniendo ese dinero en el banco, invirtiéndolo junto con el dinero del siguiente periodo (por lo que hará una inversión cada 14 + 1 = 15 semanas.)

Hoja de cálculo:

Esta es una forma de aplicar la solución anterior con una hoja de cálculo. StackExchange no permite tablas en su sintaxis en este momento, así que mostraré una captura de pantalla de las fórmulas y columnas que puedes copiar y pegar:

Fórmulas:

Spreadsheet formulae

Copia y pega la columna A:

s
d
r
g
b
.
R
G
alpha
beta
gamma
.
c0
c1
c2
.
n (unrounded)
n
.
t (periods)
FV(n-1)
FV(n)
FV(n+1)

Copia y pega la columna B:

=100
=1/52
=0.04
=0.09
=10
.
=(1+B3/12)^(12*B2)
=(1+B4)^B2
=(B1-B5+B5*B7)*LN(B8)
=B1*LN(B8/B7)
=B1*LN(B7)
.
=0.5*(B9*B8/B7*LN(B8/B7)^2-B10*B8*LN(B8)^2)
=B9*B8/B7*LN(B8/B7)-B10*B8*LN(B8)
=B9*B8/B7-B10*B8-B11
.
=SQRT(B14^2-4*B13*B15)/(2*ABS(B13))-B14/(2*B13)
=ROUND(B17,0)
.
=LCM(B18+1,B18+1-1,B18+1+1)
=(B1*(1-B7^(B18-1+1))-B5*(1-B7))*(1-B8^B20)/((1-B7)*(1-B8^(B18-1+1)))
=(B1*(1-B7^(B18+1))-B5*(1-B7))*(1-B8^B20)/((1-B7)*(1-B8^(B18+1)))
=(B1*(1-B7^(B18+1+1))-B5*(1-B7))*(1-B8^B20)/((1-B7)*(1-B8^(B18+1+1)))

Resultados:

Spreadsheet results

Recuerda, n es el número de períodos para acumular dinero en el banco. Así que querrá invertir cada n +1 semanas; en este caso, cada 15 semanas.

0 votos

@ChrisDegnen Yo sólo obtengo 903891 dólares, ¿puedes ver por qué tu resultado es tan diferente al mío? La principal diferencia que veo es que el rendimiento de tu inversión se está componiendo mensualmente pero en mis soluciones no he asumido eso (mientras que los bancos tienden a darte intereses sólo cada mes, algo como las acciones se puede asumir que crecen constantemente, así que estoy asumiendo que el 9% es el rendimiento anualizado).

0 votos

Como el tuyo r = (1 + 0.04/12)^(12/52) - 1 y g = (1 + 0.09/12)^(12/52) - 1

0 votos

@ChrisDegnen, no es como el mío. Como intenté explicar, estás componiendo los rendimientos de la inversión mensualmente.

2voto

Ahmed Puntos 5613

Vaya, esto resulta ser un problema mucho más difícil de lo que pensé al verlo por primera vez.

Vamos a refundir algunas de las variables para simplificar un poco las ecuaciones. Sea rb la tasa de crecimiento del dinero en tu banco durante un periodo. Por "tasa de crecimiento" me refiero a la cantidad que tendrás después de un periodo. Así, si el tipo de interés es del 3% anual y se paga mensualmente, el interés de un mes es de 3/12 del 1% = 0,25%, por lo que después de un mes tienes 1,0025 veces más dinero del que tenías al principio. Del mismo modo, dejemos que si sea la tasa de crecimiento de la inversión.

Entonces, después de hacer un depósito, la cantidad que tienes en el banco es pb = s. Después de otro depósito has cobrado los intereses del primero, por lo que tienes pb = s * rb + s. Es decir, el primer depósito con el crecimiento de un período más el segundo depósito. Un depósito más y tienes pb = ((s * rb) + s) * rb + s = s + s * rb + s * rb^2. etc. Así que después de n depósitos tienes pb = s + s * rb + s * rb^2 + s * rb^3 + ... + s * rb^(n-1). Esto se simplifica a pb = s * (rb^n - 1)/(rb - 1).

Del mismo modo, para la cantidad que obtendrías depositando a la inversión, llamémosla pi, excepto que también debes restar el importe de la comisión del corredor, b.

Así que quiere hacer depósitos cuando

pb>pi, o s*(ri^n-1)/(ri-1) - b > s*(rb^n-1)/(rb-1)

Entonces resuelve para n y ya está. Excepto... tal vez alguien que sea mejor que yo en álgebra podría resolver eso para n, pero no veo cómo hacerlo.

Esto se complica aún más porque los bancos suelen pagar los intereses mensualmente, mientras que las acciones suben o bajan cada día. Si un cálculo dice que hay que retirarse a los 3,9 meses, en realidad podría ser mejor esperar a los 4,0 meses para cobrar un mes más de intereses.

Pero veamos si podemos aproximarnos. Si las tasas de crecimiento y el número de periodos son relativamente pequeños, el crecimiento compuesto también debería ser relativamente pequeño. Así que una solución aproximada sería cuando la diferencia entre los tipos de interés, multiplicada por el importe de cada depósito, sumado sobre el número de depósitos, es mayor que la comisión. Es decir, supongamos que la inversión paga un 10% más al mes que su cuenta bancaria (muy optimista, pero sólo como ejemplo), la comisión del corredor es $10, and the amount of each deposit is $ 200. Entonces, si retrasas la inversión un mes, estás perdiendo el 10% de $200 = $ 20. Esto es más que la comisión del corredor, así que deberías invertir inmediatamente. Bien, supongamos de forma más realista que la inversión paga un 1% más al mes que la cuenta bancaria. Entonces el primer mes estás perdiendo un 1% de $200 = $ 2. El segundo mes tienes $400 in the bank, so you're losing $ 4, pérdida total durante dos meses = $6. The third month you have $ 600 en el banco por lo que pierdes un $6, total loss = $ 12. Etc. Así que deberías transferir el dinero a la inversión alrededor del tercer mes.

Si se compone, las pérdidas al traspasar a la inversión son un poco más altas que esto, por lo que sería conveniente inclinarse por el traspaso un poco antes.

O bien, podría configurar una hoja de cálculo para hacer los cálculos de capitalización mes a mes, y luego simplemente buscar en la columna cuando el total de la inversión menos el total del banco sea mayor que la comisión del corredor.

Siento no darte una respuesta definitiva, pero quizá esto te ayude.

0 votos

¿Qué es? ri ¿Aquí?

0 votos

Tienes razón en que no es posible resolver para n aquí algebraicamente. Usando métodos numéricos, probé un par de soluciones y encontré que su ecuación tendía a sobreestimar n . Sin embargo, aprecio las ideas :)

0 votos

Sí, esto sobreestima n. Eso es lo que quería decir con que "la computación significaría que las pérdidas al transferir a la inversión son un poco más altas que esto", etc. Pero aún así, utilizando los valores que has indicado anteriormente, 9% frente a 4%, $100 per deposit, and $ 10 de comisión de corredor -- Calculo según mi método: tasa delta=5% al año=0,42% al mes. 0,42%*. $100=$ 0.42. 1 mes-> $.42, 2 months->$ 1.26, 3-> $2.46, 4->$ 4.20, 5-> $6.30, 6->$ 8.82, 7-> $11.76, and we're over $ 10. Valor real utilizando una hoja de cálculo, n=7 meses, donde la diferencia es de 11,92 dólares. Así que mi estimación está fuera por 16 centavos, o menos del 2%. ...

2voto

Sergey Osypchuk Puntos 2225

El problema no es difícil de calcular, pero sí de elaborar una fórmula. Por ejemplo, si se apartan 100 dólares al mes y se invierte cada n cantidades ahorradas.

amount put aside every month                s = 100
effective bank rate of 5% to monthly rate   r = (1 + 0.05)^(1/12) - 1
effective stock rate of 10% to monthly      g = (1 + 0.10)^(1/12) - 1
brokerage fee per trade                     b = 65

saved value after n months      a = x[n] = (s ((1 + r)^(n + 1) - 1))/r
invested value after n months       z[n] = (a - b) (1 + g)^n

Con una longitud de ciclo n = 5 cantidades antes de invertir, un esquema se ve así:-

enter image description here

El importe de cada inversión a intervalos de cinco meses es de 439,09 dólares, según los cálculos del ejemplo.

100 (1 + r)^4 + 100 (1 + r)^3 + 100 (1 + r)^2 + 100 (1 + r) + 100 - 65 = 439.09

n = 5
a = x[n - 1] = 504.09

z[0] = 439.09

El esquema muestra que las inversiones se extienden sólo durante 19 meses.

El total de las inversiones de más de 60 meses, incluyendo el $100 put aside in month 60, is $ 6769,86, es decir

For j = 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0

If[j < n, x[j], z[j - n + 1]]

final values = 685.05, 658.37, 632.74, 608.11, 584.43, 561.68,
               539.81, 518.79, 498.59, 479.18, 460.52, 442.59, 100

Total = 6769.86

Si se observa una gama de duraciones de ciclo, de todos a 60 meses, los totales son erráticos.

enter image description here

Nota, j se toma del máximo, por lo que para las inversiones de más de, por ejemplo, 62 meses

j = 62, 57, 52, 47, 42, 37, 32, 27, 22, 17, 12, 7, 2

La prórroga de 600 meses suaviza la curva dando un claro óptimo de n = 18 . En el mismo n para 6000 meses; la curva es ahora estática (aunque los totales cambian). El recálculo puede hacerse para diferentes tipos de interés, importe periódico y comisión de intermediación.

enter image description here

Sin embargo, como se ha mencionado, la elaboración de una fórmula para el n no es tan fácil.

Una expresión para el total en cada n se puede obtener, por ejemplo, con

max = 60
n   = 5
d   = Quotient[max, n] = 12   (the integer quotient of max and n)
e   = Mod[max, n] = 0

enter image description here

(s ((1 + r)^(e + 1) - 1) -
   ((1 + g)^(e + 1) ((1 + g)^(d n) - 1) (b r + s - (1 + r)^n s))/
    ((1 + g)^n - 1))/r = 6769.86

Aplicando esto a la pregunta de demostración del OP

Por ejemplo, podría apartar $100 every week to invest into a stock with an expected growth of 9% p.a., but brokerage fees are $ 10/comercio. ¿Durante cuántas semanas debo acumular los 100 dólares antes de invertirlos, si puedo ponerlos en mi cuenta bancaria de alto interés al 4% anual hasta entonces?

Tomando el tipo de interés bancario como nominal compuesto mensualmente y el tipo de interés bursátil como efectivo.

enter image description here

El importe invertido al acumular cada 15 importes es

((1 + r)^14 + (1 + r)^13 + (1 + r)^12 +
 (1 + r)^11 + (1 + r)^10 + (1 + r)^9 +
 (1 + r)^8  + (1 + r)^7  + (1 + r)^6 +
 (1 + r)^5  + (1 + r)^4  + (1 + r)^3 +
 (1 + r)^2  + (1 + r) + 1) s - b = 1498.09

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X