Comencé a construir una aplicación de backtesting en Python para probar y optimizar estrategias de trading, pero he pausado para evaluar si debo continuar con el desarrollo o comprar software para acelerar el progreso.
Mis consideraciones incluyen la velocidad de procesamiento y datos, el costo y el tiempo de implementación, y el tiempo de uso de mi software para operar.
Me gustaría recibir consejos y opiniones sobre si tiene sentido migrar mis pruebas a una plataforma o continuar construyendo, comprando datos y aumentando la velocidad configurando infraestructura en la nube.
Velocidad de procesamiento: Mis pruebas iniciales de velocidad sugieren que el software (por ejemplo, TradeStation) procesa mucho más rápido, como se esperaba. Estoy utilizando procesamiento en paralelo y algoritmos para aumentar la velocidad, pero creo que tal vez necesite configurar infraestructura de computación en la nube para mejorar la velocidad aún más (si es necesario).
Fuentes de datos: Quiero probar estrategias de opciones, pero obtener estos datos no es tan sencillo. Por ejemplo, TradeStation no parece tener datos históricos de opciones para contratos vencidos, y algunas fuentes de datos no son "reales", sino que se calculan utilizando modelos (por ejemplo, Black-Scholes). Algunos brókers ofrecen datos de opciones, otros ofrecen backtesting, pero pocos ofrecen ambas cosas.
Exportar resultados de backtests: No quiero que esto limite la escalabilidad de las pruebas. El código Python local solo está limitado por mis GPUs, pero el software externo puede no permitir descargas de datos o imponer restricciones.
Otras consideraciones
- Pérdida de personalización — ¿Perderé la capacidad de personalizar aspectos que podrían afectar los resultados, como cambiar los algoritmos de optimización (genéticos, vectoriales, de malla, etc.)?
- Otras ventajas — Puede haber beneficios adicionales como seguridad, actualizaciones y más.
- Costo/Tiempo — Para obtener datos de opciones confiables, es posible que necesite suscribirme a un servicio. Exportar datos de opciones podría ser más caro que ejecutar pruebas en su plataforma.
Posibilidades
QuantConnect ofrece datos históricos de opciones para contratos vencidos, una API y compatibilidad con Python. Publicita "pruebas ilimitadas", pero los usuarios pueden encontrarse con límites de registro relacionados con el guardado de resultados.
TradingView es personalizable pero utiliza Pine Script, no Python. Tiene una API pero no datos de opciones; aunque podría ser posible importar datos de opciones de otras plataformas.
Continuar con el desarrollo requerirá configurar el entorno adecuado de dev ops y computación en la nube para aumentar la velocidad. También necesitaré comprar e integrar datos de opciones confiables.
Resumí cuáles creo que son los pros y los contras de los diferentes enfoques, así como lo que pienso acerca de cada enfoque en la tabla a continuación.
Opciones
Pro
Contras
Entre líneas
Velocidad, capital, datos históricos de opciones, API, utiliza Python
Las "pruebas ilimitadas" pueden estar limitadas por límites de registro
El más rápido pero potencialmente el más costoso de escalar.
Datos de capital, posible importación de datos de opciones, backtesting ilimitado
Utiliza Pine Script (no Python), no datos históricos de opciones
Se necesitan soluciones alternativas para importar/exportar datos de opciones y resultados de backtests
Continuar con el desarrollo
Backtesting ilimitado, más económico
Debo configurar infraestructura en la nube y software
El más lento, con posibles obstáculos desconocidos más allá de otras soluciones
Preguntas
- ¿Debería priorizar la construcción de infraestructura de backtesting en la nube o migrar a una plataforma existente como QuantConnect, TradingView u otro proveedor?
- ¿Qué tan significativos son los límites de registro o las restricciones para descargar datos de plataformas como QuantConnect o TradingView para backtesting a gran escala?
Agradezco de antemano sus comentarios.