Los bots son programas que corren todo el tiempo y que hacen algo de forma bastante autónoma. Los trading bots son programas que corren todo el tiempo y que tradean de forma autónoma.
En las últimas secciones hablamos de algoritmos. ¿Cómo se relacionan los algoritmos y los programas/bots?
Como dijimos antes, los algoritmos son solo listas de pasos que hay que dar para lograr un objetivo. Es por eso que los algoritmos se pueden describir en español. Las computadoras, sin embargo, no entienden español. No pueden ejecutar instrucciones escritas en español o cualquier otro idioma natural, como alemán, inglés o chino. Sólo pueden ejecutar programas y los programas se escriben en lenguajes de programación. Los bots, o más generalmente, los programas, son «implementaciones» de algoritmos. Se dice que alguien que escribe un programa de computadora que puede ejecutar un algoritmo dado «implementa» este algoritmo.
O sea, los traders que automatizan su trading básicamente tienen dos tareas: Necesitan inventar una estrategia de trading, también conocida como algoritmo de trading, y necesitan implementar este algoritmo, es decir, escribir un programa que pueda conectarse a una cuenta bancaria (con dinero real o con dinero virtual) y que ejecute este algoritmo, es decir, que tradee de forma autónoma. Sin embargo, por lo general lo harán en un solo paso: Inventarán una estrategia de trading y la escribirán directamente como código en algún lenguaje de programación.
Esta es una forma típica de desarrollar estrategias de trading:
Un desarrollador escribe una primera versión de su estrategia de trading, llamémosla «s1». Prueba su estrategia con datos históricos, un proceso conocido como «backtesting» y descubre que s1 no funciona como él quería. Así que el desarrollador modifica s1 un poco. En otras palabras, crea una nueva estrategia, llamémosla «s2» que es muy similar a s1. Luego backtestea s2 para ver si funciona. Modificará y probará sus estrategias hasta que alguna versión de la idea original, tal vez s412, finalmente parezca ser rentable sugún los datos históricos.
Obviamente, esto es mucho trabajo manual. Y este trabajo manual se complica aún más por el hecho de que las plataformas para las que los desarrolladores escriben estrategias de trading a menudo tienen ciertas restricciones. Un ejemplo: Una de las plataformas más populares, «Metatrader 4», o «MT4» para abreviar, permite desarrollar estrategias que tradean con varios instrumentos, como EURUSD (euros vs. dólares estadounidenses) y GBPJPY (libras británicas vs. yenes japoneses), pero no permite backtestear dichas estrategias. Por lo tanto, un trader que quiera desarrollar una estrategia que tradee con varios instrumentos tendría que desarrollar una estrategia para cada instrumento, backtestear todas estas estrategias y luego encontrar una forma de combinar los resultados de los backtests de las diferentes estrategias. Tendría que hacer esto por su cuenta, es decir, tendría que escribir un software completamente nuevo para esto, porque la plataforma MT4 no permite combinar backtests de diferentes estrategias.
Una solución obvia podría ser usar una plataforma diferente.
De hecho, existen otras plataformas de bots de trading y algunas tienen ventajas sobre MT4. Pero todas también tienen graves desventajas. Una de las desventajas más importantes de las otras plataformas es que no son muy comunes. No hay muchos «brokers» (más o menos: bancos que le permitan usar bots de trading) que ofrezcan la plataforma para la que ha escrito su bot de trading, si no utiliza la plataforma Metatrader. Y, hay una gran desventaja que, por lo que sabemos, todas estas plataformas tienen en común: No permiten que los desarrolladores automaticen al máximo su trabajo.
Como se explicó anteriormente, un desarrollador de bots de trading generalmente comenzará con alguna estrategia comercial preliminar implementada como un bot de trading preliminar. Es decir, desarrollará su primera estrategia s1. Luego backesteará s1, modificará esta estrategia y la backtesteará de nuevo.
Pero, ¿qué significa realmente «modificar»?
Significa que el desarrollador cambia ciertos parámetros de su estrategia. Reconsideremos nuestro ejemplo de las últimas secciones: Empezamos con la idea de comprar oro después de que su precio haya caído tres días seguidos. La idea de tres días podría no funcionar, pero tal vez cuatro días (de que los precios del oro caigan seguidos) sí funcionarían. Ese es un parámetro de una estrategia: El número de días que el precio del oro necesita estar cayendo. ¿No sería genial si los desarrolladores no tuvieran que modificar este parámetro y todos los demás parámetros manualmente y luego rehacer sus backtests manualmente?
Es por eso que desarrollamos Algocrowd. Todas las plataformas de bots de trading que hemos analizado permiten cierta «parametrización», es decir, algún tipo de automatización del desarrollo de estrategias de trading. Pero en todas estas plataformas las posibilidades de automatización son muy limitadas. Lo que no puede hacer con ninguna de las muchas plataformas que examinamos es simplemente desarrollar componentes básicos para estrategias de trading y hacer que un algoritmo cree nuevas estrategias de trading con estos componentes básicos de una manera completamente automatizada.
Tenga en cuenta que ahora estamos hablando de dos niveles de algoritmos/bots: Hay el nivel de los algoritmos/bots que puede usar para tradear: los algoritmos/bots de trading. Y hay el nivel de algoritmos/bots que desarrollan algoritmos/bots de trading. Algocrowd es un sistema del segundo tipo. Utiliza componentes básicos proporcionados por humanos, inventa algoritmos de trading con estos componentes básicos y genera el código para estos algoritmos, es decir, crea bots de trading que se pueden correr.
Decidimos implementar nuestros bots de trading para la plataforma MT4. Es una plataforma muy popular. Y eso significa que con los bots de MT4 (que también se llaman «Expert Advisors»), puede elegir entre una gran variedad de brokers. Y eso significa que usted es muy independiente de su broker actual y puede cambiar fácilmente, por ejemplo cuando encuentre un broker con tarifas más bajas. Con MT4 también es fácil tener varios brokers y usar cada broker para tradear solo con una parte de su capital.
Las desventajas de MT4, sus limitaciones con respecto a la automatización, solo son relevantes si usa este programa manualmente para encontrar algoritmos de trading. Creamos el sistema Algocrowd para superar estas limitaciones. En otras palabras, con Algocrowd, puede tener la mayor ventaja de MT4, su popularidad, sin las desventajas.
Sin embargo, Algocrowd no es un sistema de MT4. Algocrowd no se trata de generar bots para una plataforma específica. Algocrowd se trata de encontrar algoritmos de trading. En este momento, la plataforma MT4 parece ser la opción más razonable. Por lo tanto, por el momento, nuestro sistema solo genera bots para esta plataforma. Sin embargo, esto podría cambiar en el futuro, por ejemplo si la plataforma MT4 se volviera menos popular.
Para entender lo que hace un programa, necesita conocer el input y el output. ¿Cuál es el input de Algocrowd? ¿Y cuál es el output de Algocrowd? El input de Algocrowd son ciertas piezas de código, los llamados «indicadores», que describiremos en las siguientes secciones. Si usted es desarrollador, puede subir tales indicadores y contribuir así a nuestra búsqueda completamente automatizada de los mejores algoritmos de trading. El output de Algocrowd es una lista de bots de trading generados para la plataforma MT4. No es necesario entender el código de estos bots de trading para usarlos. Simplemente puede descargarlos y correrlos. Tenemos un blog post que explica como se hace.
Hay una última distinción técnica que debemos introducir: MT4 es la plataforma que hay que usar para correr los bots de Algocrowd. Puede descargar MT4, instalarlo y ejecutarlo fácilmente en su computadora. No hace falta ser un experto de MT4 para esto. Lo que realmente ejecuta con su MT4, los bots de trading o «Expert Advisors», como le gusta llamarlo a la gente de MT4, son archivos «mq4». El lenguaje de programación en el que se escriben los bots de MT4 se llama «MQL4». Y los programas MQL4 tienen el sufijo «.mq4». Si no es desarrollador, no se preocupe. Simplemente puede descargar los archivos mq4 y ejecutarlos en su MT4 haciendo clic en ellos. Si usted es desarrollador: Tenga en cuenta que con los archivos mq4 obtiene el código fuente de las estrategias encontradas por Algocrowd. Eso significa que puede leerlas y modificarlas, si lo desea. Y no perderá el código fuente de las estrategias que descargó, si Algocrowd quebrara.
After all these rather abstract explanations, you might wonder what a bot for MT4 or "expert advisor" actually looks like. Eso es lo que vamos a explorar ahora.