IEDGE – Expert Advisor en Sistemas Automáticos de Trading


En el post inicial de Sistemas Automáticos de Trading realicé una introducción teorica sobre estrategias de inversión automatizas. Vamos a ver como lo podemos aplicar en un ejemplo.

Los seguidores de Metatrader se convierten en incondicionales desde el momento en que descubren la posibilidad de automatizar sus estrategias. Y eso es lo que se va a tratar en este post, el diseño de Expert Advisors, tal y como se conoce a los robots o sistemas automáticos de trading en la comunidad de Metatrader, plataforma de inversión de XTB.

En primer lugar, muchos nos encontramos con un problema de gran importancia a la hora de empezar a desarrollar un EA (Expert Advisor): “Programar nuestra estrategia”.

Para ello vamos a sugerir aquí algunas herramientas útiles que nos ayuden a solventar este problema, sin olvidar que lo ideal es conocer el lenguaje de programación de Metatrader, es decir, el MQL4, un lenguaje muy similiar al “C”, que para muchos ingenieros, especialmente informáticos, les resultará muy familiar.

Entre otras herramientas o páginas recomendaremos el Expert Advisor Builder que nos ayudará a plasmar nuestra estrategia en el código fuente MQL4.

Dentro de esta primera fase lógicamente se encuentra estructurar mentalmente nuestra estrategia si es muy simple, o en un papel-ordenador si la estrategia es de gran complejidad con multitud de algoritmos. En nuestro caso nos basaremos en el Análisis técnico y, en concreto, en el Análisis cuantitativo o de Indicadores.

Seleccionaremos el activo con el que realizar nuestro estudio, en este caso será el SPA35 en gráfico diario, es decir, será un estrategia sosegada, sin muchas operaciones pero lo más consistente posible, como veremos más adelante. La razón de seleccionar el gráfico diario es también para que el cálculo sea muy preciso, ya que una de las «carencias» de Metatrader reside en tomar como unidad mínima de medida el minuto en lugar del tick, el cual será mejor calculado cuantos más timeframes incluyamos en nuestra prueba, es decir, el mejor será el mensual, ya que por debajo tiene el semanal, el diario, el 4H, el 1H… y el 1Minuto, mientras que el más deficitario será tomar 1Minuto, reflejado en la calidad del modelado al ver el Informe en una prueba de estrategia, restando fiabilidad (en el caso de los timeframes en 1Minuto) a los resultados obtenidos por sistemas que tengan incorporados Stop Loss, Take Profit o Trailing Stop especialmente, a pesar de que la construcción de la vela que hace Metatrader es muy aproximada a la realidad.  El método más cómodo para descargar los históricos de un determinado timeframe o periodicidad es pinchando botón derecho en el gráfico y luego en Actualizar.

Como se ha dicho, basándonos en Análisis técnico y seleccionando uno de los indicadores más clásicos y una de las interpretaciones más útiles en la creación de estrategias de trading, tomaremos el MACD. La señal de compra se producirá cuando el MACD quede por encima de su signal y se cerrará dicha posición larga (y se abrirá al mismo tiempo una nueva posición corta o de venta) cuando el MACD se situé por debajo de su signal -la señal siempre se produce a cierre diario y la entrada o el cierre de la posición en la apertura de la vela (o día como es nuestro caso) siguiente-.

En MQL4 dicha estrategia quedaría plasmada de la siguiente forma (con la ayuda de nuestros amigos de Sistemas Inversores y de su librería (ha de copiarse en Include, dentro de la carpeta de Experts):

#property copyright «PABLO»

#property link      «http://www.flash-de-bolsa.com»

// Variables que necesitamos para que funcione la librería

extern int StopLoss = 100;

extern int TakeProfit = 0;

bool DEBUG_MSG = false;

extern int Slippage = 1;

string NombreDelEA = «ExpertLibreria1»;

extern int SegundosParaReintentarOperar = 20;

extern double Lots = 0.1;

extern string macd = «*** CONFIG MACD***»;

extern int FastEMA=12;

extern int SlowEMA=26;

extern int SignalSMA=9;

#include <stdlibSIv1.26.mqh>

int start()

{

int señal = getSeñal();

if(ordenesTotalesEA()!=0 && señalInversa?(señal))

cerrarPosiciones();

if(ordenesTotalesEA()==0 && señal != -1){

abrirPosicion(señal);

}

}

int getSeñal()

{

static int ultimaseñal = -1;

int señal = -1;

double valorGRIS

= iCustom(Symbol(),0,»MACD»,FastEMA,SlowEMA,SignalSMA,0,1);

double valorROJO

= iCustom(Symbol(),0,»MACD»,FastEMA,SlowEMA,SignalSMA,1,1);

if(valorGRIS > valorROJO) señal = OP_BUY;

else if(valorGRIS < valorROJO) señal = OP_SELL;

// Transforma la señal de continua a discreta.

// ———————————+++++++++++++++++++————————– CONTINUA

// –                                +                  –                          DISCRETA

 

if (ultimaseñal!=señal)

{

ultimaseñal=señal;

}

else

{

return (-1);

}

return(señal);

}

 

Dicho código podría copiarse y pegarse directamente en un nuevo EA creado desde el Metaeditor, dentro de la misma plataforma Metatrader. Como se puede ver, la estrategia no es difícil en sí y lógicamente podría hacerse mucho más compleja combinando más indicadores, reduciendo el timeframe (periodicidad) o probando diferentes parámetros para el MACD y el signal (asunto que luego trataremos con la “optimización de variables”).

Podríamos aprovechar para recordar tres factores especialmente importantes a la hora de diseñar nuestra estrategia de trading:

  1. El timeframe será clave para optimizar los otros dos factores. Hemos de tener en cuenta que si operamos con estrategias de velas de 1 minuto no tendrá nada que ver con estrategias de velas diarias, ya que el número de operaciones será mucho mayor cuanto menor sea el timeframe siendo a su vez más difícil diluir el efecto comisiones o spread. Por otro lado, si el sistema es rentable normalmente vendrá acompañado de un gran número de operaciones, lo que le convertiría en un sistema consistente y fiable a largo plazo con altas probabilidades de repetir los buenos resultados. Sin embargo, si el timeframe es más alto, en diario por ejemplo, el número de operaciones se reducirá y podría restar consistencia al sistema, aunque a su vez le permitirá diluir el efecto comisiones o spread al entrar y salir menos veces.
  2. Además del timeframe, el número de indicadores combinados en nuestra estrategia también influirá considerablemente. Para lo que hay que tener claro que a mayor número de indicadores, menor número de operaciones se cruzarán al funcionar como filtros de señales falsas, y al contrario.
  3. Por último, los parámetros de los indicadores serán fundamentales. En la mayoría de los casos, valores altos suponen una visión u operativa a más largo plazo. En definitiva, este será uno de los puntos más importantes en nuestro análisis. Dichos parámetros tienen que optimizarse para saber cuáles son los más adecuados para una combinación de indicadores y para un timeframe preestablecidos.

En el siguiente post, les propondré como optimizar un Expert advisor en SPA35

Muchas gracias y espero sus comentarios!

 

Pablo del Barrio

Analista de XTB España

* Contenidos propiedad de XTB España cedidos a IEDGE – The European Business School

X-Trade Brokers Dom Maklerski, S.A., Sucursal en España (“X-Trade”) ha elaborado este informe exclusivamente a efectos informativos. Toda la información en éste contenida está basada en informaciones de carácter público y ha sido obtenida de fuentes que se consideran fiables. Sin embargo X-Trade no garantiza la corrección ni la precisión de la información incluida en el informe. Cada Cliente es responsable de su operativa en el Mercado. Este informe es exclusivamente orientativo y refleja únicamente la visión que su autor tiene de la situación actual del Mercado. Las consecuencias derivadas de la operativa del inversor, serán exclusivamente del cliente, que deberá actuar a la luz de la Declaración del Riesgo de Inversión.

Nota: Para aprender de una forma práctica y rápida todo sobre el trading profesional en mercados financieros  internacionales, les invitamos a que consulten el Máster Europeo en Trading donde se formará con los mejores profesores y Traders de Europa y Latinoamérica y conocerá las mejores prácticas en el área de mercados de divisas, derivados y futuros, opciones y acciones en mercados internacionales.

* Los contenidos publicados en este post son responsabilidad exclusiva del Autor.

 

Abrir Whatsapp
¿Cómo podemos ayudarte?
© IEDGE AI Business School
Soy Laura Rodríguez, del Dpto. de Admisiones de IEDGE AI Business School. ¿Cómo puedo ayudarte?