- CalendarCountryById
- CalendarEventById
- CalendarValueById
- CalendarCountries
- CalendarEventByCountry
- CalendarEventByCurrency
- CalendarValueHistoryByEvent
- CalendarValueHistory
- CalendarValueLastByEvent
- CalendarValueLast
CalendarValueLast
Obtém um array de valores de todos os eventos com filtro por país e/ou moeda desde o momento em que criado do banco de dados do Calendário com o change_id definido.
int CalendarValueLast(
|
Parâmetros
change_id
[in][out] Identificador de alteração.
values[]
[out] Array de tipo MqlCalendarValue para obter valores de eventos. Veja um exemplo de processamento de eventos de calendário.
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
Número de valores de eventos recebidos. 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 na função for passado change_id = 0, a função sempre retornará zero, mas ao mesmo tempo change_id retorna o estado atual do banco de dados do Calendário.
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 função retorna uma matriz de valores para as notícias especificadas e change_id novo que pode ser usado para chamadas subsequentes desta função para obter novos valores de notícias. Assim, chamando esta função com o último conhecido change_id, pode-se receber atualizações de valores para uma determinada notícia.
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.
Um exemplo de um EA que ouve a publicação de eventos do Calendário Econômico:
#property description "Exemplo de uso da função CalendarValueLast"
|
Veja também
CalendarValueLast, CalendarValueHistory, CalendarValueHistoryByEvent, CalendarValueById