Se creó un buen hilo con información visualizada - Elhilo de Consejos. Se recomienda encarecidamente leer este pequeño hilo a todos los novatos (para saber), y a los usuarios experimentados (para refrescar sus conocimientos).
----------------
Servicio autónomo
Cómo depositar fondos en su cuenta MQL5
Cómo pasar a la siguiente etapa
Cómo dejar un feedback
Qué es una captura de pantalla
Cómo adjuntar un archivo de una Especificación de Requisitos preliminar/archivos de otros formatos
Lo que hay que proporcionar a un desarrollador si el programa tiene un error
Cómo insertar una imagen/código/vídeo/tabla en un texto
Cómo hacer una captura de pantalla en un dispositivo móvil
Cómo ampliar el periodo de ejecución de la orden/coste
No desaparecer durante 5 días después de establecer 3 días para la ejecuciónCliente: Cómo crear una imagen GIF, en lugar de un vídeo, para incrustar en un chat s
----------------
Plataforma
Cómo instalar un Asesor Experto/indicador
¿Dónde está el diario de la plataforma/probador/optimizador?
Dónde está el ID de MetaQuotes para confugar las notificaciones push
Cómo hacer una captura de pantalla de un error a través del menú del gráfico en tres clics
Dónde activar y configurar las notificaciones por correo electrónico
Dónde están los archivos con los que trabaja un EA/indicador
Qué son los campos "descripción" e "icono" y dónde encontrarlos
Dónde encontrar el número de construcción de la plataformaCómo activar la ventana de datos y ver los valores del indicador
Cómo activar la escala de tiempo precisa
Cómo guardar una plantilla de gráfico
Cómo añadir una URL para trabajar vía WebRequestDónde encontrar los archivos EX4/EX5
----------------
Asesor Experto
Qué es el Número Mágico
Cómo funciona el trailing stopDónde está el diario del EA
Por qué un EA/indicador es gris en el Navegador
Cuál es la diferencia entre Netting y Hedging
Cómo instalar un producto comprado en el Mercado
----------------
Probador
Cómo guardar/cargar un archivo de configuración
Dónde encontrar el diario de la plataforma/probador/optimizador
¿En qué se diferencian los modos de prueba?
Cómo lanzar y utilizar las pruebas visuales
Cómo descargar un historial de precios disponibles en MetaTrader 4
La versión beta de la plataforma MetaTrader 5 actualizada se lanzará el 14 de octubre de 2018. Actualizaremos nuestro servidor público MetaQuotes-Demo ubicado en access.metatrader5.com:443. Invitamos a todos los traders a unirse a las pruebas para evaluar las características de la plataforma actualizada y ayudar a los desarrolladores a corregir errores.
Para actualizar la plataforma MetaTrader 5 hasta la build 1910, conéctese al servidor access.metatrader5.com:443.
La versión final de la nueva plataforma MetaTrader 5 se lanzará después de la prueba beta pública.
La actualización incluirá los siguientes cambios:
Terminal: Ahora se pueden separar los gráficos de los símbolos financieros de la ventana del terminal de operaciones.
Esta característica es conveniente cuando se utilizan varios monitores. Así, puede colocar la ventana principal de la plataforma en un monitor para controlar el estado de su cuenta, y mover los gráficos a la segunda pantalla para observar la situación del mercado. Para separar un gráfico del terminal, desactive la opción de anclaje en su menú contextual. A continuación, mueva el gráfico al monitor deseado.
Una barra de herramientas independiente en los gráficos desacoplados permite aplicar objetos de análisis e indicadores sin tener que cambiar de monitor. Utilice el menú contextual de la barra de herramientas para gestionar el conjunto de comandos disponibles o para ocultarla.
Terminal: Se han actualizado completamente los chats incorporados. Ahora soportan diálogos de grupo y canales. Lleva a cabo discusiones privadas con un grupo de personas en un entorno unificado sin tener que cambiar entre diferentes diálogos y crea canales según tus intereses e idiomas. Comuníquese con sus colegas y amigos en MQL5.community sin necesidad de visitar el sitio web.
Los chats de grupo y los canales pueden ser públicos o privados. Sus creadores deciden si es posible unirse a ellos libremente o sólo por invitación. También puede asignar moderadores a los canales y chats para un mayor control de la comunicación.
Terminal: Se ha añadido soporte para aumentar la precisión del volumen de las operaciones con criptomonedas. Ahora el volumen mínimo posible de las operaciones de trading es de 0,00000001 lotes. La profundidad del mercado, la hora y las ventas, así como otros elementos de la interfaz, cuentan ahora con la capacidad de mostrar volúmenes con una precisión de 8 decimales.
El volumen mínimo y su paso de cambio dependen de la configuración del instrumento financiero por parte del corredor.
Terminal: Añadida la pestaña de artículos publicados en MQL5.community a la ventana de la caja de herramientas. Más de 600 materiales detallados sobre el desarrollo de estrategias de trading en MQL5 están ahora disponibles sin necesidad de salir del terminal. Cada semana se publican nuevos artículos.
Terminal: Se ha añadido soporte para la autenticación extendida mediante certificados cuando se trabaja bajo Wine.
Terminal: Corregida la visualización de la profundidad del mercado cuando está limitada a un nivel.
Terminal: Se ha añadido el comando "Guardar como imagen" a la barra de herramientas estándar. Ahora, es mucho más fácil tomar fotos de los gráficos y compartirlas en la comunidad.
Terminal: Se ha corregido la aplicación del desplazamiento de tiempo al importar barras y ticks. Anteriormente, el desplazamiento no se aplicaba en algunos casos.
MQL5: Añadido el soporte nativo para las bibliotecas .NET con la importación de funciones "inteligentes". Ahora las bibliotecas .NET se pueden utilizar sin escribir envoltorios especiales - el MetaEditor lo hace por sí mismo.
Para trabajar con las funciones de las bibliotecas .NET, basta con importar la propia DLL sin definir funciones específicas. MetaEditor importa automáticamente todas las funciones con las que es posible trabajar:
Estructuras simples (POD, plain old data)
Estructuras con tipos de datos simples
Funciones estáticas públicas con parámetros, en las que sólo se utilizan tipos simples y estructuras POD o sus matrices
Para llamar a las funciones de la biblioteca, basta con importarla:
#import "TestLib.dll"//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
int x=6;
TestClass::Inc(x);
Print(x);
}
El código C# de la función Inc de la TestClass tiene el siguiente aspecto:
Como resultado de la ejecución, el script devuelve el valor de 7.
MQL5: Se ha añadido soporte para los especificadores inline, __inline y __forceinline al analizar el código. La presencia de los especificadores en el código no causa errores y no afecta a la compilación. Por el momento, esta característica simplifica la transferencia de código С++ a MQL5. Encuentre más información sobre los especificadores en MSDN.
MQL5: Ejecución significativamente optimizada de los programas MQL5. En algunos casos, la mejora del rendimiento puede alcanzar el 10%. Recompile sus programas en la nueva versión del MetaEditor para que se ejecuten más rápido.
Lamentablemente, los nuevos programas no serán compatibles con las versiones anteriores del terminal debido a esta optimización adicional. Los programas compilados en el MetaEditor versión 1910 y posteriores no pueden ser lanzados en las versiones de terminal inferiores a la 1880. Los programas compilados en versiones anteriores del MetaEditor pueden ejecutarse en los nuevos terminales.
MQL5: Optimizadas significativamente múltiples funciones de MQL5.
MQL5: Añadidas nuevas propiedades para adjuntar/desconectar gráficos de la ventana principal del terminal y gestionar su posición.
TERMINAL_SCREEN_LEFT - la coordenada izquierda de la pantalla virtual. Una pantalla virtual es un rectángulo que cubre todos los monitores. Si el sistema tiene dos monitores ordenados de derecha a izquierda, la coordenada izquierda de la pantalla virtual puede estar en el borde de dos monitores.
TERMINAL_SCREEN_TOP - la coordenada superior de la pantalla virtual.
TERMINAL_SCREEN_WIDTH - ancho del terminal.
TERMINAL_SCREEN_HEIGHT - altura del terminal.
TERMINAL_LEFT - la coordenada izquierda del terminal en relación con la pantalla virtual.
TERMINAL_TOP - la coordenada superior del terminal con respecto a la pantalla virtual.
TERMINAL_RIGHT - la coordenada derecha del terminal con respecto a la pantalla virtual.
TERMINAL_BOTTOM - la coordenada inferior del terminal con respecto a la pantalla virtual.
MQL5: Añadido el campo volume_real a las estructuras MqlTick y MqlBookInfo. Está diseñado para trabajar con volúmenes de mayor precisión. El valor volume_real tiene mayor prioridad que 'volume'. El servidor utilizará este valor, si se especifica.
struct MqlTick { datetime time; // Last price update time double bid; // Current Bid price double ask; // Current Ask price double last; // Current price of the Last trade ulong volume; // Volume for the current Last price long time_msc; // Last price update time in milliseconds uint flags; // Tick flags double volume_real; // Volume for the current Last price with greater accuracy };
struct MqlBookInfo
{
ENUM_BOOK_TYPE type; // order type from the ENUM_BOOK_TYPE enumerationdouble price; // pricelong volume; // volumedouble volume_real; // volume with greater accuracy
};
MQL5: Relajación de los requisitos para el casting de las enumeraciones. En caso de un casting implícito, el compilador sustituye automáticamente el valor de una enumeración correcta y muestra una advertencia.
Para el siguiente código:
enum Main
{
PRICE_CLOSE_,
PRICE_OPEN_
};
input Main Inp=PRICE_CLOSE;
//+------------------------------------------------------------------+//| Start function |//+------------------------------------------------------------------+voidOnStart()
{
}
El compilador muestra la advertencia:
implicit conversion from 'enum ENUM_APPLIED_PRICE' to 'enum Main' 'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
Anteriormente, se generaba el siguiente error en ese caso:
'PRICE_CLOSE' - cannot convert enum
El compilador seguirá mostrando el error si las enumeraciones se utilizan incorrectamente en los parámetros de la función.
MQL5: Corregida la compilación de funciones de plantilla. Ahora, cuando se utilizan funciones de plantilla sobrecargadas, sólo se instancia la sobrecarga necesaria, en lugar de todas las existentes.
class X { };
void f(int) { }
template<typename T>
void a(T*) { new T(2); } // previously, the compiler generated the error heretemplate<typename T>
void a() { f(0); }
voidOnInit() { a<X>(); }
MQL5: Optimizados algunos casos de acceso al historial de ticks mediante la función CopyTicks*.
Probador: Corregido el cálculo de la precisión de la moneda del depósito al probar/optimizar y generar los informes pertinentes.
Probador: Optimizado y acelerado el funcionamiento del probador de estrategias.
MetaEditor: Corregida la búsqueda de palabras enteras. Ahora al buscar, el guión bajo se cuenta como un carácter regular, en lugar de un delimitador de palabras.
En este hilo se habla de ejemplos de código MQL5. Habrá ejemplos de cómo obtener datos de indicadores, cómo programar asesores... en general, cualquier pregunta de principiante al lenguaje MQL5.
Si estás empezando a familiarizarte con el terminal MetaTrader 5, te recomiendo los siguientes hilos:
Why products are checked before they are published in the Market
Antes de que cualquier producto se publique en el Mercado, debe someterse a comprobaciones previas obligatorias, ya que un pequeño error en la lógica del experto o del indicador puede causar pérdidas en la cuenta de trading. Por ello, hemos desarrollado una serie de comprobaciones básicas para garantizar el nivel de calidad requerido de los productos del Mercado.
Si los moderadores del Mercado identifican algún error en el proceso de comprobación de su producto, tendrá que solucionarlo todo. Este artículo considera los errores más frecuentes que cometen los desarrolladores en sus robots de trading e indicadores técnicos. También recomendamos la lectura de los siguientes artículos:
La actualización de la plataforma MetaTrader 5 se lanzará el 21 de febrero de 2019. La nueva versión presenta los siguientes cambios:
Terminal: Calendario Económico incorporado completamente revisado.
El Calendario Económico es nuestra solución patentada. En él encontrarás más de 600 noticias e indicadores financieros relacionados con las 13 economías más grandes del mundo: EE. UU., Unión Europea, Japón, Reino Unido, Canadá, Australia, China, entre otros. Los datos relevantes se recopilan de fuentes abiertas en tiempo real.
La nueva versión cuenta con contenidos actualizados y filtros de eventos avanzados: por hora, prioridad, monedas y países.
Ahora se puede acceder a los datos del calendario desde los programas MQL5. Consulte a continuación para obtener más información.
Terminal: Se agregó un nuevo tipo de aplicaciones MQL5: Servicios. Este nuevo tipo permite la creación de feeds de precios personalizados para la terminal, es decir, implementar la entrega de precios desde sistemas externos en tiempo real, tal como se implementa en los servidores comerciales de los corredores.
A diferencia de los asesores expertos, los indicadores y los scripts, los servicios no están vinculados a un gráfico específico. Dichas aplicaciones se ejecutan en segundo plano y se inician automáticamente cuando se inicia el terminal (a menos que dicha aplicación se haya detenido por la fuerza).
Los servicios se pueden administrar desde una nueva sección dentro de la ventana del Navegador:
Cómo crear servicios Para crear una plantilla de servicio, utilice la opción correspondiente del asistente de MQL5 . Los servicios tienen un punto de entrada OnStart , similar a los scripts. En este punto, puede implementar un ciclo interminable de recepción y manejo de datos utilizando funciones de red .
Cómo lanzar servicios Para ejecutar varias copias de Expert Advisor o indicador con diferentes parámetros, debe iniciarlos en diferentes gráficos. En este caso, se crean diferentes instancias de programa, que luego funcionan de forma independiente. Los servicios no están vinculados a gráficos, por lo que se ha implementado un mecanismo especial para la creación de instancias de servicio.
Seleccione un servicio del Navegador y haga clic en "Agregar servicio" en su menú contextual. Esto abrirá un cuadro de diálogo estándar del programa MQL5, en el que puede habilitar/deshabilitar el comercio y acceder a la configuración de la señal, así como establecer varios parámetros.
Una instancia de servicio se puede iniciar y detener utilizando el menú de instancia apropiado. Para administrar todas las instancias, use el menú de servicio.
Terminal: Se ha agregado un programa de aprendizaje.
La nueva función ayudará a los principiantes a aprender a interactuar con la plataforma. Hemos agregado más de 100 consejos interactivos sobre las funciones principales de la plataforma.
Los consejos se muestran a la perfección como una barra de progreso en la barra de herramientas y, por lo tanto, no distraen al usuario.
Las sugerencias solo aparecen para las acciones que nunca ha realizado en la plataforma.
Todos los consejos incluyen enlaces interactivos, mediante los cuales puede navegar a los elementos de interfaz relevantes. Por ejemplo, un cuadro de diálogo comercial o un menú con el programa deseado se puede iniciar directamente desde la punta.
El área llena de la barra de progreso aumentará cada vez que realice las acciones apropiadas y continúe entrenando.
Terminal: El historial de la cuenta comercial se puede presentar como posiciones. La plataforma recopila datos sobre transacciones relacionadas con la posición (apertura, aumento de volumen, cierre parcial o total) y agrupa la información en un solo registro. Así podrá acceder a los detalles de la posición: hora de apertura y cierre, volumen, precio y resultado. Este formulario de presentación eficiente ahora está disponible en los informes de historial exportados a archivos.
Terminal: Se agregó una nueva API que permite la solicitud de datos del terminal MetaTrader 5 a través de aplicaciones que utilizan el lenguaje R.
Hemos preparado un paquete especial de MetaTrader. Contiene DLL para interacciones entre R y el terminal MetaTrader 5, documentación y archivos r auxiliares. Estamos completando el registro del paquete en el repositorio CRAN , luego de lo cual estará disponible para su descarga e instalación.
El paquete se puede instalar usando un comando especial:
R CMD INSTALL --build MetaTrader
Están disponibles los siguientes comandos relacionados con la solicitud de datos:
MT5Initialize inicializa y establece conexión con el terminal MetaTrader 5. Si es necesario, el terminal se inicia durante la ejecución del comando.
MT5Shutdown se desinicializa y se desconecta de MetaTrader 5.
MT5Version obtiene la versión de terminal MetaTrader 5.
MT5TerminalInfo obtiene el estado y los parámetros de la conexión del terminal al servidor de un corredor (número de cuenta y dirección del servidor).
MT5WaitTerminal espera a que el terminal MetaTrader 5 se conecte al servidor de un bróker.
MT5CopyTicksFrom(símbolo, desde, conteo, banderas) copia el número especificado de marcas a partir de la fecha especificada. La fecha se especifica en milisegundos desde el 01.01.1970.
MT5CopyTicksRange(símbolo, desde, hasta, banderas) copia los ticks dentro del período especificado. Las fechas se especifican en milisegundos desde el 01.01.1970.
MT5CopyRatesFrom(símbolo, período de tiempo, desde, recuento) copia el número especificado de barras de un minuto a partir de la fecha especificada. La fecha se especifica en segundos desde el 01.01.1970.
MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) copia barras de un minuto desde la posición especificada en relación con la última barra.
MT5CopyRatesFromRange(símbolo, período de tiempo, fecha_desde, fecha_hasta) copia barras dentro del período especificado. Las fechas se especifican en segundos desde el 01.01.1970.
La lista de comandos admitidos se ampliará aún más.
Terminal: cuadro de diálogo Cerrar por optimizado utilizado para cerrar una posición con una opuesta. Ahora, el diálogo no se ralentiza incluso si tiene una gran cantidad de posiciones abiertas.
Terminal: se corrigieron errores de cálculo de símbolos sintéticos , debido a los cuales los datos podrían omitirse ocasionalmente.
Terminal: cuando se elimina un símbolo personalizado , también se eliminan los archivos que almacenan su historial de ticks y barras. Esto evita la acumulación de datos no utilizados en el disco duro.
Terminal: Visualización fija de resultados de búsqueda en pantallas de alto DPI.
MQL5: Acceso implementado a los datos del calendario económico de los programas MQL5.
Nuevas funciones
CalendarCountryById: obtiene la descripción del país por identificador.
bool CalendarCountryById(
constlong country_id, // country ID
MqlCalendarCountry& country // country description
);
CalendarEventById: obtiene la descripción del evento por identificador.
CalendarValueHistoryByEvent: obtiene la matriz de valores para el período de tiempo especificado, por identificador de evento.
bool CalendarValueHistoryByEvent(
ulong event_id, // event ID
MqlCalendarValue& values[], // array of valuesdatetime datetime_from, // period beginning datedatetime datetime_to= 0 // period end date
);
CalendarValueHistory: obtiene la matriz de valores para el período de tiempo especificado para todos los eventos, filtrados por país o moneda.
bool CalendarValueHistory(
MqlCalendarValue& values[], // array of valuesdatetime datetime_from, // beginning of perioddatetime datetime_to= 0 , // end of periodstring country_code=NULL, // country codestring currency=NULL // currency
);
CalendarValueLastByEvent: obtiene una matriz de valores del último evento por identificador. Esta función habilita la solicitud de los valores que han aparecido desde la solicitud anterior. El parámetro de entrada/salida "change_id" se utiliza adicionalmente para esta operación.
Cada vez que cambia la base de datos del calendario, se actualiza la propiedad "change_id" (el último identificador de cambio). Durante la solicitud de datos, especifica "change_id" y el terminal devuelve los eventos que aparecieron después de ese tiempo, así como el valor actual de "change_id", que se puede usar para la siguiente solicitud. Durante la primera llamada a la función, especifique el cero "change_id": la función no devolverá ningún evento, pero devolverá el "change_id" actual para futuras solicitudes.
bool CalendarValueHistory(
ulong event_id, // event IDulong & change_id, // last calendar change ID
MqlCalendarValue& values[] // array of values
);
CalendarValueLast: obtiene la matriz de los últimos valores de todos los eventos, filtrados por país o moneda. Esta función habilita la solicitud de los valores que han aparecido desde la solicitud anterior. De manera similar a CalendarValueLastByEvent, la propiedad "change_id" se usa para la solicitud.
bool CalendarValueHistory(
ulong event_id, // event IDulong & change_id, // last calendar change ID
MqlCalendarValue& values[], // array of valuesstring country_code=NULL, // country codestring currency=NULL // currency
);
Nuevas estructuras
MqlCalendarCountry — descripción del país.
struct MqlCalendarCountry
{
ulong id; // country ID in ISO 3166-1string name; // text name of the countrystring code; // code name of the country in ISO 3166-1 alpha-2string currency; // country currency codestring currency_symbol; // country currency symbol/signstring url_name; // country name used in URL on mql5.com
};
MqlCalendarEvent — descripción del evento.
struct MqlCalendarEvent
{
ulong id; // event ID
ENUM_CALENDAR_EVENT_TYPE type; // event type
ENUM_CALENDAR_EVENT_SECTOR sector; // sector to which the event belongs
ENUM_CALENDAR_EVENT_FREQUENCY frequency; // event release frequency
ENUM_CALENDAR_EVENT_TIMEMODE time_mode; // event release time modeulong country_id; // country ID
ENUM_CALENDAR_EVENT_UNIT unit; // unit for the event values
ENUM_CALENDAR_EVENT_IMPORTANCE importance; // event importance
ENUM_CALENDAR_EVENT_MULTIPLIER multiplier; // event importance multiplieruint digits; // number of decimal places in the event valuestring source_url; // source URLstring event_code; // event codestring name; // text name of the event in the terminal language
};
MqlCalendarValue — descripción del valor del evento.
struct MqlCalendarValue
{
ulong id; // value IDulong event_id; // event IDdatetime time; // event date and timedatetime period; // period, for which the event is publishedint revision; // published indicator revision in relation to the reported periodlong actual_value; // current event valuelong prev_value; // previous event valuelong revised_prev_value; // revised previous event valuelong forecast_value; // forecast event value
ENUM_CALENDAR_EVENT_IMPACRT impact_type; // potential impact on the currency rate
};
Nuevas enumeraciones
enum ENUM_CALENDAR_EVENT_FREQUENCY
{
CALENDAR_FREQUENCY_NONE = 0 , // not used
CALENDAR_FREQUENCY_WEEK = 1 , // weekly
CALENDAR_FREQUENCY_MONTH = 2 , // monthly
CALENDAR_FREQUENCY_QUARTER = 3 , // quarterly
CALENDAR_FREQUENCY_YEAR = 4 , // yearly
CALENDAR_FREQUENCY_DAY = 5 , // daily
};
enum ENUM_CALENDAR_EVENT_TYPE
{
CALENDAR_TYPE_EVENT = 0 , // event (meeting, speech, etc.)
CALENDAR_TYPE_INDICATOR = 1 , // indicator
CALENDAR_TYPE_HOLIDAY = 2 , // holiday
};
enum ENUM_CALENDAR_EVENT_SECTOR
{
CALENDAR_SECTOR_NONE = 0 , // no
CALENDAR_SECTOR_MARKET = 1 , // market
CALENDAR_SECTOR_GDP = 2 , // GDP
CALENDAR_SECTOR_JOBS = 3 , // jobs
CALENDAR_SECTOR_PRICES = 4 , // prices
CALENDAR_SECTOR_MONEY = 5 , // money
CALENDAR_SECTOR_TRADE = 6 , // trade
CALENDAR_SECTOR_GOVERNMENT = 7 , // government
CALENDAR_SECTOR_BUSINESS = 8 , // business
CALENDAR_SECTOR_CONSUMER = 9 , // consumer
CALENDAR_SECTOR_HOUSING = 10 , // housing
CALENDAR_SECTOR_TAXES = 11 , // taxes
CALENDAR_SECTOR_HOLIDAYS = 12 , // holidays
};
enum ENUM_CALENDAR_EVENT_IMPORTANCE
{
CALENDAR_IMPORTANCE_LOW = 0 , // no
CALENDAR_IMPORTANCE_NONE = 1 , // low
CALENDAR_IMPORTANCE_MODERATE = 2 , // moderate
CALENDAR_IMPORTANCE_HIGH = 3 , // high
};
enum ENUM_CALENDAR_EVENT_UNIT
{
CALENDAR_UNIT_NONE = 0 , // no
CALENDAR_UNIT_PERCENT = 1 , // percent
CALENDAR_UNIT_CURRENCY = 2 , // national currency
CALENDAR_UNIT_HOUR = 3 , // number of hours
CALENDAR_UNIT_JOB = 4 , // number of jobs
CALENDAR_UNIT_RIG = 5 , // number of rigs
CALENDAR_UNIT_USD = 6 , // US dollar
CALENDAR_UNIT_PEOPLE = 7 , // number of people
CALENDAR_UNIT_MORTGAGE = 8 , // number of mortgages
CALENDAR_UNIT_VOTE = 9 , // number of votes
CALENDAR_UNIT_BARREL = 10 , // number of barrels
CALENDAR_UNIT_CUBICFEET = 11 , // volume in cubic feet
CALENDAR_UNIT_POSITION = 12 , // number of job positions
CALENDAR_UNIT_BUILDING = 13// number of buildings
};
enum ENUM_CALENDAR_EVENT_MULTIPLIER
{
CALENDAR_MULTIPLIER_NONE = 0 , // no
CALENDAR_MULTIPLIER_THOUSANDS = 1 , // thousands
CALENDAR_MULTIPLIER_MILLIONS = 2 , // millions
CALENDAR_MULTIPLIER_BILLIONS = 3 , // billions
CALENDAR_MULTIPLIER_TRILLIONS = 4 , // trillions
};
enum ENUM_CALENDAR_EVENT_IMPACRT
{
CALENDAR_IMPACT_NA = 0 , // not available
CALENDAR_IMPACT_POSITIVE = 1 , // positive
CALENDAR_IMPACT_NEGATIVE = 2 , // negative
};
enum ENUM_CALENDAR_EVENT_TIMEMODE
{
CALENDAR_TIMEMODE_DATETIME = 0 , // the source publishes the exact time
CALENDAR_TIMEMODE_DATE = 1 , // the event takes the whole day
CALENDAR_TIMEMODE_NOTIME = 2 , // the source does not publish the event time
CALENDAR_TIMEMODE_TENTATIVE = 3 , // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
};
Nuevos códigos de error
ERR_CALENDAR_MORE_DATA = 5400 , // the array is small for the whole result (values which fit in the array were passed)
ERR_CALENDAR_TIMEOUT = 5401 , // timed out waiting for a response to the calendar data request
ERR_CALENDAR_NO_DATA = 5402 , // data not found
MQL5: correcciones y mejoras en la velocidad de operación relacionadas con el historial de ticks y barras.
MQL5: correcciones y mejoras significativas en la velocidad de operación relacionadas con las funciones de modificación del historial de ticks y barras de los símbolos comerciales personalizados, CustomTicks* y CustomRates* .
MQL5: funciones de red agregadas para crear conexiones TCP a hosts remotos a través de sockets del sistema:
SocketCreate crea un socket con indicadores específicos y devuelve su identificador
SocketClose cierra el socket
SocketConnect se conecta al servidor, con control de tiempo de espera
SocketIsConnected comprueba si el socket está actualmente conectado
SocketIsReadable obtiene la cantidad de bytes que se pueden leer desde el socket
SocketIsWritable comprueba si la escritura de datos en este socket es posible en el momento actual
SocketTimeouts establece tiempos de espera de recepción y envío de datos para el objeto de socket del sistema
SocketRead lee datos de un socket
SocketSend escribe datos en un socket
SocketTlsHandshake inicia una conexión segura TLS (SSL) con el host especificado utilizando el protocolo TLS Handshake
SocketTlsCertificate recibe información sobre el certificado utilizado para la conexión de red segura
SocketTlsRead lee datos de una conexión TLS segura
SocketTlsReadAvailable lee todos los datos disponibles de una conexión TLS segura
SocketTlsSend envía datos mediante una conexión TLS segura
La dirección del host, al que se establece la conexión mediante funciones de red, debe agregarse explícitamente a la lista de direcciones permitidas en la configuración del terminal.
Se han añadido nuevos códigos de error para operaciones con funciones de red:
ERR_NETSOCKET_INVALIDHANDLE (5270): identificador de socket no válido pasado a la función
ArrayRemove elimina de una matriz el número especificado de elementos que comienzan con el índice especificado.
bool ArrayRemove(
void & array[], // array of any typeuint start, // the index to start removaluint count=WHOLE_ARRAY // number of elements
);
ArrayInsert inserta en una matriz de receptores el número especificado de elementos de la matriz de origen, comenzando con el índice especificado.
bool ArrayInsert(
void & dst_array[], // receiver arrayconstvoid & src_array[], // source arrayuint dst_start, // index in the receiver array where to insertuint src_start= 0 , // index in the source array to start copyinguint count=WHOLE_ARRAY // number of inserted elements
);
ArrayReverse invierte en una matriz el número especificado de elementos que comienzan con el índice especificado.
bool ArrayReverse(
void & array[], // array of any typeuint start= 0 , // index to start reversinguint count=WHOLE_ARRAY // number of elements
);
MQL5: Se agregó el nuevo parámetro "uint count" en las funciones CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd y CustomTicksReplace . Permite especificar el número de elementos de la matriz pasada, que se utilizarán para estas funciones. El valor WHOLE_ARRAY se utiliza para el parámetro de forma predeterminada. Significa que se utilizará toda la matriz.
MQL5: Se agregó la función CustomBookAdd para pasar el estado de la profundidad de mercado de un símbolo personalizado. La función permite transmitir la profundidad de mercado como si los precios llegaran del servidor de un bróker.
int CustomBookAdd(
conststring symbol, // symbol nameconst MqlBookInfo& books[] // an array with the DOM elements descriptionsuint count=WHOLE_ARRAY // number of elements to be used
);
MQL5: Agregada sobrecarga de la función CustomSymbolCreate . Esto permite la creación de un símbolo comercial personalizado basado en uno existente. Después de la creación, cualquier propiedad del símbolo se puede editar usando las funciones correspondientes.
boolCustomSymbolCreate (
conststring symbol_name, // custom symbol nameconststring symbol_path= "" , // name of the group in which the symbol will be createdconststring symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
);
El nombre del símbolo del que se deben copiar las propiedades del símbolo personalizado se especifica en el parámetro "symbol_origin".
Se ha actualizado la función StringToTime que convierte la cadena con fecha/hora en un valor de fecha y hora. Ahora es compatible con los siguientes formatos de fecha:
aaaa.mm.dd [hh:mi]
aaaa.mm.dd [hh:mi:ss]
aaaammdd [hh:mi:ss]
aaaammdd [hhmiss]
aaaa/mm/dd [hh:mi:ss]
aaaa-mm-dd [hh:mi:ss]
MQL5: Nueva propiedad TERMINAL_VPS en la enumeración ENUM_TERMINAL_INFO_INTEGER ; muestra que el terminal se está ejecutando en el servidor de alojamiento virtual MetaTrader (MetaTrader VPS). Si una aplicación se ejecuta en un servidor de alojamiento, puede desactivar todas sus funciones visuales, ya que el servidor virtual no tiene una interfaz gráfica de usuario.
MQL5: Nueva propiedad SYMBOL_EXIST en la enumeración ENUM_SYMBOL_INFO_INTEGER , significa que el símbolo bajo este nombre existe.
MQL5: se corrigió la escritura al usar declaraciones previas de funciones de plantilla.
MQL5: Se agregó la reinicialización de indicadores al cambiar una cuenta comercial.
MQL5: errores corregidos en la operación de la biblioteca estándar.
Probador: se agregó la función TesterStop : apagado anticipado de rutina de un asesor experto en un agente de prueba. Ahora puede detener la prueba por la fuerza después de alcanzar el número especificado de operaciones perdedoras, un nivel de reducción preestablecido o cualquier otro criterio.
Las pruebas completadas con esta función se consideran satisfactorias. Después de la llamada a la función, el historial comercial obtenido durante la prueba y todas las estadísticas comerciales se pasan al terminal.
Probador: capacidad deshabilitada para probar y optimizar los asesores expertos a través de MQL5 Cloud Network en el modo de verificación real. Este modo solo se puede usar en agentes locales y granjas de redes locales.
Probador: trabajo mejorado con indicadores durante las pruebas visuales. Ahora el gráfico de precios y las líneas del indicador se dibujan sincrónicamente, incluso para la máxima velocidad de visualización.
Probador: Pruebas y optimización optimizadas y significativamente aceleradas.
Tester: Corregida la depuración de indicadores sobre datos históricos. Ahora las funciones del indicador OnInit y OnDeinit se pueden depurar correctamente.
Probador: se implementó un acceso más rápido a los datos históricos al probar los asesores expertos de varias monedas.
Probador: se corrigió la congelación ocasional del probador visual durante la depuración de datos históricos.
Probador: se implementó un inicio más rápido de los pases de optimización cuando un agente procesa un paquete de tareas.
Probador: se modificó la política de distribución de paquetes de tareas a los agentes de prueba. Se ha aumentado el tamaño del paquete y, por lo tanto, se ha reducido significativamente el consumo de recursos en las operaciones de red.
Probador: se modificó el comportamiento de las opciones que permiten el uso de agentes locales, de red y en la nube. Ahora, cuando desactiva las opciones, los agentes completan el procesamiento de las tareas recibidas, mientras que no se les asignan más tareas nuevas. En versiones anteriores, el comportamiento era similar al comando "Desactivar", que detenía inmediatamente el funcionamiento del agente.
MetaEditor: Se agregó soporte para caracteres que no son ANSI en el depurador. Ahora, las expresiones se muestran correctamente incluso si el nombre de la variable se especifica en cirílico.
MetaEditor: visualización fija de resultados de búsqueda en pantallas de alto DPI.
Se agregó la traducción de la interfaz de usuario al croata.
La documentación ha sido actualizada.
La actualización estará disponible a través del sistema LiveUpdate.
¿Tengo que eliminar mi build 1940 antes de instalar este 2005? He probado sin desinstalar y después de instalar es el mismo 1940 que antes. Además, no he podido actualizar desde el año pasado, ¿alguna razón? ¿Debo eliminar todo y volver a intentarlo?
Próximamente -
Nuevo sistema de comunicación análogo a Telegram - lea este post.
============
Ichimoku
El comienzo
Después de
============
Se creó un buen hilo con información visualizada - Elhilo de Consejos.
Se recomienda encarecidamente leer este pequeño hilo a todos los novatos (para saber), y a los usuarios experimentados (para refrescar sus conocimientos).
----------------
Servicio autónomo
----------------
Plataforma
----------------
Asesor Experto
----------------
Probador
Esta es una actualización muy importante y muy interesante - por favor, léala -
Foro sobre el comercio, los sistemas de comercio automatizados y la prueba de estrategias de comercio
Plataforma MetaTrader 5 Beta Build 1910: Arrastrar y soltar gráficos y librerías .Net en MQL5
MetaQuotes Software Corp., 2018.10.12 19:43
La versión beta de la plataforma MetaTrader 5 actualizada se lanzará el 14 de octubre de 2018. Actualizaremos nuestro servidor público MetaQuotes-Demo ubicado en access.metatrader5.com:443. Invitamos a todos los traders a unirse a las pruebas para evaluar las características de la plataforma actualizada y ayudar a los desarrolladores a corregir errores.
La versión final de la nueva plataforma MetaTrader 5 se lanzará después de la prueba beta pública.
La actualización incluirá los siguientes cambios:
Esta característica es conveniente cuando se utilizan varios monitores. Así, puede colocar la ventana principal de la plataforma en un monitor para controlar el estado de su cuenta, y mover los gráficos a la segunda pantalla para observar la situación del mercado. Para separar un gráfico del terminal, desactive la opción de anclaje en su menú contextual. A continuación, mueva el gráfico al monitor deseado.

Una barra de herramientas independiente en los gráficos desacoplados permite aplicar objetos de análisis e indicadores sin tener que cambiar de monitor. Utilice el menú contextual de la barra de herramientas para gestionar el conjunto de comandos disponibles o para ocultarla.Los chats de grupo y los canales pueden ser públicos o privados. Sus creadores deciden si es posible unirse a ellos libremente o sólo por invitación. También puede asignar moderadores a los canales y chats para un mayor control de la comunicación.
El volumen mínimo y su paso de cambio dependen de la configuración del instrumento financiero por parte del corredor.
Para trabajar con las funciones de las bibliotecas .NET, basta con importar la propia DLL sin definir funciones específicas. MetaEditor importa automáticamente todas las funciones con las que es posible trabajar:
Para llamar a las funciones de la biblioteca, basta con importarla:
El código C# de la función Inc de la TestClass tiene el siguiente aspecto:
Como resultado de la ejecución, el script devuelve el valor de 7.
Encuentre más información sobre los especificadores en MSDN.
Se han añadido las siguientes propiedades a la enumeración ENUM_CHART_PROPERTY_INTEGER:
Añadidas las siguientes funciones a la enumeración ENUM_TERMINAL_INFO_INTEGER:
struct MqlTick
{
datetime time; // Last price update time
double bid; // Current Bid price
double ask; // Current Ask price
double last; // Current price of the Last trade
ulong volume; // Volume for the current Last price
long time_msc; // Last price update time in milliseconds
uint flags; // Tick flags
double volume_real; // Volume for the current Last price with greater accuracy
};
Utilice la función SymbolInfoDouble para obtener estas propiedades.
Para el siguiente código:
El compilador muestra la advertencia:
'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
Se inició un buen hilo -Cómo empezar con MQL5
Foro sobre el comercio, los sistemas de comercio automatizado y la prueba de las estrategias de comercio
Cómo empezar con MQL5
Vladimir Karputov, 2018.12.24 20:34
En este hilo se habla de ejemplos de código MQL5. Habrá ejemplos de cómo obtener datos de indicadores, cómo programar asesores... en general, cualquier pregunta de principiante al lenguaje MQL5.
Si estás empezando a familiarizarte con el terminal MetaTrader 5, te recomiendo los siguientes hilos:
Cómo empezar con Metatrader 5
¿Por dónde empiezo?
¡ Utiliza los consejos en el servicio Freelance!
Hay un artículo que todo vendedor en el mercado debería leer: se trata de la validación de los productos del Mercado -
----------------
Las comprobaciones que debe pasar un robot de trading antes de ser publicado en el Market
Antes de que cualquier producto se publique en el Mercado, debe someterse a comprobaciones previas obligatorias, ya que un pequeño error en la lógica del experto o del indicador puede causar pérdidas en la cuenta de trading. Por ello, hemos desarrollado una serie de comprobaciones básicas para garantizar el nivel de calidad requerido de los productos del Mercado.
Si los moderadores del Mercado identifican algún error en el proceso de comprobación de su producto, tendrá que solucionarlo todo. Este artículo considera los errores más frecuentes que cometen los desarrolladores en sus robots de trading e indicadores técnicos. También recomendamos la lectura de los siguientes artículos:
Gracias hombre...
Muy útil, gran esfuerzo...
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias comerciales
Nueva plataforma MetaTrader 5 build 2005: calendario económico, aplicaciones MQL5 como servicios y API en lenguaje R
MetaQuotes Software Corp. , 2019.02.20 17:20
La actualización de la plataforma MetaTrader 5 se lanzará el 21 de febrero de 2019. La nueva versión presenta los siguientes cambios:
- Terminal: Calendario Económico incorporado completamente revisado.

- Terminal: Se agregó un nuevo tipo de aplicaciones MQL5: Servicios. Este nuevo tipo permite la creación de feeds de precios personalizados para la terminal, es decir, implementar la entrega de precios desde sistemas externos en tiempo real, tal como se implementa en los servidores comerciales de los corredores.

- Terminal: Se ha agregado un programa de aprendizaje.

- Terminal: El historial de la cuenta comercial se puede presentar como posiciones. La plataforma recopila datos sobre transacciones relacionadas con la posición (apertura, aumento de volumen, cierre parcial o total) y agrupa la información en un solo registro. Así podrá acceder a los detalles de la posición: hora de apertura y cierre, volumen, precio y resultado. Este formulario de presentación eficiente ahora está disponible en los informes de historial exportados a archivos.

- Terminal: Se agregó una nueva API que permite la solicitud de datos del terminal MetaTrader 5 a través de aplicaciones que utilizan el lenguaje R.

R CMD INSTALL --build MetaTrader
- MT5Initialize inicializa y establece conexión con el terminal MetaTrader 5. Si es necesario, el terminal se inicia durante la ejecución del comando.
- MT5Shutdown se desinicializa y se desconecta de MetaTrader 5.
- MT5Version obtiene la versión de terminal MetaTrader 5.
- MT5TerminalInfo obtiene el estado y los parámetros de la conexión del terminal al servidor de un corredor (número de cuenta y dirección del servidor).
- MT5WaitTerminal espera a que el terminal MetaTrader 5 se conecte al servidor de un bróker.
- MT5CopyTicksFrom(símbolo, desde, conteo, banderas) copia el número especificado de marcas a partir de la fecha especificada. La fecha se especifica en milisegundos desde el 01.01.1970.
- MT5CopyTicksRange(símbolo, desde, hasta, banderas) copia los ticks dentro del período especificado. Las fechas se especifican en milisegundos desde el 01.01.1970.
- MT5CopyRatesFrom(símbolo, período de tiempo, desde, recuento) copia el número especificado de barras de un minuto a partir de la fecha especificada. La fecha se especifica en segundos desde el 01.01.1970.
- MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) copia barras de un minuto desde la posición especificada en relación con la última barra.
- MT5CopyRatesFromRange(símbolo, período de tiempo, fecha_desde, fecha_hasta) copia barras dentro del período especificado. Las fechas se especifican en segundos desde el 01.01.1970.
- Terminal: cuadro de diálogo Cerrar por optimizado utilizado para cerrar una posición con una opuesta. Ahora, el diálogo no se ralentiza incluso si tiene una gran cantidad de posiciones abiertas.
- Terminal: se corrigieron errores de cálculo de símbolos sintéticos , debido a los cuales los datos podrían omitirse ocasionalmente.
- Terminal: cuando se elimina un símbolo personalizado , también se eliminan los archivos que almacenan su historial de ticks y barras. Esto evita la acumulación de datos no utilizados en el disco duro.
- Terminal: Visualización fija de resultados de búsqueda en pantallas de alto DPI.
- MQL5: Acceso implementado a los datos del calendario económico de los programas MQL5.
- MQL5: correcciones y mejoras en la velocidad de operación relacionadas con el historial de ticks y barras.
- MQL5: correcciones y mejoras significativas en la velocidad de operación relacionadas con las funciones de modificación del historial de ticks y barras de los símbolos comerciales personalizados, CustomTicks* y CustomRates* .
- MQL5: Nuevas funciones de conversión de datos.
- Se agregó la función MathSwap para cambiar el orden de bytes en valores ushort, uint y ulong.
- MQL5: funciones de red agregadas para crear conexiones TCP a hosts remotos a través de sockets del sistema:
- SocketCreate crea un socket con indicadores específicos y devuelve su identificador
- SocketClose cierra el socket
- SocketConnect se conecta al servidor, con control de tiempo de espera
- SocketIsConnected comprueba si el socket está actualmente conectado
- SocketIsReadable obtiene la cantidad de bytes que se pueden leer desde el socket
- SocketIsWritable comprueba si la escritura de datos en este socket es posible en el momento actual
- SocketTimeouts establece tiempos de espera de recepción y envío de datos para el objeto de socket del sistema
- SocketRead lee datos de un socket
- SocketSend escribe datos en un socket
- SocketTlsHandshake inicia una conexión segura TLS (SSL) con el host especificado utilizando el protocolo TLS Handshake
- SocketTlsCertificate recibe información sobre el certificado utilizado para la conexión de red segura
- SocketTlsRead lee datos de una conexión TLS segura
- SocketTlsReadAvailable lee todos los datos disponibles de una conexión TLS segura
- SocketTlsSend envía datos mediante una conexión TLS segura
La dirección del host, al que se establece la conexión mediante funciones de red, debe agregarse explícitamente a la lista de direcciones permitidas en la configuración del terminal.
- ERR_NETSOCKET_INVALIDHANDLE (5270): identificador de socket no válido pasado a la función
- ERR_NETSOCKET_TOO_MANY_OPENED (5271): demasiados sockets abiertos (máximo 128)
- ERR_NETSOCKET_CANNOT_CONNECT (5272): error al conectarse al host remoto
- ERR_NETSOCKET_IO_ERROR (5273): error al enviar/recibir datos del socket
- ERR_NETSOCKET_HANDSHAKE_FAILED (5274): error de establecimiento de conexión segura (TLS Handshake)
- ERR_NETSOCKET_NO_CERTIFICATE (5275) — no hay datos sobre el certificado utilizado para la conexión segura
- MQL5: Añadidas nuevas funciones para operaciones con cadenas :
- MQL5: nueva función agregada para operaciones de matriz :
- MQL5: Se agregó el nuevo parámetro "uint count" en las funciones CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd y CustomTicksReplace . Permite especificar el número de elementos de la matriz pasada, que se utilizarán para estas funciones. El valor WHOLE_ARRAY se utiliza para el parámetro de forma predeterminada. Significa que se utilizará toda la matriz.
- MQL5: Se agregó la función CustomBookAdd para pasar el estado de la profundidad de mercado de un símbolo personalizado. La función permite transmitir la profundidad de mercado como si los precios llegaran del servidor de un bróker.
- MQL5: Agregada sobrecarga de la función CustomSymbolCreate . Esto permite la creación de un símbolo comercial personalizado basado en uno existente. Después de la creación, cualquier propiedad del símbolo se puede editar usando las funciones correspondientes.
- Se ha actualizado la función StringToTime que convierte la cadena con fecha/hora en un valor de fecha y hora. Ahora es compatible con los siguientes formatos de fecha:
- aaaa.mm.dd [hh:mi]
- aaaa.mm.dd [hh:mi:ss]
- aaaammdd [hh:mi:ss]
- aaaammdd [hhmiss]
- aaaa/mm/dd [hh:mi:ss]
- aaaa-mm-dd [hh:mi:ss]
- MQL5: Nueva propiedad TERMINAL_VPS en la enumeración ENUM_TERMINAL_INFO_INTEGER ; muestra que el terminal se está ejecutando en el servidor de alojamiento virtual MetaTrader (MetaTrader VPS). Si una aplicación se ejecuta en un servidor de alojamiento, puede desactivar todas sus funciones visuales, ya que el servidor virtual no tiene una interfaz gráfica de usuario.
- MQL5: Nueva propiedad SYMBOL_EXIST en la enumeración ENUM_SYMBOL_INFO_INTEGER , significa que el símbolo bajo este nombre existe.
- MQL5: se corrigió la escritura al usar declaraciones previas de funciones de plantilla.
- MQL5: Se agregó la reinicialización de indicadores al cambiar una cuenta comercial.
- MQL5: función StringSplit optimizada.
- MQL5: errores corregidos en la operación de la biblioteca estándar.
- Probador: se agregó la función TesterStop : apagado anticipado de rutina de un asesor experto en un agente de prueba. Ahora puede detener la prueba por la fuerza después de alcanzar el número especificado de operaciones perdedoras, un nivel de reducción preestablecido o cualquier otro criterio.
- Probador: capacidad deshabilitada para probar y optimizar los asesores expertos a través de MQL5 Cloud Network en el modo de verificación real. Este modo solo se puede usar en agentes locales y granjas de redes locales.
- Probador: trabajo mejorado con indicadores durante las pruebas visuales. Ahora el gráfico de precios y las líneas del indicador se dibujan sincrónicamente, incluso para la máxima velocidad de visualización.
- Probador: Pruebas y optimización optimizadas y significativamente aceleradas.
- Tester: Corregida la depuración de indicadores sobre datos históricos. Ahora las funciones del indicador OnInit y OnDeinit se pueden depurar correctamente.
- Probador: se implementó un acceso más rápido a los datos históricos al probar los asesores expertos de varias monedas.
- Probador: se corrigió la congelación ocasional del probador visual durante la depuración de datos históricos.
- Probador: se implementó un inicio más rápido de los pases de optimización cuando un agente procesa un paquete de tareas.
- Probador: se modificó la política de distribución de paquetes de tareas a los agentes de prueba. Se ha aumentado el tamaño del paquete y, por lo tanto, se ha reducido significativamente el consumo de recursos en las operaciones de red.
- Probador: se modificó el comportamiento de las opciones que permiten el uso de agentes locales, de red y en la nube. Ahora, cuando desactiva las opciones, los agentes completan el procesamiento de las tareas recibidas, mientras que no se les asignan más tareas nuevas. En versiones anteriores, el comportamiento era similar al comando "Desactivar", que detenía inmediatamente el funcionamiento del agente.

- MetaEditor: Se agregó soporte para caracteres que no son ANSI en el depurador. Ahora, las expresiones se muestran correctamente incluso si el nombre de la variable se especifica en cirílico.
- MetaEditor: visualización fija de resultados de búsqueda en pantallas de alto DPI.
- Se agregó la traducción de la interfaz de usuario al croata.
- La documentación ha sido actualizada.
La actualización estará disponible a través del sistema LiveUpdate.El Calendario Económico es nuestra solución patentada. En él encontrarás más de 600 noticias e indicadores financieros relacionados con las 13 economías más grandes del mundo: EE. UU., Unión Europea, Japón, Reino Unido, Canadá, Australia, China, entre otros. Los datos relevantes se recopilan de fuentes abiertas en tiempo real.
La nueva versión cuenta con contenidos actualizados y filtros de eventos avanzados: por hora, prioridad, monedas y países.
Ahora se puede acceder a los datos del calendario desde los programas MQL5. Consulte a continuación para obtener más información.
A diferencia de los asesores expertos, los indicadores y los scripts, los servicios no están vinculados a un gráfico específico. Dichas aplicaciones se ejecutan en segundo plano y se inician automáticamente cuando se inicia el terminal (a menos que dicha aplicación se haya detenido por la fuerza).
Los servicios se pueden administrar desde una nueva sección dentro de la ventana del Navegador:
Cómo crear servicios
Para crear una plantilla de servicio, utilice la opción correspondiente del asistente de MQL5 . Los servicios tienen un punto de entrada OnStart , similar a los scripts. En este punto, puede implementar un ciclo interminable de recepción y manejo de datos utilizando funciones de red .
Cómo lanzar servicios
Para ejecutar varias copias de Expert Advisor o indicador con diferentes parámetros, debe iniciarlos en diferentes gráficos. En este caso, se crean diferentes instancias de programa, que luego funcionan de forma independiente. Los servicios no están vinculados a gráficos, por lo que se ha implementado un mecanismo especial para la creación de instancias de servicio.
Seleccione un servicio del Navegador y haga clic en "Agregar servicio" en su menú contextual. Esto abrirá un cuadro de diálogo estándar del programa MQL5, en el que puede habilitar/deshabilitar el comercio y acceder a la configuración de la señal, así como establecer varios parámetros.

Una instancia de servicio se puede iniciar y detener utilizando el menú de instancia apropiado. Para administrar todas las instancias, use el menú de servicio.La nueva función ayudará a los principiantes a aprender a interactuar con la plataforma. Hemos agregado más de 100 consejos interactivos sobre las funciones principales de la plataforma.
- Los consejos se muestran a la perfección como una barra de progreso en la barra de herramientas y, por lo tanto, no distraen al usuario.
- Las sugerencias solo aparecen para las acciones que nunca ha realizado en la plataforma.
- Todos los consejos incluyen enlaces interactivos, mediante los cuales puede navegar a los elementos de interfaz relevantes. Por ejemplo, un cuadro de diálogo comercial o un menú con el programa deseado se puede iniciar directamente desde la punta.
El área llena de la barra de progreso aumentará cada vez que realice las acciones apropiadas y continúe entrenando.Hemos preparado un paquete especial de MetaTrader. Contiene DLL para interacciones entre R y el terminal MetaTrader 5, documentación y archivos r auxiliares. Estamos completando el registro del paquete en el repositorio CRAN , luego de lo cual estará disponible para su descarga e instalación.
El paquete se puede instalar usando un comando especial:
Están disponibles los siguientes comandos relacionados con la solicitud de datos:
La lista de comandos admitidos se ampliará aún más.
Nuevas funciones
CalendarCountryById: obtiene la descripción del país por identificador.
CalendarEventById: obtiene la descripción del evento por identificador.
CalendarValueById: obtiene la descripción del valor del evento por identificador.
CalendarEventByCountry: obtiene la matriz de eventos disponibles para el país.
CalendarEventByCurrency: obtiene la matriz de eventos disponibles para la moneda afectada.
CalendarValueHistoryByEvent: obtiene la matriz de valores para el período de tiempo especificado, por identificador de evento.
CalendarValueHistory: obtiene la matriz de valores para el período de tiempo especificado para todos los eventos, filtrados por país o moneda.
CalendarValueLastByEvent: obtiene una matriz de valores del último evento por identificador. Esta función habilita la solicitud de los valores que han aparecido desde la solicitud anterior. El parámetro de entrada/salida "change_id" se utiliza adicionalmente para esta operación.
Cada vez que cambia la base de datos del calendario, se actualiza la propiedad "change_id" (el último identificador de cambio). Durante la solicitud de datos, especifica "change_id" y el terminal devuelve los eventos que aparecieron después de ese tiempo, así como el valor actual de "change_id", que se puede usar para la siguiente solicitud. Durante la primera llamada a la función, especifique el cero "change_id": la función no devolverá ningún evento, pero devolverá el "change_id" actual para futuras solicitudes.
CalendarValueLast: obtiene la matriz de los últimos valores de todos los eventos, filtrados por país o moneda. Esta función habilita la solicitud de los valores que han aparecido desde la solicitud anterior. De manera similar a CalendarValueLastByEvent, la propiedad "change_id" se usa para la solicitud.
Nuevas estructuras
MqlCalendarCountry — descripción del país.
MqlCalendarEvent — descripción del evento.
MqlCalendarValue — descripción del valor del evento.
Nuevas enumeraciones
Nuevos códigos de error
CharArrayToStruct copia una matriz uchar en una estructura POD.
StructToCharArray copia una estructura POD en una matriz uchar.
Se han añadido nuevos códigos de error para operaciones con funciones de red:
StringReserve reserva para una cadena el búfer de memoria del tamaño especificado.
StringSetLength establece la longitud de cadena especificada en caracteres.
ArrayRemove elimina de una matriz el número especificado de elementos que comienzan con el índice especificado.
ArrayInsert inserta en una matriz de receptores el número especificado de elementos de la matriz de origen, comenzando con el índice especificado.
ArrayReverse invierte en una matriz el número especificado de elementos que comienzan con el índice especificado.
El nombre del símbolo del que se deben copiar las propiedades del símbolo personalizado se especifica en el parámetro "symbol_origin".
Las pruebas completadas con esta función se consideran satisfactorias. Después de la llamada a la función, el historial comercial obtenido durante la prueba y todas las estadísticas comerciales se pasan al terminal.
Hola.
¿Tengo que eliminar mi build 1940 antes de instalar este 2005?
He probado sin desinstalar y después de instalar es el mismo 1940 que antes.
Además, no he podido actualizar desde el año pasado, ¿alguna razón?
¿Debo eliminar todo y volver a intentarlo?
Gracias...