Inspirado por la publicidad de productos estructurales en
Habré , adaptó el script de pitón para su prueba independiente. La idea principal es que estos productos ofrecen una protección del capital del 100%. Y dados los 10 años del mercado alcista, el desempeño histórico de tales productos es asombroso con un paraíso libre de riesgos.
Este artículo será interesante para los programadores principiantes de Python que estén interesados en administrar su dinero. Bueno, para algunos, esta herramienta puede ser útil para construir tales estrategias por su cuenta. Pero tenga cuidado, los corredores escriben que esto no es para todos.
El código se publica en GitHub como un bloc de notas Jupyter. Vamos!
Algunas palabras para presentar
Probaré en acciones estadounidenses y allí el rendimiento será menor que en rublos. El mercado ruso en términos absolutos en las listas es más interesante, pero tiene más riesgos. La esencia de las pruebas no cambia a partir de esto.
Tomamos los datos de las ventajas gratuitas de Alpha, donde primero necesita obtener la clave compartiendo la dirección de correo electrónico. Breve instrucción en un cuaderno. Puede tomar cotizaciones de valores rusos en Finam.
Carisma de producto estructural
Brevemente, su capital está seguro y el rendimiento es más alto que el depósito bancario (bonos del gobierno). Aquí hay algunos elementos de la ecuación que faltan:
- Siempre hay ingresos en un depósito bancario, pero existe el riesgo de jugar cero;
- Obtendrá ganancias, pero el corredor reclama una porción significativa del pastel;
- Existe una restricción en el uso del dinero invertido;
- El corredor prácticamente no asume ningún riesgo y solo participa en las ganancias.
Estrategia
Considere la estrategia más simple:
- Compramos el 90% del capital en bonos del tesoro a corto plazo;
- Para el resto, compramos un activo de alto riesgo;
- Paramos al 10% del precio al comienzo del período.
En el corazón de la estrategia: los bonos del tesoro dan 1-3% por año, prácticamente excluyendo la reducción (si hay un rendimiento). El 10% de la reducción de un activo comprado con el 10% del capital será el riesgo de que cubran los bonos. Durante los períodos del mercado alcista, algunas acciones pueden crecer varias veces, lo que nos dará felicidad.
Para repetir manualmente esta estrategia, debe realizar los siguientes pasos:
- Compra bonos. Por ejemplo, en forma de ETF.
- Compra acciones.
- Poner una orden de stop.
Cómo probar
Describiré brevemente algunas soluciones con extractos de código que hicieron que las pruebas sean bastante flexibles y convenientes.
Horario
Puede reequilibrar en los siguientes períodos: semana, mes, año. Y también en cualquier día dentro del período: el primero, enésimo, último. La clase `Schedule ()` es responsable de esto:
Ciclo de datos
StructuredProductMill().run()
Como se describe en uno de los
artículos , podemos omitir solo las fechas de reequilibrio en un ciclo y omitir los demás días. Pero luego perdemos estadísticas sobre los cambios en los activos dentro del período, no veremos rentabilidad y reducciones para cada día. Este script, en detrimento de la velocidad, circula todos los días, lo que le permite ver el valor de mercado de las posiciones abiertas y aplicar un control de orden de detención.
Reequilibrio
StructuredProductMill().rebalance()
Aquí, los activos que se pueden abrir se asignan al capital disponible. Después de comparar el cálculo con las posiciones abiertas, las transacciones se ejecutan para el número requerido:
Ofertas
StructuredProductMill().trade()
Y aquí, por velocidad, puede sacrificar detalles y controlar solo el cambio en la rentabilidad de cada posición. Pero el script tiene en cuenta las comisiones y el valor de los activos, y también mantiene un historial de transacciones, lo que le permite calcular transacciones y ejecutar una orden de detención en cualquier día de la prueba. Este método actualiza la posición y el tamaño del caché libre.
Lanzamiento
Para ejecutar, debe especificar un conjunto de activos con recursos compartidos y parámetros de prueba. Probaremos los productos estructurales para el año calendario:
En la parte inferior del cuaderno hay gráficos con rentabilidad y reducciones en la fecha de reequilibrio (al final del año), lo que confirma las reducciones extremadamente bajas de capital en el momento del informe y la rentabilidad en constante crecimiento. Aunque esta rentabilidad pierde con el amplio índice de las empresas estadounidenses S&P 500.
Resultados
Las pruebas incluyeron instrumentos estadounidenses de libre comercio desde 2011:
- BIL - ETF para bonos del Tesoro a corto plazo con un rendimiento del 2% anual al momento de la emisión. Recuerde que en el período de 2009 a 2017, las tasas fueron cercanas a cero. Una alternativa es utilizar MINT (un fondo para instrumentos de renta fija a corto plazo).
- AAPL - Stock de manzana.
- MSFT: acciones de Microsoft.
- TSLA - Acciones de Tesla.
Aapl
Este diseño generó en 8 años ingresos del 24% (2.6% anual promedio) con una reducción entre reequilibrios de -6%. Pero al final de los años, la reducción es de aproximadamente cero. La parada no se tocó, el mercado con el 180% de los ingresos perdió el orden.

Rentabilidad y reducción para cada día (rentabilidad a la izquierda, reducción a la derecha).

Rentabilidad y reducción en la unión de años (rentabilidad a la izquierda, reducción a la derecha).
Msft
Este diseño generó en 8 años ingresos del 26% (promedio anual 2.75%) con una reducción entre reequilibrios de -2%. En el cruce de años, no hay reducción.


TSLA
Este diseño generó en 8 años ingresos del 45% (4.6% anual promedio) con una reducción entre reequilibrios de hasta -15%. Pero todo esto en 2013, cuando Tesla creció casi 5 veces. Al final del año, la reducción es de hasta -2%. El pasajero más agitado, pero también rentable.


Conclusión
El Bloc de notas le permite probar cualquier composición de cartera. Estos pueden ser fondos humerales o varias compañías. Aunque generalmente sin un activo de protección.
Repositorio de GitHub .