English Русский 中文 Deutsch 日本語 Português
Prueba y optimización de Asesores Expertos

Prueba y optimización de Asesores Expertos

MetaTrader 4Probador | 5 octubre 2015, 10:24
5 666 0
Michael
Michael

Introducción

El artículo proporciona una descripción detallada del proceso de probar y optimizar los EA's en el probador de estrategias del MetaTrader 4. No se puede subestimar la importancia de dicha información y la necesidad de esta publicación. Muchos usuarios, sólo empezar a trabajar con la plataforma de trading MetaTrader 4 tienen una idea muy vaga de qué y cuales las necesidades a realizar cuando se trabaja con Asesores Expertos.

Casi todos los días (literalmente) el foro se llena con preguntas de los usuarios principiantes sobre cómo instalar el EA en el terminal, cómo empezar con un Asesor Experto, qué es optimización y cómo se puede realizar en el probador de estrategias de MetaTrader 4, lo que es una prueba, etc.

El artículo propuesto da respuesta sencilla y clara a todas estas preguntas y proporciona un método un poco más profesional para manejar estas cuestiones con un ejemplo concreto. Tal y como se desarrolla el artículo, se pueden encontrar enlaces a artículos relevantes y adicionalmente páginas del sitio web MQL4.community para fgamiliarización más detallada de procesos prueba y optimización.


Prueba y optimización de Asesores Expertos

Estos son los mpasos que consideramos que debe tomar cuando se trabaja con un Asesor Experto. Con fines ilustrativos, tomamos un simple Asesor Experto - modificamos el EA de un MA. En contraste con la versión original construida en la plataforma de trading MetaTrader 4, nuestra versión implementa posición de apertura cuando una línea de Media Móvil (MA) es atravesada por el precio y la posición de cierre cuando hay un cruce inverso de la otra línea de Media Móvil por el precio, pero con un período de apertura diferente. Nuestra versión también ha sido mejorada con una función para la apertura de posiciones en condiciones de Ejecución de Mercado, esta modificación del programa ha sido muy solicitada últimamente. A continuación se proporciona el código del EA:

//+------------------------------------------------------------------+
//|                                      Moving Average_Мodified.mq4 |
//|                      Copyright © 2013, MetaQuotes Software Corp. |
//|                                   Modificación por Barras        |
//+------------------------------------------------------------------+
#define MAGICMA  20050610
//-----------------------------------------
extern int     StopLoss           = 500;
extern int     TakeProfit         = 500;
extern double  Lots               = 0.1;
extern double  MaximumRisk        = 0.02;
extern double  DecreaseFactor     = 3;
extern int     MovingPeriod_Open  = 12;
extern int     MovingPeriod_Close = 21;
extern int     MovingShift        = 1;
extern color   BuyColor           = clrCornflowerBlue;
extern color   SellColor          = clrSalmon;
//---
double SL=0,TP=0;
//-- Incluir módulos --
#include <stderror.mqh>
#include <stdlib.mqh>
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start()
  {
//--- Si hay más de 100 barras en la gráfica y el flujo de trades es libre
   if(Bars<100 || IsTradeAllowed()==false)
      return;
//--- Si el tamaño del lote calculado está en consonancia con el actual monto del depósito
   if(CalculateCurrentOrders(Symbol())==0)
      CheckForOpen();   // empieza a trabajar
   else
      CheckForClose();  // de lo contrario, cerrar posiciones
  }
//+------------------------------------------------------------------+
//| Determina las posiciones abiertas                                |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)
         break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY) buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//---- volumen de órdenes de retorno
   if(buys>0)
      return(buys);
   else
      return(-sells);
  }
//+------------------------------------------------------------------+
//| Calcula el tamaño óptimo de lote                                 |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int    orders=HistoryTotal(); // historial total de órdenes
   int    losses=0;              // número de pérdida de pedidos sin pausa
//---- selecionar tamaño del lote
   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcula el numero de órdenes perdidas sin pausa
   if(DecreaseFactor>0)
     {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
           {
            Print("Error en el historial!");
            break;
           }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL)
            continue;
         //----
         if(OrderProfit()>0)
            break;
         if(OrderProfit()<0)
            losses++;
        }
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
     }
//---- devuelve el tamaño del lote
   if(lot<0.1)
      lot=0.1;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Función de apertura de la posición                               |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double ma;
   int    res;
//---- ir a trading sólo para el primer tick de la nueva barra
   if(Volume[0]>1)
      return;
//---- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod_Open,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- condiciones de venta
   if(Open[1]>ma && Close[1]<ma)
     {
      if(StopLoss>0)
         SL=Bid+Point*StopLoss;
      if(TakeProfit>0)
         TP=Bid-Point*TakeProfit;
      res=WHCOrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,SL,TP,"Moving Average",MAGICMA,0,SellColor);
      if(res<0)
        {
         Print("Error when opening a SELL order #",GetLastError());
         Sleep(10000);
         return;
        }
     }
//---- condiciones de compra
   if(Open[1]<ma && Close[1]>ma)
     {
      SL=0;TP=0;
      if(StopLoss>0)
         SL=Ask-Point*StopLoss;
      if(TakeProfit>0)
         TP=Ask+Point*TakeProfit;
      res=WHCOrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,SL,TP,"Moving Average",MAGICMA,0,BuyColor);
      if(res<0)
        {
         Print("Error when opening a BUY order #",GetLastError());
         Sleep(10000);
         return;
        }
     }
//----
  }
//+------------------------------------------------------------------+
//| Función de cierre de posiciones                                  |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma;
//---- ir a trading sólo para el primer tick de la nueva barra
//(empezar a trabajar en el primer tick de la nueva barra)
   if(Volume[0]>1) return;
//---- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod_Close,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //---- comprobar el tipo de órden 
      if(OrderType()==OP_BUY)
        {
         if(Open[1]>ma && Close[1]<ma)
            OrderClose(OrderTicket(),OrderLots(),Bid,3,BuyColor);     break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Open[1]<ma && Close[1]>ma)
            OrderClose(OrderTicket(),OrderLots(),Ask,3,SellColor);     break;
        }
     }
  }
//+-------------------------------------------------------------------+
//| Abre posiciones en modo de Ejecución de Mercado                   |
//+-------------------------------------------------------------------+
int WHCOrderSend(string    symbol,
                 int       cmd,
                 double    volume,
                 double    price,
                 int       slippage,
                 double    stoploss,
                 double    takeprofit,
                 string    comment,
                 int       magic,
                 datetime  expiration,
                 color     arrow_color)
  {
   int ticket=OrderSend(symbol,cmd,volume,price,slippage,0,0,comment,magic,expiration,arrow_color);
   int check=-1;
   if(ticket>0 && (stoploss!=0 || takeprofit!=0))
     {
      if(!OrderModify(ticket,price,stoploss,takeprofit,expiration,arrow_color))
        {
         check=GetLastError();
         if(check!=ERR_NO_MQLERROR)
            Print("OrderModify error: ",ErrorDescription(check));
        }
     }
   else
     {
      check=GetLastError();
      if(check!=ERR_NO_ERROR)
         Print("OrderSend error: ",ErrorDescription(check));
     }
   return(ticket);
  }
//+------------------------------------------------------------------+

Descargar el archivo adjunto del MA_Мodify EA. El archivo descargado debe ser colocado en la carpeta \MQL4\experts\ del terminal comercial MetaTrader 4. Por ejemplo, si tienes el terminal instalado en C:\Program Files\MetaTrader 4\, usted necesitará colocar el Asesor Experto en C:\Program Files\MetaTrader 4\MQL4\experts\. Después de esto iniciar (restart) el terminal.

El archivo del EA - MA_Мodify - debería aparecer a la izquierda, en la ventana del navegador-> Asesores Expertos.

Iniciar el probador de estrategias desde el menú (Ctrl + R) del terminal comercial MetaTrader 4. Otras Pasos serán los siguientes (véase la imagen abajo):


  • De la lista desplegable del "Asesor Experto" seleccione nuestro experto Moving_Average_Мodify.
  • En la lista de "Símbolo" Seleccione el par de divisas para nuestras pruebas, por ejemplo EURUSD.
  • En la lista de «Período» Seleccione el timeframe, por ejemplo H1.
  • Compruebe la "Fecha de uso" y establecer el intervalo de tiempo para ser utilizado en la simulación y optimización, por ejemplo, de 01 de agosto de 2008 al 01 de mayo de 2009. La razón por la qué debemos seleccionar el 1 de mayo en lugar de la fecha actual se comprenderá en un rato.
  • En la lista «Modelo» seleccione el modo "Sólo precios de apertura".

Debemos decir algunas palabras sobre este modo. Cuando se trabaja en este modo, las señales de apertura y cierre de posiciones sólo se reciben en la apertura de la nueva barra siguiente. ¡Este es el modo de entrada de mercado previsto en el algoritmo de la operación de nuestro Asesor Experto! Más información sobre modos de modelado se puede encontrar en el artículo titulado "Probador de Estrategias: Modos de Modelado durante el Testing".

Vamos a proceder a las pruebas. Por ahora, utilizaremos los parámetros por defecto en la configuración del EA. Haga clic en "Inicio" en la esquina inferior derecha del probador de estrategias y se preparan para ver los resultados de la prueba una vez que la barra de progreso llega al final. Para ver los resultados, abra la pestaña de "Informe" del probador de estrategias. Como alternativa, puede abrir el cuadro de balance de la paso de prueba - la pestaña "Gráfico" (véase la imagen superior).

Lamentablemente, los resultados son muy angustiantes. Nuestro depósito inicial constantemente tiende a cero... Podemos ver las estadísticas generalizadas del pase de esta prueba en la pestaña "Informe". Los usuarios novatos lo pueden encontrar útil para familiarizarse con el artículo "Lo que quieren decir los números del informe en el experto pruebas".


Conclusión: nuestro Asesor Experto no puede obtener trading beneficioso con el símbolo y timeframes especificados con los parámetros establecidos por defecto en la configuración del EA. Deberíamos encontrar esos valores de los parámetros para que el EA sea rentable!

En otras palabras,"optimización significa encontrar estos parámetros para el sistema de comercio seleccionado que nos permita obtener los mejores resultados" (ver el artículo ¿Cómo no caer en trampas de optimización?).

En el modo de optimización, el Asesor Experto se ejecuta varias veces con diferentes variables externas que varían según el esquema que hemos establecidos en la configuración de Asesor Experto: comienzo del valor, paso y valor de parada. El probador de estrategias de MetaTrader 4 le permite optimizar varios parámetros simultáneamente. Ahora, tenemos que configurar los parámetros de optimización. Para ello, haga clic en el botón de "Propiedades de experto" (el botón superior derecho) y abra la pestaña "Entradas":


A la izquierda, marque las casillas de los parámetros que vamos a optimizar y establezca los valores de inicio y parada, así como el paso de las columnas "Start", "Stop" y "El paso", respectivamente. La captura de pantalla muestra qué parámetros vamos a optimizar (buscar):

  • StopLoss - Stop Loss (Inicio = 400 puntos, paso = 10 puntos, stop = 1500 puntos).
  • TakeProfit - Take Profit.
  • MovingPeriod_Open - periodo del MA para la posición de apertura.
  • MovingPeriod_Close - periodo del MA para la posición de cierre.

Los valores de start y stop de la optimización se establecen en función del sentido común. Para EURUSD Н1, parece ser bastante razonable establecer los valores como se muestra en la imagen superior. Por favor tenga en cuenta que en este caso tenemos cotizaciones de cinco dígitos en el MetaTrader 4.

La optimización en el modo "Sólo precios de apertura" es muy rápida. Así que podemos permitirnos optimizar los cuatro parámetros seleccionados al mismo tiempo. Cerrar la ventana de "Propiedades del Experto" haciendo clic en "Aceptar" y en el probador de estrategias marque la casilla de "Optimización" de la derecha. Haga clic en "Start" en la esquina inferior derecha del probador de estrategias. La optimización está en progreso.

Visualmente puede monitorear el proceso utilizando las lengüetas del probador de estrategias "Optimización de resultados" y "Gráfico de optimización". Si aparecen áreas verdes en lugar de la tabla de optimización, le recomendamos que desmarque la opción "superficie de dos dimensiones - espacio" en la ventana que aparece.

Al finalizar de la optimización (cuando la barra de progreso llega al final), abrir la ficha del probador de estrategias «Resultados de la optimización» y cambiar el tamaño arrastrando su borde superior. Después de eso, haga clic en la segunda columna, "Beneficio" para arreglar los resultados de pase en orden descendiente. Podremos ver lo siguiente:


Como indica la captura de pantalla, algunas combinaciones de los parámetros del EA producen el beneficio máximo de $4.658. Sin embargo, no tengan prisa configurando estos parámetros en nuestro Asesor Experto. ¡Teniendo en cuenta la rentabilidad, la retirada es demasiado grande! Para empezar, deberíamos usar los resultados para elegir la combinación más adecuada de beneficio máximo y reducción razonable. Es decir por qué tomamos paso 2406 con la rentabilidad de $2.715 y la reducción relativa mínima de 19,83%.

Haga clic derecho sobre esta línea. Se abrirá una ventana donde usted debe hacer clic en "Establecer parámetros de entrada". Cuando esto sucede, los parámetros seleccionados se establecen automáticamente en el EA. Haga clic en el botón "Inicio" en la esquina inferior derecha del probador de estrategias. Después de la finalización de la prueba (pasos), abra la pestaña de "Informe" para comprobar los resultados de la prueba.

  • Depósito inicial 1.000,00
  • Beneficio neto total 2,705.40
  • Beneficio bruto 7,520.57
  • Pérdidas brutas-4,815.17
  • Factor de beneficio 1.56
  • Beneficio esperado 15.37
  • Máximo drawdown 413.08 (11.48%)
  • Drawdown relativo 19,88% (399.50)
  • Total operaciones 176
  • Posiciones cortas (ganados %) 80 (41.25%)
  • Posiciones largas (% ganado) 96 (32.29%)
  • Operación beneficiosa más grande 142.10
  • Operación de pérdida más grande -87.10
  • Promedio de las operaciones ganadas 117.51
  • Promedio de las operaciones perdidas-42.99
  • Máximas victorias consecutivas (ganancia en dinero) 4 (567.62)
  • Derrotas consecutivas máximo (pérdida de dinero) 8 (-310.27)
  • StopLoss=870; TakeProfit=1420; Lots=0.1; MaximumRisk=0.02; DecreaseFactor=3; MovingPeriod_Open=37; MovingPeriod_Close=54; MovingShift=1;


¿Son estables estos resultados? ¿Será las operaciones del asesor experto en tiempo real con los mismos resultados como se muestra cuando se ejecuta en el probador de estrategias? Estas preguntas pueden ser contestadas en cierta medida durante la llamada prueba de más adelante!

Permítanme recordarles que hemos fijado el período de simulación y optimización de 01 de agosto de 2008 al 01 de mayo de 2009. Deliberadamente hemos evitado optimización sobre el intervalo de agosto de 2008 a la fecha actual, formación del asesor experto sobre el intervalo de tiempo especificado. Ahora, es tiempo para un "examen" y ver lo que el asesor experto es capaz de hacer.

Es decir, probar con los mismos parámetros fuera del período de optimización - del 2 de mayo al 08 de junio de 2009! Es costumbre llamar a tal prueba de ejecución de una "prueba directa", en contraposición a la anterior parte - posterior.

Los resultados de la prueba hacia adelante nos permiten evaluar objetivamente y tener mas confianza en las perspectivas del trading para nuestro asesor experto en tiempo real. No se mantenga más larga la espera y finalmente ejecutar una prueba hacia adelante, como se describe anteriormente. Para hacer esto, necesitamos establecer el intervalo de tiempo en el probador de estrategias de 02 de mayo de 2009 (8 de junio) y haga clic en "Start"! Aquí están los resultados:

  • Depósito inicial 1.000,00
  • Beneficio neto total 348.44
  • Beneficio bruto 1,049.34
  • Pérdidas brutas-700.90
  • Factor de beneficio 1.50
  • Beneficio esperado 8.93
  • Máximo drawdown 287.60 (20.82%)
  • Drawdow relativo 20.82% (287.60)
  • Operaciones totales 39
  • Posiciones cortas (ganados %) 22 (59.09%)
  • Posiciones largas (% ganado) 17 (70.59%)
  • Operación ganada de más beneficio 42.00
  • Operación perdida más grande -89.00
  • Promedio de ganancia 41.97
  • Promedio de pérdidas -50.06
  • Máximas victorias consecutivas (ganancia en dinero) 6 (251.90)
  • Pérdidas consecutivas máximas (pérdida de dinero) 3 (-267.00)


Un resultado sorprendente! Esto es muy raro en la primera carrera y es totalmente inesperado. La prueba de avance ha demostrado un beneficio bastante bueno, sin embargo no sin la reducción. Idealmente, loas operación de pérdias que dio lugar a los valores de reducción más altos se deben revisar en la tabla utilizando el modo de visualización del probador de estrategias cualquier lector de este artículo puede repetir los pasos descritos anteriormente (en MetaTrader 4 GAIN) y ver por sí mismos que todos los resultados mostrados son totalmente justos. En una nota lateral, una prueba adelante similar con parámetros de optimización más rentables y una mayor reducción (3.061 y 771.95) produce resultados mucho peores.

Pero no levanto sus esperanzas todavía. Una evaluación más objetiva del desempeño deL EA requiere una serie de ESTAS pruebas hacia adelante para ejecutarse sobre datos históricos. Una buena y clara descripción de todas las medidas necesarias y la evaluación general de resultados se ofrece en los artículos de la serie titulados "Expertos Asesores basado en los sistemas de Trading y alquimia de optimización de Robots de Trading".

Aquí, nuestro objetivo es familiarizar a los lectores con los primeros pasos básicos para trabajar con asesores expertos. Volvamos al valor de aspiración alta que vimos cuando se ejecuta la prueba hacia adelante. El gráfico sugiere que la retirada se produjo después de 18 de mayo de 2009 - oficios 18 a 20. Vamos a intentar controlar la situación en el modo de visualización del probador de estrategias. y cambiar el modo en el campo "Modelo" a "Todos los ticks" para mayor claridad. El modo de visualización nos permite controlar la velocidad del tiempo (es decir ratio de velocidad de avance). La fecha de 18 de mayo de 2009 y haga clic en "Inicio".

Esto es lo que podemos ver en la pérdida de parte de los datos históricos:

La reducción significativa fue causada por tres operaciones de pérdidas consecutivas de venta. Fueron no en la dirección de la tendencia, inmediatamente expone el principal inconveniente de nuestro asesor experto: su algoritmo de la operación es demasiado primitivo. Necesitamos al menos añadir un filtro de tendencia básica o separar el mecanismo de entrada para operaciones largas y cortas de más o menos la misma manera como se sugiere en el artículo "Non-standard Automated Trading". Sin embargo estas cuestiones caen fuera del alcance de este artículo.


Conclusión

Hemos descrito las prácticas básicas de trabajo para probar y optimizar los EA's en el probador de estrategias. Para obtener una mayor comprensión y más experiencia con este tipo de pruebas, puede consultar los artículos "cómo implementar tu propio criterio de optimización" y "Optimización y prueba fuera de la muestra" .

En conclusión, vamos a considerar que algunos de las más frecuentes preguntas que los nuevos usuarios suelen tener al probar EA's.

1. ¿Qué causa la diferencia en los resultados de las mismas pruebas en diferentes centros de tratamientos?

La diferencia de resultados en diferentes centros de tratamientos es causada por diferencias de cotización. Cada broker tiene sus propias fuentes para alimentar las cotizaciones. Esto da lugar a diferencias en el precio, que luego se refleja en los resultados de la prueba.

2. ¿Por qué las mismas pruebas en el mismo centro de tratamiento de resultados son diferentes?

Los diferentes resultados obtenidos en el mismo centro de tratamiento pueden ser causados por varias razones, las más comunes:
Spreadflotante - tiene un impacto muy fuerte en los resultados, especialmente cuando pruebas con menor timeframes y utilizando el modo de CADA TICK. El probador de estrategias de MetaTrader 4 almacena el último valor de spread. El spread puede cambiar en la siguiente ejecución y, en consecuencia, el resultado será diferente.

3. ¿Qué causa la diferencia en los resultados cuando se prueban en el "todos los ticks" y modo "sólo precios de apertura"?

La cosa es que si el asesor experto trabaja basado en ticks, obtiene y analiza datos sobre todos los ticks, que obtienen datos y envía señales sólo a las nuevas barras basadas en el trabajo de precios de apertura, con todas las consecuencias que vienen con él... Conclusión: Es fundamental determinar cómo opera el asesor experto y comenzar el probador de estrategias en el modo apropiado.

4. ¿Por qué no hay posiciones abiertas por el EA?

En primer lugar, debe abrir el diario del probador de estrategias. Mostrará un código de error posible. La interpretación del código puede encontrarse en la sección de Códigos de Error .

Este artículo ha respondido a muchas preguntas de los usuarios de inicio de la plataforma de trading MetaTrader 4. Los usuarios novatos tienen la oportunidad de ganar un poquito de experiencia pasando (repitiendo) los pasos descritos por cuenta propia y obteniendo la habilidad esencial para futuros experimentos.

El artículo fue preparado con los materiales que se hacen referencia en el texto, así como la información de la página web del sitio web de I.Kim Cómo ejecutar un EA?.

Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/1385

Archivos adjuntos |
Gráficos sin conexión en el nuevo MQL4 Gráficos sin conexión en el nuevo MQL4
El MQL4 actualizado tiene un nuevo formato para almacenar datos históricos y proporciona la estructura adecuada de MqlRates para el almacenaje conveniente de los valores tiempo, apertura, bajo, alto, cierre y volumen. Durante muchos años, los traders han desarrollado sus aplicaciones MQL4 que recogen y almacenan sus datos en ficheros HST para generar gráficos offline. Podemos asegurar que todos los archivos EX4 previamente compilados trabajarán en la nueva terminal MetaTrader 4 del mismo modo que antes.
Dibujo de indicadores de aguja usando la clase CCanvas Dibujo de indicadores de aguja usando la clase CCanvas
Los instrumentos indicadores de esfera nos rodean por todas partes: en los coches y aviones, en la industria y en nuestra vida cotidiana. Se aplican cuando se requiere una rápida reacción al valor controlado por parte del operador. En este artículo conoceremos la biblioteca de instrumentos indicadores para MetaTrader 5.
Actualización de MetaTrader 4 Build 600 o superior Actualización de MetaTrader 4 Build 600 o superior
La nueva versión del terminal MetaTrader 4 cuenta con la estructura actualizada de almacenamiento de datos de usuario. En versiones anteriores todos los programas, plantillas, perfiles etc. se almacenan directamente en la carpeta de instalación del terminal. Ahora todos los datos necesarios requeridos para un determinado usuario se almacenan en un directorio llamado carpeta de datos. Leer el artículo para encontrar respuestas a preguntas frecuentes.
MetaTrader 4 en Mac OS MetaTrader 4 en Mac OS
Los productos de Apple se han convertido en muy populares. MetaQuotes Software Corp. siguiendo atentamente el progreso de la industria TI ya se han publicado las aplicaciones especiales móviles para dispositivos basados en iOS - MetaTrader 4 para iPhone y MetaTrader 5 para iPhone. Hay muchos temas en el foro de MQL4.community, donde la gente está buscando una solución para el funcionamiento de MetaTrader 4 bajo sistema operativo Mac OS. En este artículo, usted encontrará la manera de trabajar en MetaTrader 4 a través del popular sistema operativo de Apple.