Crear Asesores Expertos

En este capítulo comenzamos a estudiar la API de trading de MQL5 utilizada para implementar Asesores Expertos. Este tipo de programa es quizá el más complejo y exigente en cuanto a codificación sin errores y número y variedad de tecnologías implicadas. En concreto, tendremos que utilizar muchos de los conocimientos adquiridos en los capítulos anteriores, desde la programación orientada a objetos hasta los aspectos aplicados del trabajo con objetos gráficos, indicadores, símbolos y configuraciones del entorno de software.

En función de la estrategia de trading elegida, el desarrollador del Asesor Experto deberá prestar especial atención a los siguientes aspectos:

  • Velocidad de toma de decisiones y envío de órdenes (para HFT, High-Frequency Trading)
  • Selección de la cartera óptima de instrumentos basados en sus correlaciones y volatilidad (para trading de clústeres)
  • Cálculo dinámico de lotes y distancia entre órdenes (para estrategias de martingala y cuadrícula)
  • Análisis de noticias o fuentes de datos externas (se tratará en la 7ª parte del libro)

Todas estas características deben ser aplicadas de forma óptima por el desarrollador a los mecanismos de trading descritos proporcionados por la API de MQL5.

A continuación, consideraremos en detalle las funciones integradas para la gestión de la actividad de trading, el modelo de eventos del Asesor Experto y las estructuras de datos específicas, y recordaremos los principios básicos de la interacción entre el terminal y el servidor, así como los conceptos básicos para la negociación algorítmica en MetaTrader 5: orden, transacción y posición.

Al mismo tiempo, debido a la versatilidad del material, muchos matices importantes del desarrollo de Asesores Expertos, como la simulación y la optimización, se destacan en el capítulo siguiente.

Anteriormente vimos el Diseño de programas MQL de varios tipos, incluidos los Asesores Expertos, así como las Funciones de inicio y parada de programas. A pesar de que un Asesor Experto se lanza en un gráfico específico, para el que se define un símbolo de trabajo, no hay obstáculos para gestionar de forma centralizada el trading de un conjunto arbitrario de instrumentos financieros. Estos Asesores Expertos se denominan tradicionalmente multidivisa, aunque de hecho, su cartera puede incluir CFD, acciones, materias primas y tickers de otros mercados.

En los Asesores Expertos, al igual que en los indicadores, existen los Eventos clave OnInit y OnDeinit. No son obligatorios, pero, por regla general, están presentes en el código para la preparación y realización regular del programa: los hemos utilizado y los seguiremos utilizando en los ejemplos. En una sección separada, proporcionamos una Visión general de las funciones de gestión de eventos: a estas alturas ya hemos estudiado en detalle algunas de ellas (por ejemplo, los eventos de indicador OnCalculate y el temporizador OnTimer). Los eventos específicos del Asesor Experto (OnTick, ontrade, OnTradeTransaction) se describirán en este capítulo.

Los Asesores Expertos pueden utilizar la más amplia gama de datos de origen como señales de trading: cotizaciones, ticks, Profundidad de Mercado, historial de la cuenta de trading o las lecturas de indicadores. En este último caso, los principios de creación de instancias indicadoras y lectura de valores de sus búferes no difieren de los abordados en el capítulo Utilización de indicadores preconfeccionados de programas MQL. En los ejemplos de Asesor Experto de las siguientes secciones, haremos una demostración de la mayoría de estos trucos.

Cabe señalar que las funciones de trading pueden utilizarse no sólo en los Asesores Expertos, sino también en los scripts. Veremos ejemplos de ambas opciones.