- CalendarCountryById
- CalendarEventById
- CalendarValueById
- CalendarCountries
- CalendarEventByCountry
- CalendarEventByCurrency
- CalendarValueHistoryByEvent
- CalendarValueHistory
- CalendarValueLastByEvent
- CalendarValueLast
CalendarValueHistory
Obtém uma matriz de valores de todos os eventos num determinado intervalo de tempo com um filtro por país e/ou moeda.
int CalendarValueHistory(
|
Parâmetros
values[]
[out] Matriz de tipo MqlCalendarValue para obter valores de eventos. Veja um exemplo de processamento de eventos de calendário.
datetime_from
[in] Data de início do intervalo de tempo a partir do qual os eventos são selecionados pelo ID definido, enquanto datetime_from < datetime_to.
datetime_to=0
[in] Data final do intervalo de tempo a partir do qual os eventos são selecionados pelo ID definido. Se não for especificado o parâmetro datetime_to (ou é igual a 0), serão retornados todos os valores de evento da data especificada datetime_from, disponível no banco de dados do Calendário, incluindo os valores dos eventos planejados para o futuro.
country_code=NULL
[in] Código do país segundo ISO 3166-1 alpha-2
currency=NULL
[in] Código da moeda do país
Valor retornado
Se bem-sucedido, retorna o número de valores disponíveis no array de valores, caso contrário -1.. Para obter informações de erro, chame a função GetLastError(). Possíveis erros:
- 4001 ERR_INTERNAL_ERROR (erro geral de tempo de execução),
- 4004 ERR_NOT_ENOUGH_MEMORY (memória insuficiente para execução da solicitação),
- 5401 ERR_CALENDAR_TIMEOUT (excedido tempo limite de solicitação),
- 5400 ERR_CALENDAR_MORE_DATA (tamanho de array insuficiente para obter descrições de todos os valores, portanto, eles recebem apenas o que contêm).
- falha ao executar ArrayResize()
Observação
Todas as funções para trabalhar com o Calendário Econômico usam o horário do servidor de negociação (TimeTradeServer). Isso significa que o tempo na estrutura MqlCalendarValue e os parâmetros de tempo de entrada nas funções CalendarValueHistoryByEvent/CalendarValueHistory são definidos no fuso horário do servidor de negociação e não no horário local do usuário.
Se um array foi passado para a função events[] de comprimento fixo e, como resultado da solicitação, não havia espaço suficiente para salvar o resultado inteiro, é mostrado o erro ERR_CALENDAR_MORE_DATA (5400).
Se não for especificado o parâmetro datetime_to (=0), serão retornados todos os valores de eventos a partir da data datetime_from disponível no banco de dados do Calendário, incluindo os valores planejados para o futuro.
Para os filtros country_code e currency valores NULL e "" são equivalentes, eles indicam que não há filtro.
Para country_code deve ser usado o campo code da estrutura MqlCalendarCountry, por exemplo, "US", "RU" ou "EU".
Para currency deve ser usado o campo currency da estrutura MqlCalendarCountry, por exemplo, "USD", "RUB" ou "EUR".
Os filtros são aplicados por conjunção, ou seja, através do booliano 'E' são selecionados apenas os eventos para os quais ambas as condições são atendidas simultaneamente país e moeda.
A estrutura MqlCalendarValue disponibiliza método para obter e verificar valores a partir dos campos actual_value, forecast_value, prev_value e revised_prev_value. Se o valor do campo não estiver definido, ele armazenará o valor LONG_MIN (-9223372036854775808).
Deve-se ter em mente que os valores nestes campos são armazenados multiplicados por um fator de um milhão. Isso significa que quando as funções CalendarValueById, CalendarValueHistoryByEvent, CalendarValueHistory, CalendarValueLastByEvent e CalendarValueLast recebem valores em MqlCalendarValue, é necessário verificar se os valores LONG_MIN desses campos são iguais; e se no campo estiver definido o valor, para obter o valor deve-se dividir o valor do campo por 1000 000 (um milhão). Outra maneira de obter valores é verificar e obter valores por funções da própria estrutura MqlCalendarValue.
Exemplo:
//+------------------------------------------------------------------+
|
Veja também
CalendarCountries, CalendarEventByCountry, CalendarValueHistoryByEvent, CalendarEventById, CalendarValueById