- CalendarCountryById
- CalendarEventById
- CalendarValueById
- CalendarCountries
- CalendarEventByCountry
- CalendarEventByCurrency
- CalendarValueHistoryByEvent
- CalendarValueHistory
- CalendarValueLastByEvent
- CalendarValueLast
CalendarValueHistoryByEvent
Obtiene la matriz de valores de todos los eventos en el intervalo temporal indicado según el identificador del evento.
int CalendarValueHistoryByEvent(
|
Parámetros
event_id
[in] Identificador del evento.
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.
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()
Si para el valor del evento no existe alguno de los campos de abajo
struct MqlCalendarValue
|
entonces el valor del campo ausente se retornará como INT64_MIN (-9223372036854775808). Mire en el ejemplo de abajo el valor del campo revised_prev_value.
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.
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, CalendarValueHistory, CalendarEventById, CalendarValueById