1 votos

Experimento y pregunta sobre la inversión de impulso

Ayer pensaba en lo que pasaría si siguiera la siguiente estrategia de inversión:

  1. Sean A, B y C el precio de las acciones hace dos meses, el mes pasado y hoy, respectivamente.
  2. Si A > B < C, compre todas las acciones que pueda, ya que el precio acaba de empezar a subir.
  3. Si A < B > C, vende todas las acciones, ya que el precio acaba de empezar a caer.
  4. Repetir ad infinitum

Básicamente, la idea es llegar un día tarde al momento en que un Oráculo decidiría comprar/vender una acción. Descargué datos históricos del S&P 500 desde 1871 y escribí un script en Python para probar mi idea. Los datos sólo tienen una resolución de un mes, así que terminé dividiéndolos en intervalos de 10 años, para ver si la estrategia anterior sería mejor o peor que simplemente comprar y mantener durante todo el período.

El resultado fue que, en un total de 1.647 periodos de 10 años, la estrategia anterior ganó 1.172 veces y perdió las otras 475, lo que significa que fue la mejor opción algo más del 70% de las veces en cualquier tramo de 10 años.

Estoy bastante seguro de que mi código es exacto, pero si mi conclusión parece muy equivocada, hágamelo saber. Mi pregunta principal es la siguiente: ¿He (re)descubierto una estrategia que es arriesgada pero, en promedio, mejor que la inversión pasiva, al menos con respecto a los datos históricos del S&P 500? Hay dos grandes periodos de pérdidas cuando se empieza entre 1942 y 1960 y cuando se empieza entre 1970 y 1992, lo que hace que la tasa de éxito esté más o menos igualada cuando se miran los últimos 100 años. ¿Hay alguna suposición que esté haciendo que explique por qué esta estrategia no funcionaría tan bien como parece? Dudo mucho que se me haya ocurrido una estrategia de inversión brillante que rompa el mercado.

2voto

Michal Kališ Puntos 16

El gran truco para robotizar el mercado es la velocidad de cambio de los precios. Obviamente, su algoritmo es conceptualmente sólido. Comprar bajo, vender más alto si el precio parece estar cayendo. ¿Con qué frecuencia se ejecuta este script? ¿Mensualmente? ¿Semanal? ¿Cada noche? ¿Cada 10 minutos? ¿Cada minuto? ¿Cuándo observa el cambio en el movimiento de los precios? ¿Cuál sería un precio suficientemente apreciado para que usted esté dispuesto a vender? ¿A qué velocidad tendría que haber caído el precio desde ahí para que realmente ejecute una venta? ¿Y si el precio cae por debajo de tu coste, promedias a la baja o te sales?

Puedes hacer todo el backtest que quieras utilizando precios de cierre diarios, pero la vida y el mercado son MUY diferentes en tiempo real. Ciertamente se puede argumentar que el mercado actual simplemente no es lo suficientemente similar al mercado de los años 60 para que ese backtesting sea válido de todos modos. Pero creo que el mayor problema con su método es simplemente que ignora el aspecto del tiempo real del mercado en vivo. Tu conjunto de datos históricos de baja resolución tiene muy poca relación con el mercado real de mañana.

Las medias macro y los conjuntos de datos históricos de baja resolución no preparan suficientemente para la realidad del día a día. Además, sin tener en cuenta que los mercados evolucionan con el tiempo, ni siquiera los datos de alta resolución de hace varias décadas, y que no se tienen en cuenta los diferenciales de compra y venta.

Si crees que tu algoritmo funciona, déjalo correr. Configure un servidor de prueba, recopile datos de mercado en vivo y déjelo funcionar durante los próximos dos meses.

1voto

Lorin Hochstein Puntos 985

No hay suficiente información aquí para responder a su pregunta.

Ganar un 70% de las veces no es suficiente, si la media de victorias se traduce en un $1 gain while the average loss results in a $ 5 pérdida, por ejemplo. Tampoco tienes en cuenta los costes de negociación, por lo que veo. Además, no pareces estar teniendo en cuenta que no puedes comprar o vender a tus precios de contado. Si la acción cierra a $100, down from $ 120, es posible que no puedas venderlo por $100. You might only get $ 80 por esa acción, por ejemplo.

No digo que tu estrategia no vaya a funcionar, sólo que creo que no estás considerando lo suficiente en este momento.

1voto

bwp8nt Puntos 33

Para repetir lo que dijo @ChrisInEdmonton, no hay suficiente información aquí para responder a su pregunta. Además, carece de los parámetros adecuados para ser precisa.

Hay que tener en cuenta el tamaño de la ganancia media por operación ganadora y la pérdida media por operación perdedora. Aunque las comisiones deben tenerse en cuenta, no van a ser significativas dado el número de operaciones a lo largo de 147 años, bueno, al menos en base a las tasas de comisión de los últimos 25 años más o menos.

También hay que tener en cuenta la duración de las operaciones perdedoras. Es estupendo si tienes una racha de victorias prolongada, pero si entras en una racha de pérdidas de varios años, te vas a tirar al agua y perderás el potencial de ganancias a largo plazo, suponiendo que se trate de un sistema ganador.

Si se utiliza el precio de cierre para la prueba, la apertura del valor a la mañana siguiente es una incógnita. Tal vez obtengas más, tal vez obtengas menos, pero dado que el mercado cae unas 3 veces más rápido de lo que sube, esto también podría estar sesgando los resultados a tu favor.

No se pueden hacer pruebas efectivas en periodos de 10 años consecutivos. Tiene que hacerse de forma continua sobre datos diarios, ya que de lo contrario podrían excluirse posibles caídas (piense en el Brexit y otras correcciones violentas a corto plazo). Si se observan los datos mensuales, pueden quedar excluidos.

Sus resultados parecen ser un punto de partida, pero lo que tiene hasta ahora no es en absoluto concluyente. Hay que afinar más.

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