- Aunque puedes crear tu robot de trading de forex con sitios web sin código, te recomendamos hacerlo tú mismo (o contratar a alguien) para obtener un resultado más completo y detallado.
- Los cuatro componentes principales de un código de robot de forex son setup, init, deinit y start. Un robot de forex utiliza estos cuatro elementos para integrar sus estrategias de trading.
- Desarrollar tu propio robot de forex va mucho más allá de las habilidades técnicas de los lenguajes de programación. Investiga tu estrategia de trading, realiza backtests para evaluar su rendimiento y optimiza el robot hasta que puedas obtener el máximo nivel de rentabilidad constante.
Muchos traders no tienen idea de cómo crear un robot de trading de forex. Sin embargo, contar con un robot de trading es una excelente manera de aprovechar las oportunidades del mercado sin involucrar emociones humanas ni tener que hacer el análisis por tu cuenta.
Crear un robot de trading de forex no se trata solo de enviar instrucciones al programador para codificar una estrategia de cruce de medias o un rebote en una línea de tendencia. Implica mucho más que esto. Este artículo profundiza en cómo crear un robot de trading de forex.
- ¿Qué es un robot de trading de forex?
- ¿Puedes crear un robot de trading de forex sin habilidades de programación?
- ¿Cómo está estructurado un robot de trading de forex?
- ¿Cómo crear un robot de trading de Forex en 3 pasos?
- ¿Cómo se escribe el código para un robot de trading de Forex?
- ¿Cómo probar su robot de trading de Forex?
- ¿Cómo optimizar su robot de trading de Forex?
- ¿En qué lenguajes de programación puedo escribir códigos de robots de Forex?
- Conclusión
¿Qué es un robot de trading de forex?
Un robot de trading de forex es un software que automáticamente ingresa y sale de trades en el mercado de forex basado en una estrategia de trading elegida. El robot de forex es simplemente una estrategia de trading de forex codificada, diseñada para funcionar como un sistema de trading automatizado que puede ejecutar trades en tu nombre. Cuando se ejecuta en tu MT4 o MT5, comúnmente se le llama Asesor Experto.
¿Puedes crear un robot de trading de forex sin habilidades de programación?
Es posible crear un robot de trading de forex sin habilidades de programación. Muchos sitios web ofrecen plantillas para construir robots de forex simples y fáciles de usar, sin necesidad de escribir una sola línea de código.
Pero debes entender que todo el proceso no se trata solo de construir un robot. Se trata de construir un robot para ganar dinero en el mercado de forex. Al hacer trading con dinero real, hay poco margen para prueba y error.
Puedes ser capaz de crear un robot de Forex sin habilidades de programación, pero ¿cuántos de estos son eventualmente rentables de manera consistente? ¿Cuántos de estos son prudentes en el mercado, pueden identificar ineficiencias de precios en el mercado de forex de manera consistente y beneficiarse de estas ineficiencias?
No muchos.
¿Cómo está estructurado un robot de trading de forex?
Un robot de Forex simplemente automatiza una estrategia de trading algorítmico mediante código. Cada estrategia de trading se compone de tres componentes:
- Entradas
- Salidas
- Tamaño de la posición
El robot de trading debe capturar estos tres componentes en el código para obtener ganancias de la configuración de ineficiencia de precios que se busca.
¿Cómo incorporan los robots de Forex estrategias de trading en sus códigos?
El código del robot de Forex tiene cuatro partes principales:
- Configuración: contiene los componentes administrativos del código del EA
- Init (inicializar): todo el código que se encuentra aquí se ejecuta una sola vez. Aquí es donde se incluye el código y los comentarios para gráficos, como información de precios.
- Deinit (desinicializar): todo el código aquí se ejecuta una vez que se detiene el robot.
- Inicio: Todo el código aquí se ejecuta una vez, pero solo cuando hay una nueva pieza de información, como un nuevo tick de precio. La parte de Inicio codifica los tres componentes de entrada, salida y tamaño. Por ejemplo, un script es un código que se ejecuta una vez. Por lo tanto, un código de script se incluirá en la función de Inicio. Cualquier código destinado a ejecutarse una vez generalmente se ingresa entre corchetes angulares (llaves o {}). La ejecución del script hará que este código se ejecute una vez.
Esta imagen muestra lo que se captura en la sección Init del código. El gráfico muestra información sobre precios y el código init se encuentra debajo.
Imagen de un gráfico MT5 que muestra un gráfico
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
chart_Id=ChartID();
//---
//--
font_ohlc=FontsModel(Fonts_Model);
wind_color=WindColors;
//---
//--
iname="DayPivotPoint ("+TF2Str(Period())+")";
IndicatorSetString(INDICATOR_SHORTNAME,iname+"_("+Symbol()+")");
IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//--
_model=FontsModel(Fonts_Model);
drawpivot=false;
drawpohl=false;
prvtmp=iTime(Symbol(),0,1);
prvtmo=iTime(Symbol(),0,1);
//--
HandleEMA2=iMA(Symbol(),0,2,0,MODE_EMA,PRICE_MEDIAN);
if(HandleEMA2==INVALID_HANDLE)
{
printf("Error creating EMA2 indicator for ",Symbol());
return(INIT_FAILED);
}
//---
return(INIT_SUCCEEDED);
}
//---------//
El código de inicio del gráfico en la imagen de MT5 se muestra arriba
Después de leer el componente Init, el código comprobará si hay salidas potenciales en trades activas y luego buscará nuevas entradas. Si se identifica una nueva entrada, analizará la posibilidad de establecer un tamaño de posición de acuerdo con los principios de manejo de riesgos propuestos. El código repite este proceso cada vez que el activo forma un nuevo tick de precio.
Cuando el robot de Forex se detiene o alcanza su objetivo de ganancias, se activa el código Deinit. Este código podría eliminar el gráfico o borrar un temporizador de conteo de trades.
¿Cómo crear un robot de trading de Forex en 3 pasos?
¿Cuáles son los pasos a seguir para crear tu propio robot de Forex? Al emprender el desarrollo de un robot de trading de Forex, debes adoptar un proceso paso a paso. No puedes simplemente contratar a un programador para que comience a crear un robot. Hay pasos que debes seguir, y los más importantes se realizan incluso antes de que se lleve a cabo el desarrollo real.
Paso 1: Realice su investigación inicial
El primer paso en el proceso de creación de robots de Forex es realizar una investigación. ¿Qué significa esto?
Es necesario identificar qué estrategias funcionarán, analizar la idea y adoptar un enfoque simple para hacer realidad estos sistemas de trading automatizados. Cuando hablamos de tipos de sistemas o estrategias de trading como parte de la investigación inicial, debemos identificar qué estrategia queremos seguir.
- ¿La estrategia se basa en la dirección del mercado, es decir, se trata de seguir los movimientos ascendentes y descendentes del mercado (estrategias de seguimiento de tendencias o direccionales)?
- ¿Se trata de una estrategia neutral respecto del mercado (utilizada en mercados en consolidación o con límites de rango) o se basa en tomar direcciones opuestas en activos inversamente correlacionados (por ejemplo, comprar petróleo y vender en corto el yen japonés al mismo tiempo)?
En los mercados de forex, la estrategia que se suele utilizar para desarrollar robots de trading de forex es direccional. El robot de Forex hacer trading en posiciones largas o cortas, según el movimiento del mercado.
Otro aspecto de la investigación es comprobar si el rendimiento de la estrategia se verá afectado por las noticias, los fundamentos u otros factores microestructurales del mercado. Los usuarios de robots de trading de forex deben ser conscientes de que existen muchas fuentes de ineficiencias del mercado, siendo las noticias económicas la principal fuente de dichas ineficiencias.
La mayoría de los grandes movimientos en los mercados son impulsados por los bancos, y es aquí donde se intenta alinear una estrategia con las de los grandes bancos. Tenga en cuenta que también es posible que un robot de Forex haga trading en estas ineficiencias de manera rentable.
Por ejemplo, si un asesor experto sigue dos pares de divisas en diferentes plataformas de trading y detecta una ineficiencia de precios, se puede diseñar un robot de trading de forex para que haga trading en esa línea y genere ganancias. La ineficiencia del mercado también puede tener un origen técnico. Por ejemplo, la estrategia de divergencia, que utiliza indicadores de impulso, es un ejemplo de un intento de obtener ganancias a partir de una ineficiencia de precios inicial que finalmente se corrige por sí sola.
Paso 2: Analizar la idea para la estrategia
La idea detrás de la creación de un robot de Forex es que pueda identificar posibles ineficiencias en el precio que tengan causas identificables de manera repetida y sostenible. La idea o estrategia de trading debe responder a las siguientes preguntas:
- ¿Es una estrategia prudente respecto del mercado?
- ¿Puede identificar puntos persistentes de ineficiencia de precios y, de ser así, tiene la estrategia la capacidad de identificar estas ineficiencias de precios de manera persistente o solo unas pocas veces?
- ¿Tienen estas ineficiencias de precios una causa identificable?
Por ejemplo, si un robot de trading de forex está diseñado para hacer trading un tipo específico de respuesta a un comunicado de prensa en particular (por ejemplo, para comprar oro si las cifras del índice de precios al consumidor de EE. UU. están por debajo de una desviación estándar específica por debajo del número de consenso), este es un escenario en el que la ineficiencia de precios que ocurre después de que se publica la noticia es prudente en términos de mercado y tiene una causa identificable.
Se trata de una estrategia prudente desde el punto de vista económico y fundamental, ya que tiene sentido. Se puede aplicar de forma persistente, ya que las cifras del IPC de EE. UU. siguen un calendario mensual y son recurrentes. La respuesta del robot de trading de forex de comprar oro si el índice de precios al consumidor de EE. UU. cae un mínimo de 2 puntos porcentuales por debajo de la cifra de consenso sería una respuesta cuantificable.
De manera similar, un asesor experto creado para identificar y hacer trading con configuraciones de divergencia cuando un indicador de impulso se encuentra en áreas de precios de sobrecompra o sobreventa es otro ejemplo en el que existe una causa identificable para la ineficiencia de precios que un asesor experto puede explotar de manera continua y constante. Lo mismo ocurre cuando un asesor experto está diseñado para comprar en el retroceso que se produce en un patrón de continuación, como una bandera, un banderín o un triángulo.
Paso 3: Simplicidad
Es esencial que el trabajo del robot de trading sea lo más sencillo posible. Una respuesta simple de COMPRA o VENTA, una forma direccional de trading, funciona muy bien en los mercados de forex. No es necesario intentar utilizar un robot para crear escenarios de trading complejos o tipos de trades como los que se dan en los mercados de opciones. Recuerde que la lección sobre cómo crear un robot de Forex es para traders minoristas y debe ser simple, económica y clara.
Después de realizar este proceso de tres pasos, estará listo con una estrategia de trading para crear el robot de trading de forex.
¿Cómo se escribe el código para un robot de trading de Forex?
Toda la programación de un robot de Forex en MetaTrader gira en torno a estos cuatro bloques esenciales:
- Sintaxis: Aquí es donde se ingresa el código para comentarios, formato e identificadores.
- Las variables y los tipos de datos son los bloques básicos sobre los que se construye el código del EA. Son objetos a los que se les puede asignar un valor.
- Expresiones y operaciones: una secuencia de operaciones, símbolos de operandos o un registro de programa en el que los tipos de datos caracterizan el valor de un registro de programa. MetaTrader reconoce siete tipos de operaciones.
- Condicionales: también conocido como código “if-else”, el código le indica al EA que realice otra función si una expresión o función se ejecuta o no se ejecuta. En otras palabras, este código le indica al EA: “Si no se ejecuta una, se ejecuta la otra”.
En términos generales, escribir código para un robot de trading de forex es uno de los tres tipos de código que se pueden escribir en el entorno MQL4 o MQL5. Los otros dos son códigos para indicadores personalizados y códigos para scripts.
La diferencia entre escribir código para un robot de trading de forex y el de un indicador personalizado o un script es que los robots de trading de forex están diseñados para procesar y ejecutar una función (los scripts no hacen esto) y hacer trading automáticamente (los indicadores personalizados no pueden hacerlo). Por lo tanto, escribir un código para un robot de trading de forex para trading algorítmico es más completo.
Entonces, ¿cómo se escribe el código para un robot de trading de forex? Primero, debes entender qué se pretende que haga el código del robot.
Un asesor experto está vinculado al gráfico de un activo y debe poder analizar este gráfico y generar trades automáticamente. Por lo tanto, un robot de trading debe poder realizar una serie de eventos no solo una vez, sino repetidamente cuando se cumplan las condiciones para ello.
El código de un robot de trading debe capturar una secuencia de eventos, como la inicialización, la desinicialización y otros eventos que capturen cambios en las condiciones del mercado, como un cambio en el volumen o una alteración de la profundidad de las condiciones del mercado. Estos se manifestarán en la interfaz del trader como órdenes largas o cortas que se abren y cierran.
Finalmente, es posible que conozca los aspectos técnicos de cómo escribir el código de un robot de Forex. Pero antes de eso, primero debe idear un algoritmo que guíe su programación. Muchos profesionales le dirán que nunca debe intentar resolver un problema sin tener primero un algoritmo.
Cómo escribir el código de un robot de trading de Forex en MT4
Para crear un robot de trading de forex en MT4, primero debe abrir el entorno de codificación MQL4. Puede hacerlo presionando la tecla F4 en su PC cuando la plataforma de trading esté ejecutándose. Esto lo llevará inmediatamente al entorno MetaEditor para MT4. Cuando haga clic en “Nuevo”, se le presentará un cuadro de diálogo para elegir el objeto para el cual escribirá el código. Aquí, elija “Asesor experto (plantilla)”.
Los detalles sobre cómo escribir código para los robots de Forex MT4 se presentarán en un artículo posterior.
Cómo escribir el código de un robot de trading de Forex en MT5
Para crear un robot de trading de Forex en MT5, primero debe abrir el entorno de codificación MQL5 de MetaEditor. Puede hacerlo presionando el botón F4 en su PC cuando la plataforma MT5 esté ejecutándose. Cuando abra su entorno de MetaEditor, se le solicitará que identifique lo que desea crear. Verá una ventana emergente que se parece a esto:
Seleccione la opción “Asesor experto (generar)” para comenzar. ¿Puede notar alguna diferencia entre las dos imágenes?
¿Cómo probar su robot de trading de Forex?
Ahora que ha escrito el código para el robot de trading de Forex, es hora de probar el rendimiento de lo que ha escrito en comparación con los datos de precios históricos. Esto es lo que se conoce como backtesting.
¿Cuál es el objetivo de realizar backtests de su robot? Los backtests le ayudan a medir la precisión de su robot de Forex. También le ayudan a comprender el rendimiento de su robot de Forex, ya que los backtests utilizan datos históricos y métricas de rendimiento para este propósito. También le ayudan a comprender si su robot es, en última instancia, adecuado como herramienta para la detección y explotación rentable de ineficiencias de precios. Analicemos cada uno de estos puntos individualmente.
1. Precisión del robot de Forex
Comprueba si el código y los trades coinciden. Quieres comprobar que el código abre y cierra los trades según lo previsto.
2. Comprender el funcionamiento de los robots de Forex
Debes realizar backtests en cada tick. Analiza los datos para ver qué ticks de precios son más relevantes para tu estrategia, de modo que puedas ajustar el código de manera adecuada.
3. Comprender la idoneidad del mercado de robots de Forex
Para comprender el funcionamiento de su robot de Forex, es necesario analizar cómo se comportará en distintas condiciones de mercado, períodos de tiempo, en distintos activos o pares de divisas y durante determinadas temporadas. En otras palabras, debe buscar las respuestas a las siguientes preguntas:
- ¿El robot funciona mejor en la zona horaria de Londres o Nueva York?
- ¿El robot de trading es más adecuado para hacer trading en períodos de tiempo de 1 hora o de largo plazo?
- ¿Qué pares de divisas o activos del mercado ofrecen mejores rendimientos cuando se negocian con el robot de Forex?
- ¿Existe variación estacional del rendimiento? Por ejemplo, ¿el rendimiento del robot mejora o empeora cuando los huracanes amenazan la costa del Golfo de Estados Unidos y la producción de petróleo, con los consiguientes efectos sobre el petróleo, el dólar canadiense, el dólar estadounidense y los activos correlacionados?
- ¿Hay eventos inesperados que puedan afectar el desempeño del bot de Forex?
- ¿El rendimiento del robot en condiciones de rentabilidad garantiza la supervivencia de la cuenta del trader? En otras palabras, ¿el robot supera las pruebas de manejo de riesgos?
Antes de probar su robot de trading, primero debe instalarlo en su terminal de trading. Estas guías le resultarán de utilidad:
Cómo instalar el robot de trading de Forex en MT4
Cómo instalar el robot de trading de Forex en MT5
¿Cómo optimizar su robot de trading de Forex?
Después de los backtests, es hora de optimizar su robot de trading. La optimización en el trading de forex es un proceso de variación de varias reglas, parámetros y valores de un robot de trading de forex para obtener el mejor rendimiento de su sistema de trading automatizado.
¿Por qué es necesario optimizar un robot? Optimizamos nuestros robots de trading de forex para que se adapten mejor a las condiciones del mercado y maximicen su rendimiento.
En un proceso de optimización se tienen en cuenta diversas métricas de rendimiento, aunque las más comunes a las que se apunta en los backtests son las ganancias netas (ganancias-pérdidas). Una métrica de rendimiento se conoce como función objetivo.
Un ejemplo de optimización de la función objetivo de un robot de Forex puede ser el intercambio de una media móvil simple por una media móvil exponencial o el cambio del período de la media móvil. Un trader puede descubrir, después de realizar backtests utilizando una media móvil simple o exponencial, que la EMA produce una ganancia neta mayor para el mismo período que la SMA. En este caso, la EMA representaría el valor o parámetro optimizado para la estrategia.
En la práctica, los procesos de optimización son más complejos y requerirán una mayor exploración.
¿En qué lenguajes de programación puedo escribir códigos de robots de Forex?
En lo que respecta a la codificación para crear robots de trading, los lenguajes más utilizados son MQL4 (para la plataforma comercial MT4), C# (para MT5) y Python (para algoritmos más complejos). Otros lenguajes menos populares son Pinescript (Tradingview) y Lua (TradeStation y NinjaTrader). Después de la codificación, debes obtener y limpiar los datos para realizar backtests y optimizarlos.
Independientemente del lenguaje que se utilice, el tamaño de la posición debe reflejar un manejo adecuado del riesgo. Los riesgos pueden provenir del mercado (riesgo de mercado) o de fuentes externas al mercado (riesgo operativo), como una mala conectividad a Internet, riesgos de contraparte y fallos del sistema (si se utiliza un servidor privado virtual de Forex sobrecargado).
¿Cómo está estructurado un robot de Forex? El código debe capturar los parámetros de entrada, salida y tamaño de la posición.
Conclusión
No lo olvides. Crear un bot de Forex va más allá de las líneas de código. Implica mucha investigación, backtests y optimización. Si bien algunos traders prefieren utilizar sitios web de creación de bots de trading sin código, debes saber que esto no te dará tanto control sobre tu bot como podrías necesitar. Sin embargo, si creas tu bot tú mismo, puedes controlar y determinar cada bit de datos.