Mis principios fundamentales para el desarrollo de alfas son:
1) Velocidad de iteración 2) Accesibilidad
¿Qué significa esto?
El primero es bastante claro. Si pruebas 10 alfas al día y los demás solo prueban 2 cada día, lo harás mucho mejor que los demás.
¿Cómo puedes conseguir esto?
Bueno, primero, descartemos el scraping de datos y el preprocesamiento. Si no tienes scripts para hacer esto automáticamente, ya estás NGMI. Esto es lo mínimo indispensable.
A continuación, consigue una librería de carga de datos. No deberías tener que reescribir ese código de glob.glob(folder_path) etcétera, etcétera. Deberías usar:
Después, están los datos de investigación. ¿Qué son los datos de investigación?
Bueno, puedes empezar teniendo un universo. No deberías perder tiempo definiendo manualmente un universo (y, en realidad, debería estar estandarizado de todos modos). Así que deberías cargar un archivo con los X principales símbolos por volumen de 30 días, capitalización de mercado, liquidez de 30 días o lo que elijas. Realmente puedes experimentar con esto.
A partir de aquí podemos mirar los retornos, deberíamos tener retornos por factor, retornos idiosincráticos, retornos recortados y, por supuesto, retornos brutos. ¡TODO PREGENERADO!
Por último, tenemos que asegurarnos de que podemos testear todas nuestras alfas y el código para hacerlo debe ser rapidísimo. Puedes pensar que solo son X minutos, pero cualquier cosa que supere unos pocos minutos es un cambio de contexto enorme y afecta directamente a la productividad.
Ya hemos cubierto la velocidad de iteración, ahora vamos con la accesibilidad.
La accesibilidad es lo fácil que resulta hacer un análisis determinado. Es el componente de calidad en el problema de optimización calidad vs cantidad. Por ejemplo, si quiero hacer un análisis de estacionalidad pero decido saltármelo para poder probar otro alfa, eso es falta de accesibilidad. Si decido no hacer un análisis de correlación + residualización porque prefiero testear otro alfa, eso también es falta de accesibilidad.
Tus herramientas deberían permitirte hacer rápidamente estos tipos de análisis comunes. Esto aplica a optimización, markouts, TCA, TWAP óptimo, etc. Todo esto debería requerir el mínimo trabajo posible para que lo ejecutes, porque cuanto más trabajo cueste, MENOS LO HARÁS y la calidad de tu investigación disminuirá.
En resumen, deberías centrarte en hacer que el análisis principal sea más rápido y que el análisis adicional, que mejora la calidad de tu investigación, sea mucho más ágil de realizar. Al optimizar ambos, te aseguras de producir investigación de altísima calidad mucho más rápido que los demás.
Esta es tu ventaja. Si haces 5 veces más que los demás en el mismo tiempo, puedes generar mucho más PnL.
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
Mis principios fundamentales para el desarrollo de alfas son:
1) Velocidad de iteración
2) Accesibilidad
¿Qué significa esto?
El primero es bastante claro. Si pruebas 10 alfas al día y los demás solo prueban 2 cada día, lo harás mucho mejor que los demás.
¿Cómo puedes conseguir esto?
Bueno, primero, descartemos el scraping de datos y el preprocesamiento. Si no tienes scripts para hacer esto automáticamente, ya estás NGMI. Esto es lo mínimo indispensable.
A continuación, consigue una librería de carga de datos. No deberías tener que reescribir ese código de glob.glob(folder_path) etcétera, etcétera. Deberías usar:
load_data(
start_date=start_date,
end_date=end_date,
symbol=symbol,
etc
)
Después, están los datos de investigación. ¿Qué son los datos de investigación?
Bueno, puedes empezar teniendo un universo. No deberías perder tiempo definiendo manualmente un universo (y, en realidad, debería estar estandarizado de todos modos). Así que deberías cargar un archivo con los X principales símbolos por volumen de 30 días, capitalización de mercado, liquidez de 30 días o lo que elijas. Realmente puedes experimentar con esto.
A partir de aquí podemos mirar los retornos, deberíamos tener retornos por factor, retornos idiosincráticos, retornos recortados y, por supuesto, retornos brutos. ¡TODO PREGENERADO!
Por último, tenemos que asegurarnos de que podemos testear todas nuestras alfas y el código para hacerlo debe ser rapidísimo. Puedes pensar que solo son X minutos, pero cualquier cosa que supere unos pocos minutos es un cambio de contexto enorme y afecta directamente a la productividad.
Ya hemos cubierto la velocidad de iteración, ahora vamos con la accesibilidad.
La accesibilidad es lo fácil que resulta hacer un análisis determinado. Es el componente de calidad en el problema de optimización calidad vs cantidad. Por ejemplo, si quiero hacer un análisis de estacionalidad pero decido saltármelo para poder probar otro alfa, eso es falta de accesibilidad. Si decido no hacer un análisis de correlación + residualización porque prefiero testear otro alfa, eso también es falta de accesibilidad.
Tus herramientas deberían permitirte hacer rápidamente estos tipos de análisis comunes. Esto aplica a optimización, markouts, TCA, TWAP óptimo, etc. Todo esto debería requerir el mínimo trabajo posible para que lo ejecutes, porque cuanto más trabajo cueste, MENOS LO HARÁS y la calidad de tu investigación disminuirá.
En resumen, deberías centrarte en hacer que el análisis principal sea más rápido y que el análisis adicional, que mejora la calidad de tu investigación, sea mucho más ágil de realizar. Al optimizar ambos, te aseguras de producir investigación de altísima calidad mucho más rápido que los demás.
Esta es tu ventaja. Si haces 5 veces más que los demás en el mismo tiempo, puedes generar mucho más PnL.