Introducción
Cuando creamos sistemas de trading automatizados es necesario escribir algoritmos para
analizar la situación del mercado y generar señales de trading, algoritmos de arrastre de
nuestras posiciones abiertas y sistemas para gestionar el dinero y el riesgo.
Una vez que se ha escrito el código de los módulos, la tarea más difícil es ensamblar todas las
partes y depurar el código fuente del robot de trading. Aquí, el papel principal lo juega la
arquitectura de la interacción de los módulos: si su construcción es deficiente, la mayor parte
del tiempo se empleará en encontrar y corregir errores, y si sustituimos el algoritmo de
cualquier módulo nos llevará a reescribir todo el código fuente.
El uso del enfoque orientado a objeto en MQL5 elimina considerablemente la tarea de escribir
y probar los sistemas de trading automatizados.
MetaQuotes Software Corp. ha desarrollado clases para implementar estrategias de trading.
Ahora puede generar código de asesores expertos de forma automáticadirectamente en
MetaEditor seleccionando las señales de trading necesarias (actualmente hay 20 de ellas), los
módulos Trailing (4) y Money Management (5). Combinando estos módulos podemos obtener
muchas variantes de sistemas de trading listos para ser usados.
Puede usar también sus propias clases con la implementación de estos módulos. Créelos por sí
mismos o pídalos a través del servicio Trabajos.
En este artículo vamos a ver la generación automática de código fuente de asesores expertos
usando el MQL5 Wizard. ¡Y no habrá que programar nada!
1. Crear un robot de trading usando MQL5 Wizard
El código fuente de los asesores expertos se genera usando el MQL5 Wizard en MetaEditor.
Las clases básicas de estrategias de trading se encuentran en la carpeta
'\<client_terminal_directory>\MQL5\Include\Expert\'. Los algoritmos de clases de señales de
trading listos para su uso, las clases de posiciones abiertas de arrastre y las clases de gestión
de dinero y riesgo se encuentran en las subcarpetas Signal, Trailing y Money. El MQL5 Wizard
analiza los archivos en estas carpetas y los utiliza para generar código del asesor experto.
Para ejecutar el MQL5 Wizard necesita hacer clic en el botón "Nuevo" en la barra de
herramientas o seleccionar "Nuevo" en el menú "Archivo" (o simplemente pulsar Ctrl+N):
A continuación seleccione el tipo de programa que quiere crear. En nuestro caso seleccionamos
la opción (generar) "Asesor experto":
Paso 1. Propiedades generales del asesor experto
A continuación se abre el cuadro de diálogo donde podemos establecer las propiedades
generales del asesor experto:
Fig. 3. Propiedades generales del Expert Advisor
Especificamos el nombre de nuestro asesor experto, el nombre del autor y el enlace a nuestro
sitio web en los campos "Nombre", "Autor" y "Enlace" (respectivamente).
El asesor experto tiene también los siguientes parámetros de entrada.
■ Símbolo (el tipo de string) - símbolo de trabajo para el asesor experto.
■ Periodo de tiempo (el tipo de periodo de tiempo) - periodo de tiempo de trabajo para
el asesor experto.
En el siguiente paso seleccionamos el tipo de señales de trading sobre las que operará el
experto.
Paso 2. Seleccionar el módulo de señales de trading
El algoritmo de apertura y cierre de posiciones viene determinado por el módulo de las señales
de trading. Los módulos de las señales de trading contienen reglas para la
apertura/cierre/inversión de posiciones.
La librería estándar tiene módulos de señales de trading listas para usar:
1. CSignalAC - el módulo de señales basado en los modelos de mercado del indicador
oscilador acelerador.
2. CSignalAMA - el módulo de señales basado en los modelos de mercado del indicador
media móvil adaptativa.
3. CSignalAO - el módulo de señales basado en los modelos de mercado del indicador
oscilador impresionante.
4. CSignalBearsPower - el módulo de señales basado en los modelos de mercado del
oscilador poder de osos.
5. CSignalBullsPower - el módulo de señales basado en los modelos de mercado del
oscilador poder de toros.
6. CSignalCCI - el módulo de señales basado en los modelos de mercado del oscilador
índice de canal de producto.
7. CSignalDeM - el módulo de señales basado en los modelos de mercado del oscilador
DeMarker.
8. CSignalDEMA - el módulo de señales basado en los modelos de mercado del indicador
media móvil doble exponencial.
9. CSignalEnvelopes - el módulo de señales basado en los modelos de mercado del
indicador Envelopes.
10. CSignalFrAMA - el módulo de señales basado en los modelos de mercado del indicador
media móvil adaptativa fractal.
11. CSignalITF - módulo de filtración de señales por tiempo.
12. CSignalMACD - el módulo de señales basado en los modelos de mercado del oscilador
MACD.
13. CSignalMA - el módulo de señales basado en los modelos de mercado del indicador
media móvil.
14. CSignalSAR - el módulo de señales basado en los modelos de mercado del indicador SAR
parabólico.
15. CSignalRSI - el módulo de señales basado en los modelos de mercado del oscilador
índice de resistencia relativa.
16. CSignalRVI - el módulo de señales basado en los modelos de mercado del oscilador
índice de vigor relativo.
17. CSignalStoch - el módulo de señales basado en los modelos de mercado del oscilador
estocástico.
18. CSignalTRIX - el módulo de señales basado en los modelos de mercado del oscilador
media exponencial triple.
19. CSignalTEMA - el módulo de señales basado en los modelos de mercado del indicador
media móvil exponencial triple.
20. CSignalWPR - el módulo de señales basado en los modelos de mercado del oscilador
rango porcentual de Williams.
El tipo de señales de trading se selecciona de la lista desplegable "Nombre".
Después de pulsar el botón "Siguiente" verá una ventana:
Fig. 4. Selección de señales de trading del Expert Advisor
Para añadir un módulo de señales de trading presione el botón "Añadir".
Vamos a añadir señales de trading basadas en el indicador de media móvil.
Fig. 5. Seleccionar el algoritmo de señales de trading
Cada módulo de señales de trading tiene sus propios parámetros. Puede usar los valores por
defecto.
Hay dos formas de crear los parámetros. Puede cambiar entre ellas haciendo doble clic con el
botón izquierdo del ratón en el icono del parámetro. Si el parámetro tiene el icono resaltado
éste estará disponible como la variable de entrada del asesor experto. Dichos parámetros
pueden usarse posteriormente para la optimización del experto en el probador de estrategias.
Si el parámetro tiene el icono gris tendrá un valor fijo que no podrá modificarse en las
propiedades del asesor experto.
El módulo de señales de trading aparecerá en la lista:
Fig. 6. Se ha añadido el módulo de señales de trading
Paso 3. Seleccionar el módulo de rastreo de posiciones abiertas
El siguiente paso es seleccionar el algoritmo de rastreo de posiciones abiertas (Trailing Stop).
El uso del arrastre nos permite ahorrar el beneficio obtenido.
La librería estándar proporciona varias formas de rastrear posiciones abiertas:
1. CTrailingNone - Trailing Stop no se usa.
2. CTrailingFixedPips - Trailing Stop basada en una Stop Level fija.
3. CTrailingMA - Trailing Stop basada en la MA.
4. CTrailingPSAR - Trailing Stop basada en el SAR parabólico.
En nuestro asesor experto seleccionamos "Trailing Stop basada en Stop Level":
Fig. 7. Seleccionar el algoritmo de posiciones abiertas de arrastre
Este tipo de arrastre tiene dos parámetros: StopLevel y ProfitLevel (en puntos para
cotizaciones con 2 y 4 dígitos después de la coma) que serán usados para rastrear posiciones
abiertas:
Fig. 9. Establecer los parámetros del algoritmo seleccionado de rastreo de posiciones abiertas
Paso 4. Seleccionar el módulo de gestión de dinero y riesgo
En el último paso necesitamos seleccionar el sistema de gestión de dinero y riesgo que será
usado en nuestro asesor experto.
El propósito de este algoritmo es determinar el volumen de transacciones (en lotes) para las
operaciones de trading y también la gestión del riesgo. Cuando el valor de pérdida excede el
límite permitido (por ejemplo, 10% de las acciones) el módulo de gestión de dinero y riesgo
cerrará forzosamente la posición no rentable.
La librería estándar proporciona varias implementaciones de los algoritmos de gestión de
dinero y riesgos listas para ser usadas:
1. CMoneyFixedLot - Operar con un volumen de transacciones fijo
2. CMoneyFixedMargin - Operar con un margen fijo.
3. CMoneyFixedRisk - Operar con un riesgo fijo.
4. CMoneyNone - Operar con el volumen de transacciones mínimo permitido.
5. CMoneySizeOptimized - Operar con el volumen de transacción optimizado.
Fig. 9. Seleccionar el algoritmo de gestión de dinero y riesgo
Seleccionar el algoritmo "Operar con volumen de transacciones fijo".
El módulo que hemos seleccionado tiene dos parámetros:
■ Lotes - volumen de transacciones en lotes.
■ Porcentaje - porcentaje de riesgo máximo permitido.
Fig. 10. Establecer los parámetros del algoritmo seleccionado de gestión de dinero y riesgo
Después de hacer clic en "Finalizar" aparecerá el archivo TestExpert.mq5 en la carpeta
\teminal_data_filder\MQL5\Experts\. El nombre del archivo es el nombre del asesor experto
especificado.
3. Comprobando el asesor experto creado en el probador de
estrategias de MetaTrader 5
Si están presentes todos los componentes de la librería estándar, el código del asesor experto
se compila con éxito:
Figura 10. Compilación con éxito del código fuente del Expert Advisor creado en el MQL5 Wizard
El asesor experto resultante operará de acuerdo con los algoritmos elegidos de las señales de
trading, rastreo de posiciones abiertas y gestión de dinero y riesgo.
Puede comprobar el funcionamiento de su sistema de trading recién creado usando el probador
de estrategias del terminal de cliente de MetaTrader 5. En la figura 11 puede ver los
resultados de la prueba sobre los datos históricos con los ajustes por defecto (EURUSD, H1,
2010.01.01-2011.06.01):
Figura 11. Resultados de la prueba del Expert Advisor sobre los datos históricos (EURUSD, H1)
l mejor conjunto de parámetros del asesor experto puede obtenerse después de la
optimización en el probador de estrategias de MetaTrader 5.
Conclusión
El uso de las clases de estrategias de trading facilita considerablemente la creación y la prueba
de sus ideas de trading. Ahora puede construirse todo el código fuente del asesor experto
directamente en MetaEditor usando su MQL5 Wizard en base a los módulos de la librería
estándar lista para ser usada, empleándolos en sus propios módulos.
Si no quiere o no puede escribir sus propios módulos de señales de trading, siempre puede
beneficiarse del servicio trabajos y encargar todo un robot de trading o solo los módulos que
necesite. Este enfoque proporciona beneficios adicionales:
■ Los costes de desarrollo de módulos separados deben ser inferiores al coste del asesor
experto al completo.
■ El módulo resultante puede reutilizarse para crear tanto un asesor experto autónomo
como una familia completa de robots de trading (basados en este módulo) usando el
MQL5 Wizard.
■ El módulo adquirido debe cumplir estrictamente los requisitos del MQL5 Wizard, y esto
proporciona un control adicional sobre la calidad del código.