- Conceptos básicos del calendario
- Obtener la lista y las descripciones de los países disponibles
- Consultar tipos de eventos por país y moneda
- Obtener descripciones de eventos por ID
- Obtener registros de eventos por país o moneda
- Obtener registros de eventos de un tipo específico
- Leer registros de sucesos por ID
- Seguimiento de los cambios de eventos por país o moneda
- Seguimiento de los cambios de eventos por tipo
- Filtrar eventos por múltiples condiciones
- Transferir la base de datos de calendarios al probador
- Operar con el calendario
Obtener la lista y las descripciones de los países disponibles
Puede obtener una lista completa de los países para los que se emiten eventos en el calendario utilizando la función CalendarCountries.
int CalendarCountries(MqlCalendarCountry &countries[])
La función rellena el array countries pasado por referencia con estructuras MqlCalendarCountry. El array puede ser dinámico o fijo, de tamaño suficiente.
En caso de éxito, la función devuelve el número de descripciones de países recibidas del servidor, o 0 en caso de error. Entre los posibles códigos de error en _LastError podemos encontrar, en concreto, 5401 (ERR_CALENDAR_TIMEOUT, límite de tiempo de solicitud excedido) o 5400 (ERR_CALENDAR_MORE_DATA, si el tamaño del array fijo es insuficiente para obtener descripciones de todos los países). En este último caso, el sistema copiará sólo lo que quepa.
Escribamos un sencillo script CalendarCountries.mq5, que obtiene la lista completa de países y la registra.
void OnStart()
|
He aquí un ejemplo de resultado:
CalendarCountries(countries)=23 / ok
|
Es importante señalar que el identificador 0 (código «WW» y pseudodivisa «ALL») corresponde a eventos mundiales (relativos a muchos países, por ejemplo, las reuniones del G7, G20), y la divisa «EUR» está asociada a varios países de la UE disponibles en el calendario (como puede ver, no se presenta toda la zona euro). Además, la propia Unión Europea tiene un identificador genérico: 999.
Si está interesado en un país concreto, puede comprobar su disponibilidad mediante un código numérico según la norma ISO 3166-1. En concreto, en el registro anterior, estos códigos aparecen en la primera columna (campo id).
Para obtener la descripción de un país por su ID especificado en el parámetro id, puede utilizar la función CalendarCountryById.
bool CalendarCountryById(const long id, MqlCalendarCountry &country)
Si tiene éxito, la función devolverá true y rellenará los campos de la estructura country.
Si no se encuentra el país, obtendremos false, y en _LastError obtendremos un código de error 5402 (ERR_CALENDAR_NO_DATA).
Para ver un ejemplo de uso de esta función, consulte Obtener registros de eventos por país o divisa.