Creación de sistemas de comercio algorítmico: 2 enfoques principales, pruebas, herramientas

Creación de sistemas de comercio algorítmico: 2 enfoques principales, pruebas, herramientas

Puntos de vista: vistas 476
Tiempo de leer: 6 min



Los componentes principales de un sistema de comercio algorítmico son herramientas de investigación, rendimiento, facilidad de desarrollo, resistencia y pruebas, separación de preocupaciones, familiaridad, mantenimiento, disponibilidad del código fuente, costos de licencia y madurez de las bibliotecas. Antes de decidir sobre la "mejor" herramienta, con la cual escribir un sistema de comercio automatizado, es necesario definir los requisitos:

  1. ¿Cuál será la frecuencia de negociación y el probable volumen de negociación?
  2. ¿El sistema requerirá gestión de riesgos o módulo de construcción de cartera?
  3. ¿El sistema requerirá una prueba de rendimiento de alto rendimiento?

Los traders, que requieren sistemas más complejos y personalizados, pueden necesitar usar C #, Matlab o Python, pero diría que para el otro 95% de los traders diarios será suficiente el Algorithmic Trading Software.

1 - Calcular en Python, Matlab, C #

En este caso, la habilidad de programación es un factor importante para crear un algoritmo automatizado estrategia de negociación. Tener conocimientos en un lenguaje de programación, como Python o R, le permitirá crear el almacenamiento de datos de extremo a extremo, el motor de prueba y el sistema de ejecución usted mismo. Le permite explorar las estrategias de mayor frecuencia ya que tendrá el control total de su "pila de tecnología". Si bien esto significa que puede probar su software y eliminar errores, también significa más tiempo dedicado a codificar infraestructura y menos a implementar estrategias, al menos en la primera parte de su carrera de algotrading.

El flujo de trabajo básico es el siguiente:

  • Una estrategia de negociación algorítmica alimenta los datos del mercado (históricos o en vivo) en un programa informático (backtest o ejecución automatizada).
  • Luego, el programa envía pedidos a un agente a través de una API y recibe notificaciones de estado del pedido del agente.

MATLAB y Python han sido mis plataformas favoritas de backtesting. Tiene una interfaz muy completa y fácil de usar para desarrollar y depurar programas, y tiene una amplia gama de cajas de herramientas que cubren casi todas las técnicas matemáticas o computacionales arcanas que probablemente encontrará en el desarrollo de estrategias comerciales.

Importación de datos históricos de Yahoo Finance a Python
Imagen: importación de datos históricos de Yahoo Finance a Python
El proceso de comercio algorítmico
Imagen: el proceso de negociación algorítmica

2 - Software de comercio algorítmico. Sin habilidades de codificación

El segundo enfoque son las herramientas algorítmicas, como Multicharts, StrategyQuant o R Trader Strategy Builder (gratuitas y fáciles de usar, basadas en la nube), y muchas más.

Los días en que el comercio algorítmico fue implementado solo por profesionales han terminado. No es necesario pasar horas aprendiendo C # cuando casi todos los sistemas y estrategias se pueden codificar con StrategyQuant, Multicharts o Creador de estrategias de R Trader. En nuestra experiencia, algunos operadores / programadores quieren tomar el camino largo hacia la meta a menudo bajo la apariencia de superioridad técnica, confíen en nosotros, la mayor parte de la codificación avanzada no es necesaria para la estrategia de negociación algorítmica promedio. Crear sus API o personalizar todo con MetaTrader puede ser muy derrochador, especialmente si se atasca con detalles técnicos en lugar de crear valor.

Todas las plataformas tienen sus aspectos positivos y negativos, para nosotros, R Trader Strategy Builder es un módulo interno fácil de usar basado en la propiedad, que permite a los comerciantes minoristas diseñar, probar y desplegar estrategias de negociación algorítmica sin ningún conocimiento de lenguajes de programación.

Plataforma de negociación R Trader tiene una forma más sencilla de abandonar el comercio tradicional de apuntar y hacer clic. Diseñada tanto para operadores experimentados como para recién llegados, nuestra interfaz fácil de usar le permite automatizar sus estrategias comerciales en minutos. Sin codificación ni complicaciones: estará listo y funcionando en muy poco tiempo.

Backtesting. Asistente de estrategia en R Trader Strategy Builder.
Imagen: Backtesting. Asistente de estrategia en R Trader Strategy Builder.

Prueba y evaluación de sistemas comerciales

La investigación se refiere a la evaluación del desempeño de la estrategia sobre los datos históricos. El proceso de evaluación de una estrategia comercial sobre datos de mercado anteriores se conoce como backtesting.

El comercio algorítmico se distingue de otros tipos de clases de inversión porque podemos proporcionar expectativas más confiables sobre el rendimiento futuro del rendimiento pasado. En términos simples, el backtesting se lleva a cabo exponiendo su algoritmo de estrategia particular a una secuencia de datos de precios históricos, lo que conduce a un conjunto de señales de negociación. Cada operación tendrá una ganancia o pérdida asociada. La acumulación de esta ganancia / pérdida a lo largo de su backtest de estrategia conducirá a una ganancia y pérdida total.

¿Cuáles son las razones clave para probar una estrategia algorítmica?

Filtración

Nuestro objetivo en la etapa inicial de investigación es filtrar cualquier estrategia que no cumpla con ciertos criterios. Backtesting nos proporciona otro mecanismo de filtración, ya que podemos eliminar estrategias que no satisfacen nuestras necesidades de rendimiento.

Modelado

Backtesting nos permite (¡con seguridad!) Probar nuevos modelos de ciertas condiciones del mercado.

Dentro de la muestra y fuera de la muestra

Al probar una idea en datos históricos, es bueno reservar un período de datos históricos para fines de prueba. Los datos históricos iniciales, en los que se prueba y optimiza la idea, se denominan datos en la muestra. El conjunto de datos que se ha reservado se conoce como datos fuera de muestra. Esta configuración es una parte importante del proceso de evaluación porque proporciona una forma de probar la idea en datos que no han sido un componente en el modelo de optimización. Como resultado, la idea no habrá sido influenciada de ninguna manera por los datos fuera de la muestra, y los operadores podrán determinar qué tan bien podría funcionar el sistema con los nuevos datos, es decir, en el comercio de la vida real.

Optimización de una estrategia de negociación algorítmica.

Aunque la optimización de la estrategia está cargada de sesgos, las pruebas de respaldo nos permiten aumentar el rendimiento de una estrategia modificando los valores de los parámetros asociados con esa estrategia y volviendo a calcular su rendimiento. El sobreajuste (ajuste de curvas) es un problema grave en todas las áreas relacionadas con la minería de datos, y debe tener cuidado al usar la validación y los conjuntos de prueba adecuados. Por esa razón, podría implementarse una variedad de métodos, como volver a probar con diferentes configuraciones, simulaciones de Monte-Carlo, Walk-Forward-Matrix, Walk-Forward-Optimization, Multiple of Out-Of-Sample.

Pruebas de rendimiento hacia adelante

El comercio de demostración o el comercio en papel proporciona a los operadores otro conjunto de datos fuera de la muestra, para evaluar un sistema. La prueba de rendimiento hacia adelante es una simulación del comercio real e implica seguir la lógica del sistema en un mercado en vivo. Un aspecto importante de las pruebas de rendimiento avanzadas es seguir exactamente la lógica del sistema; de lo contrario, se hace difícil, si no imposible, evaluar con precisión este paso del proceso. Muchos corredores, así como RoboMarkets, ofrecen una cuenta de operaciones simuladas donde se pueden realizar operaciones y calcular las ganancias y pérdidas correspondientes. El uso de una cuenta de negociación de demostración puede crear un entorno semi-realista, en el que practicar la negociación y evaluar aún más el sistema.

Imagen: backtesting. Un gráfico en Python.
Imagen: backtesting. Un gráfico en Python.
Backtesting. Operaciones históricas en R Trader Strategy Builder.
Imagen: backtesting. Operaciones históricas en R Trader Strategy Builder.

Por último, pero no menos importante, me gustaría discutir las herramientas que serán útiles en esta esfera.

Herramientas

Software de investigación y comercio automatizado

Excel, Creador de estrategias de R Trader (https://rtrader.umstel.com - software libre), StrategyQuant (tarifa de licencia), MultiCharts (tarifa de licencia), TradeStation (tarifa de licencia), Wealth-lab (tarifa de licencia).

Código

Matlab, Python, R, C #

Fecha de la cita

  1. Datos de sentimientos sociales (de Twitter y otras redes sociales, ver ISentium, TickerTags)
  2. Datos provenientes de multitudes (ver Estimación)
  3. Datos de comportamiento (ver Cabot Research)
  4. Imágenes satelitales y aéreas (ver Insight Orbital)
  5. Datos de comportamiento del consumidor (ver Lealtades de marca)
  6. Recursos en línea no tradicionales (ver Knowsis)
  7. OTAS (Datos técnicos)

Otros proveedores

Grupo TIM, Discern, Essentia, Kensho, RavenPack, SocialMediaAnalytics, Ayasdi, TheySay Analytics, Quid, Rage Frameworks, Dataminr.

Libros (en ingles)

  1. Comercio cuantitativo: cómo construir su propio negocio de comercio algorítmico - Ernest Chan
  2. Comercio algorítmico: estrategias ganadoras y su fundamento - Ernest Chan
  3. Machine Trading: desplegar algoritmos informáticos para conquistar los mercados - Ernest Chan
  4. Comercio algorítmico y DMA: una introducción a las estrategias de comercio de acceso directo - Barry Johnson
  5. Comercio e intercambios: microestructura de mercado para profesionales - Larry Harris

1. arXiv http://arxiv.org/archive/q-fin
2. SSRN https://www.ssrn.com/en/
3. Revista de estrategias de inversión https://www.risk.net/journal-of-investment-strategies
4. Revista de finanzas computacionales https://www.risk.net/journal-of-computational-finance
5. Finanzas Matemáticas https://onlinelibrary.wiley.com/journal/14679965

Resumen

Como podemos ver, existen diferentes enfoques para la creación de estrategias de negociación algorítmica. Puede elegir cualquiera que se adapte a su nivel de conocimiento y oportunidades. También, backtesting y desarrollo posterior, después del cual solo podemos pasar a la práctica.

Si tiene alguna pregunta, me complacerá responderla en los comentarios a continuación.

Abrir cuenta comercial




Comentarios

Artículo anterior

Una semana en el mercado (01/13 - 01/19): estadísticas y decisiones de los bancos centrales

La nueva semana de enero parece bastante habitual. Tenemos las estadísticas, la política, así como algunas decisiones monetarias. Parece que las economías globales y los mercados de capitales están trabajando a gran escala después de las vacaciones de Navidad y Año Nuevo.

Artículo siguiente

3 acciones para comprar en 2020: Delta Air Lines, HP, Morgan Stanley

El ciclo de 12 años del crecimiento de la economía de los Estados Unidos continúa. Este es el período más largo para estar sin crisis. El comienzo de 2020 sigue animando a los inversores, las acciones siguen renovando máximos históricos. Los que los compraron antes se vuelven más felices.