Algumas perguntas caíram por terra. O tempo foi resolvido. Acabou sendo simples. A hora é GMT, e o site foi representado por GMT+3, daí todos os meus mal-entendidos somados.
Aqui está o primeiro resultado: Descrição do evento recebido, primeira linha da foto
2019.07.24 11:29:03.972 !00 (EURUSD,H1) время и дата события - 2019.07.24 13:45:00 2019.07.24 11:29:03.972 !00 (EURUSD,H1) идентификатор события - 840500001 2019.07.24 11:29:03.972 !00 (EURUSD,H1) тип события из перечисления ENUM_CALENDAR_EVENT_TYPE - CALENDAR_TYPE_INDICATOR 2019.07.24 11:29:03.972 !00 (EURUSD,H1) сектор, к которому относится событие - CALENDAR_SECTOR_BUSINESS 2019.07.24 11:29:03.972 !00 (EURUSD,H1) частота (периодичность) события - CALENDAR_FREQUENCY_MONTH 2019.07.24 11:29:03.972 !00 (EURUSD,H1) режим времени события - CALENDAR_TIMEMODE_DATETIME 2019.07.24 11:29:03.972 !00 (EURUSD,H1) идентификатор страны - 840 2019.07.24 11:29:03.972 !00 (EURUSD,H1) текстовое имя страны (в текущей кодировке терминала) - Соединенные Штаты 2019.07.24 11:29:03.972 !00 (EURUSD,H1) единица измерения значения экономического индикатора - CALENDAR_UNIT_NONE 2019.07.24 11:29:03.972 !00 (EURUSD,H1) важность события - CALENDAR_IMPORTANCE_MODERATE 2019.07.24 11:29:03.972 !00 (EURUSD,H1) множитель значения экономического индикатора - CALENDAR_MULTIPLIER_NONE 2019.07.24 11:29:03.972 !00 (EURUSD,H1) количество знаков после запятой - 1 2019.07.24 11:29:03.972 !00 (EURUSD,H1) URL источника, где публикуется событие - https://www.markiteconomics.com 2019.07.24 11:29:03.972 !00 (EURUSD,H1) код события - markit-manufacturing-pmi 2019.07.24 11:29:03.972 !00 (EURUSD,H1) текстовое имя события на языке терминала (в текущей кодировке терминала) - Индекс менеджеров по закупкам в производственном секторе от Markit
Pergunta para os desenvolvedores:
Por que este código da documentação, com pequenas modificações
void OnStart() { MqlCalendarValue values[]; //--- запросим историю событий от текущего времени до конца сегодняшнего дня. if(CalendarValueHistory(values,TimeCurrent(),iTime(_Symbol, PERIOD_D1, 0)+PeriodSeconds(PERIOD_D1))) { PrintFormat("Получены значения событий по country_code=%s: %d", ArraySize(values)); //--- выведем значения событий в Журнал ArrayPrint(values); } else { PrintFormat("Ошибка! Не удалось получить события по стране country_code=%s"); PrintFormat("Код ошибки: %d",GetLastError()); } //--- }
mostra que o tamanho da matriz de valores é zero, mas mesmo assim imprime tudo no calendário. Ou seja, todos os eventos são recebidos.
2019.07.24 15:20:33.131 !00 (EURUSD,H1) Получены значения событий по country_code=(non-string passed): 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [id] [event_id] [time] [period] [revision] [actual_value] [prev_value] [revised_prev_value] [forecast_value] [impact_type] [reserved] 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [0] 97265 76020013 2019.07.24 15:30:00 1970.01.01 00:00:00 0 -9223372036854775808 -1227000 -9223372036854775808 -2405000 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [1] 87842 840220012 2019.07.24 17:00:00 1970.01.01 00:00:00 0 -9223372036854775808 1791000 -9223372036854775808 -9223372036854775808 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [2] 93625 410010011 2019.07.24 23:00:00 2019.04.01 00:00:00 1 -9223372036854775808 -400000 -9223372036854775808 400000 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [3] 93626 410010012 2019.07.24 23:00:00 2019.04.01 00:00:00 1 -9223372036854775808 1700000 -9223372036854775808 2900000 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [4] 87394 392060016 2019.07.24 23:50:00 2019.06.01 00:00:00 0 -9223372036854775808 800000 -9223372036854775808 0 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [5] 97012 392070003 2019.07.24 23:50:00 2019.07.20 00:00:00 0 -9223372036854775808 950000000 -9223372036854775808 -9223372036854775808 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [6] 97013 392070004 2019.07.24 23:50:00 2019.07.20 00:00:00 0 -9223372036854775808 -93100000 -9223372036854775808 -9223372036854775808 0 0
Onde, o que não tem tempo para trabalhar?
Sim, obrigado. Eu já resolvi isso. Eu fiz asneira ao corrigir o exemplo da documentação.
@Renat Fatkhullin Renat, podemos esperar que um dia uma função como TimeGMTOffset() seja feita, apenas pelo tempo do servidor e não pelo tempo local? Porque as funções do calendário econômico utilizam a hora GMT e a hora local muitas vezes não coincide com a hora do servidor. Portanto, quando tenho tempo para notícias, tenho que traduzi-lo para o tempo terminal. Entendo que pode haver problemas ao chamar esta função no fim de semana, mas ela pode detectar algum tipo de erro, que esta função não está disponível neste momento, ou o que quer que seja.
Até agora eu fiz assim: no OnInit() a diferença de tempo é calculada e escrita em variável global. Mas eu não gosto muito disso. Na minha opinião, seria melhor chamar a função integrada e ajustar o tempo de notícias ao tempo do servidor. Especialmente o terminal provavelmente tem tempo de servidor disponível também nos fins de semana.
@Renat Fatkhullin Renat, podemos esperar que um dia uma função como TimeGMTOffset() seja feita, apenas pelo tempo do servidor e não pelo tempo local? Porque as funções do calendário econômico utilizam a hora GMT e a hora local muitas vezes não coincide com a hora do servidor. Portanto, quando tenho tempo para notícias, preciso traduzi-lo para o tempo terminal. Entendo que pode haver problemas ao chamar esta função nos fins de semana, mas é possível determinar algum tipo de erro, que esta função não está disponível no momento ou algo mais.
Até agora eu o fiz: em OnInit() a diferença de tempo é calculada e escrita em variável global. Mas eu não gosto muito disso. Na minha opinião, seria melhor chamar a função integrada e ajustar o tempo de notícias ao tempo do servidor. Especialmente o terminal provavelmente tem tempo de servidor disponível também nos fins de semana.
É claro que está disponível, isto já foi solicitado.
É claro que está disponível, isto já foi solicitado.
Vitaly, qualquer pedido precisa ser justificado. Espero ter fornecido argumentos suficientes para a necessidade de tal função. Agora depende da carga de trabalho dos programadores da empresa e de como os argumentos são compreendidos e aceitos. Espero que sim.
Que informações podem ser extraídas do calendário: (Valores que são usados pelo software e que são de pouca informação para o ser humano não estão listados aqui)
- Nome do país
- Moeda dos países
- tipo de evento
Evento (comício, discurso, etc.) |
Indicador |
Férias |
- Setor ao qual o evento pertence
Mercado, bolsa de valores |
Produto interno bruto (PIB) |
Mercado de trabalho |
Preços |
Dinheiro |
Comércio |
Governo |
Negócios |
Consumo |
Moradia |
Impostos |
Feriados |
- nome de texto do evento no idioma do terminal (na codificação atual do terminal)
- hora e data do evento
- período do relatório do evento
- valor atual do parâmetro
- valor anterior do parâmetro
- valor anterior revisto do indicador
- valor previsto do indicador
- impacto potencial sobre a taxa de câmbio
Nenhum impacto indicado |
Impacto positivo |
Impacto negativo |
Infelizmente, exceto pela proibição de abrir posições antes dos comunicados à imprensa, não encontrei outras soluções. Quero descobrir quais deles podem ser usados e como reagir a eles.
Como eu entendo, os valores destacados são muito importantes para decidir como reagir às notícias, mas não entendo como. Convido à discussão.
Que informações podem ser obtidas do calendário: (Valores que são usados pelo programa e que são de pouca informação para os seres humanos não estão listados aqui)
- Nome do país
- Moeda dos países
- tipo de evento
Evento (comício, discurso, etc.) |
Indicador |
Férias |
- Setor ao qual o evento pertence
Mercado, bolsa de valores |
Produto interno bruto (PIB) |
Mercado de trabalho |
Preços |
Dinheiro |
Comércio |
Governo |
Negócios |
Consumo |
Moradia |
Impostos |
Feriados |
- nome de texto do evento no idioma do terminal (na codificação atual do terminal)
- hora e data do evento
- período do relatório do evento
- valor atual do parâmetro
- valor anterior do parâmetro
- valor anterior revisto do indicador
- valor previsto de um indicador
- impacto potencial sobre a taxa de câmbio
Nenhum impacto indicado |
Impacto positivo |
Impacto negativo |
Infelizmente, exceto pela proibição de abrir posições antes dos comunicados à imprensa, não encontrei outras soluções. Quero descobrir quais deles podem ser usados e como reagir a eles.
Como eu entendo, os valores destacados são muito importantes para decidir como reagir às notícias, mas não entendo como. Convido à discussão.
Aqui está a minha variante do indicador de notícias. O terminal fornece informações sobre o tempo de divulgação de notícias por moedas, o grau de importância também é selecionado. A informação é mostrada como uma linha vertical na tabela de preços. Na subjanela você pode ver o histograma dos últimos valores dos dados, em ordem cronológica, em relação à previsão das notícias, que foi categorizada como importante. Dependendo do tipo de notícia (taxas de juros, taxa de desemprego, índice de preços ao consumidor, PIB, etc.), os valores podem ser plotados em ordem cronológica. A tabela obtida deve ser sincronizada em tempo e escala com a tabela de preços ao mudar o período de tempo. Também estou interessado na velocidade de obtenção de dados reais.
Aqui está minha versão do indicador de notícias. Ele alimenta o terminal com horários de lançamento de notícias para as moedas de sua escolha, o grau de importância também é selecionável. A informação é exibida com uma linha vertical na tabela de preços. Na subjanela desenhamos, na ordem cronológica, um histograma dos últimos valores dos dados das notícias, que são atribuídos à classe-importante. A tabela obtida deve ser sincronizada em tempo com a tabela de preços ao trocar a TF. A velocidade de obtenção de dados reais também é de interesse.
Você quer dizer histogramas para toda a profundidade da história disponível no gráfico?
Mas não dá nenhuma informação para aplicação em tempo real. Ou será que eu entendi completamente mal? Bem, a previsão e o valor atual foram obtidos, estabelecemos o histograma, e então... Tomar uma decisão apenas manualmente?
Não verifiquei a velocidade de atualização dos dados no calendário, e a velocidade de recebimento de dados prontos deve ser medida, mas não tenho tal desejo, porque a velocidade é bastante alta.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Quero entender como funciona o calendário econômico da MQL5, mas algo não está se movendo muito rápido. Passei a maior parte de ontem e o início de hoje, mas ainda não entendo porque o CalendarValueHistory não retorna todos os eventos. Ou talvez eu os confunda, esses eventos um pouco...
Ontem eu estava recebendo 4 eventos às xx:45 como escrito no calendário. Estou escrevendo o horário do evento como "xx" porque o tempo recebido não é o mesmo que o da mesa. Mas pelo menos se podia entender que isto se deve à diferença entre o tempo especificado e o tempo do terminal ou servidor de onde os dados foram obtidos. Mas agora eu tenho apenas 3 eventos com tempo :45 e não consigo entender por quê.
E pergunta aos desenvolvedores: Por que na primeira data da matriz 2019.07.25 00:00 e as próximas filas são ordenadas em ordem ascendente. Veja a lista resultante.