- CalendarCountryById
- CalendarEventById
- CalendarValueById
- CalendarCountries
- CalendarEventByCountry
- CalendarEventByCurrency
- CalendarValueHistoryByEvent
- CalendarValueHistory
- CalendarValueLastByEvent
- CalendarValueLast
CalendarValueLast
Obtiene la matriz de valores de todos los eventos con filtrado por país y/o divisa desde el momento en que se creó la base de datos del Calendario con el change_id indicado.
int CalendarValueLast(
|
Parámetros
change_id
[in][out] Identificador del cambio.
values[]
[out] Matriz del tipo MqlCalendarValue para obtener los valores del evento. Vea el siguiente ejemplo de procesamiento de eventos del calendario.
country_code=NULL
[in] Nombre clave del país según ISO 3166-1 alpha-2
currency=NULL
[in] Nombre clave de la divisa del país.
Valor retornado
Número de valores de evento obtenidos. Para obtener información sobre el error, necesitamos llamar la función GetLastError(). Posibles errores:
- 4001 ERR_INTERNAL_ERROR (error general del sistema de ejecución),
- 4004 ERR_NOT_ENOUGH_MEMORY (memoria insuficiente para ejecutar la solicitud),
- 5401 ERR_CALENDAR_TIMEOUT (se ha superado el límite de solicitud por tiempo),
- 5400 ERR_CALENDAR_MORE_DATA (el tamaño de la matriz es insuficiente para obtener las descripciones de todos los valores, por eso ha recibido solo aquellas que cabían),
- error de ejecución ArrayResize()
Observación
Todas las funciones para trabajar con el Calendario Económico utilizan la hora del servidor comercial (TimeTradeServer). Esto significa que la hora en la estructura MqlCalendarValue y los parámetros de entrada de hora en las funciones CalendarValueHistoryByEvent/CalendarValueHistory se establecen en el huso horario del servidor comercial, y no en la hora local del usuario.
Si se ha transmitido a la función la matriz events[] de longitud fija, y como resultado de la solicitud no ha habido espacio suficiente para guardar el resultado completo, se generará el error ERR_CALENDAR_MORE_DATA (5400).
Si se ha transmitido change_id = 0, la función retorna siempre cero, pero en este caso, además, al change_id se retorna el estado actual de la base de datos del Calendario.
Para los filtros country_code y currency los valores NULL y "" son equivalentes: designan la ausencia de filtro.
Para country_code es mejor usar el campo code de la estructura MqlCalendarCountry, por ejemplo, "US", "RU" o "EU".
Para currency es mejor usar el campo currency de la estructura MqlCalendarCountry, por ejemplo, "USD", "RUB" o "EUR".
Los filtros se usan mediante conjunción, es decir, a través de un 'Y' lógico se eligen los valores solo de aquellos eventos para los que se cumplen simultáneamente las dos condiciones: país y divisa
La función retorna la matriz de valores para la noticia indicada y el nuevo change_id que se puede usar para las siguientes llamadas de esta función para obtener los nuevos valores de la noticia. Así, llamando esta función con el último change_id conocido, es posible obtener las actualizaciones de los valores para la noticia indicada.
La estructura MqlCalendarValue proporciona un método para obtener e comprobar valores a partir de los campos actual_value, forecast_value, prev_value y revised_prev_value. Si el valor del campo no está definido, éste almacenará el valor LONG_MIN (-9223372036854775808).
Es necesario tener en cuenta que los valores de estos campos se almacenan multiplicados por un factor de un millón. Eso quiere decir que cuando las funciones CalendarValueById, CalendarValueHistoryByEvent, CalendarValueHistory, CalendarValueLastByEvent y CalendarValueLast reciben valores en MqlCalendarValue, es necesario comprobar que los valores LONG_MIN de esos campos son idénticos; y si el valor está definido en el campo, para obtener el valor, el valor del campo debe dividirse entre 1000 000 (un millón). Otra forma de obtener valores es verificar y obtener valores mediante funciones de la propia estructura MqlCalendarValue.
Ejemplo de un experto que escucha la aparición de eventos del Calendario Económico:
#property description "Ejemplo de uso de la función CalendarValueLast"
|
Ver también
CalendarValueLast, CalendarValueHistory, CalendarValueHistoryByEvent, CalendarValueById