5 votos

¿Cómo calcular (eficientemente) el máximo rendimiento posible de una estrategia de inversión perfecta con una "bola de cristal"?

Soy nuevo en el mundo de la inversión, así que disculpe la torpeza de la pregunta... probablemente haya un término mejor para lo que busco o tal vez incluso sea un problema conocido/clásico. Si es así, por favor, indíqueme la dirección correcta ;-)


Motivación

Las estrategias de inversión se comparan con "el mercado", que suele ser algún índice ponderado de algunos / todos los valores de un universo determinado. Sin embargo, la elección de la cartera de mercado es algo arbitraria cuando puede ser definida por el inversor. Una comparación del alfa/rendimiento de las estrategias de dos inversores podría ser bastante difícil cuando un inversor compara su estrategia con la cartera de mercado A mientras que otro lo compara con la cartera del mercado B .

Pensando en este problema acabé con la siguiente idea: ¿Por qué no comparar cada estrategia con el hipotético rendimiento óptimo que podría alcanzarse dentro del universo y el plazo pertinentes? si uno tuviera una bola de cristal Es decir, comprando/vendiendo por arte de magia la combinación de valores que le llevaría a obtener la máxima rentabilidad.

Para cada conjunto de restricciones de inversión, sólo existe (normalmente) una estrategia óptima de este tipo y, por tanto, el "Regreso de la bola de cristal" sería la referencia ideal para comparar objetivamente las estrategias de inversión.

El problema

Para simplificar, supongamos que tenemos un universo que consiste en n (con precios al final del día) y están buscando un marco temporal de inversión de d días de negociación. Estamos invirtiendo una cantidad predefinida de dinero m (suficiente para comprar al menos una de cada acción) y hay una comisión pequeña pero no despreciable f para cada transacción. Podemos cambiar la cartera (comprar/vender acciones) una vez al día, pero no es necesario. Todos los rendimientos se componen. ACTUALIZACIÓN : Para simplificar (y limitar la rentabilidad), no se permite la venta en corto.

Mi pregunta es:

¿Cómo se puede calcular eficazmente la secuencia de acciones de compra/venta que conduce a la máxima rentabilidad posible?

A mí esto me huele a programación dinámica, sin embargo, tal vez me estoy perdiendo algo. La formulación del problema parece tan común que espero que haya un artículo/solución seminal que me pueda indicar.

Si usted proporciona una solución, por favor, trate de dar alguna indicación de su complejidad de tiempo / espacio. Gracias.


Nota: A primera vista, las comisiones parecen ser una limitación necesaria, ya que sin ellas la estrategia óptima consistiría simplemente en mover todo el dinero diariamente hacia la acción que más crece.

2 votos

Creo que tienes razón en el hecho de que añadir tasas hace que la solución no sea trivial. Pero no obstante no creo que sea útil para las comparaciones. En primer lugar, supongo que la cartera seguirá consistiendo en un activo cada vez. El algoritmo asignará todo el dinero al activo "óptimo" durante algún periodo de tiempo. ¿Por qué habría que dividir el dinero? En segundo lugar, el rendimiento resultante será muchas veces mejor que cualquier cartera realista. Si se permite la venta en corto, los posibles rendimientos no están limitados en absoluto.

0 votos

Este es un problema estándar y fácilmente resuelto usando DP en O(n) tiempo y espacio. También las observaciones de user22686 son correctas, es fácil demostrar que la estrategia óptima es una estrategia de todo o nada, nunca habrá más de un instrumento en la cartera.

0 votos

@user22686 ¡Gracias! Tienes toda la razón, la cartera siempre estará formada por un instrumento a la vez. Esto no se me había ocurrido antes. Eso debería facilitar mucho la solución. En cuanto a la utilidad: En mi opinión, el hecho de que cualquier estrategia en la vida real sólo capture una fracción de la rentabilidad teóricamente alcanzable está bien. Todavía se puede comparar objetivamente una estrategia que rinde el 16% de la rentabilidad hipotéticamente posible con otra que rinde el 14%.

3voto

exp1orer Puntos 146

Para mí, eso también olía a programación dinámica. Después de aplicar una solución de programación dinámica según http://www.cs.rpi.edu/~magdon/courses/cf/notes/optimal.pdf y otras fuentes del mismo autor, me di cuenta de que la programación dinámica podría no ser realmente necesaria en absoluto.

Al final, lo que quieres es poner todo tu valor en el único activo $a_t $ cuyo precio $r(a) $ será el que más crezca en el siguiente paso temporal entre todos los activos $A $ .

$$ a_t = \max_{x \in A}\Big(~\frac{r_{t+1}(x)}{r_t(x)}~\Big) $$

La "trayectoria de inversión" (serie de activos objetivo para cada momento) $[~a_0, a_1, ..., a_T ~] $ que resulta de la solución codiciosa anterior es idéntica a la generada por el enfoque de programación dinámica. En retrospectiva, eso también tiene sentido.

Las cosas se complican un poco más cuando hay que tener en cuenta las comisiones, pero no demasiado. Para conseguir el activo objetivo en $t + 1 $ mientras se consideran las tasas, sólo hay que tomar la $max $ como antes pero multiplicando la tasa de crecimiento de cada activo diferente al que tienes en $t - 1 $ con $1. - fee $ . (En el caso de que las comisiones sean constantes, tendría que multiplicar el ratio por el valor actual de su cartera y restarle la comisión por cada $x \in A $ .)

$$ a_t = \max_{x \in A}\Big(~\frac{r_{t+1}(x)}{r_t(x)} * \big(1. ~\text{if}~ x == a_{t-1} ~\text{else}~ (1. - fee) \big) ~\Big) $$

La programación dinámica todavía tiene un valor aquí en caso de que usted tiene restricciones como el número máximo de operaciones. Sin embargo, si no las tiene, no veo por qué molestarse con ella.

1 votos

Perfecto, ¡gracias!

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