- CalendarCountryById
- CalendarEventById
- CalendarValueById
- CalendarCountries
- CalendarEventByCountry
- CalendarEventByCurrency
- CalendarValueHistoryByEvent
- CalendarValueHistory
- CalendarValueLastByEvent
- CalendarValueLast
CalendarValueHistory
Obtiene la matriz de valores de todos los eventos en el intervalo temporal indicado con filtro de país y/o divisa.
int CalendarValueHistory(
|
Parámetros
values[]
[out] Matriz del tipo MqlCalendarValue para obtener los valores de los eventos. Vea el siguiente ejemplo de procesamiento de eventos del calendario.
datetime_from
[in] Fecha inicial del intervalo temporal desde el cual se eligen los eventos según el identificador indicado, en este caso, además, datetime_from < datetime_to.
datetime_to=0
[in] Fecha final del intervalo temporal desde el cual se eligen los eventos según el identificador indicado. Si el parámetro datetime_to no ha sido indicado (o es igual a 0), se retornarán todos los valores de los eventos desde la fecha indicada datetime_from existentes en la base de datos del Calendario, incluidos los eventos y valores de eventos planeados para el futuro.
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
En caso de éxito, retornará el número de valores disponibles en el array "values", en caso contrario -1.. 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 no se ha indicado el parámetro datetime_to (=0), se retornarán todos los valores de los eventos desde la fecha indicada datetime_from existentes en la base de datos del Calendario, incluidos los eventos y valores de eventos planeados para el futuro.
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 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:
//+------------------------------------------------------------------+
|
Ver también
CalendarCountries, CalendarEventByCountry, CalendarValueHistoryByEvent, CalendarEventById, CalendarValueById