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 riesgo. 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 StocksTrader 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 StocksTrader. 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 StocksTrader Strategy Builder es un módulo interno y fácil de usar, que permite a los comerciantes minoristas diseñar, realizar pruebas retrospectivas e implementar estrategias de negociación algorítmica sin ningún conocimiento de lenguajes de programación.

Plataforma de negociación R StocksTrader 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 StocksTrader Strategy Builder.
Imagen: Backtesting. Asistente de estrategia en R StocksTrader 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 StocksTrader Strategy Builder.
Imagen: backtesting. Operaciones históricas en R StocksTrader Strategy Builder.

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

Las herramientas

Software de investigación y comercio automatizado

Excel, R StocksTrader Strategy Builder (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 #

Datos

  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


El material es preparado por

Editor en jefe de R Blog.