Новая версия платформы MetaTrader 5 build 4620: исправления ошибок в MQL5 и новые методы OpenBLAS - страница 10

 
Stanislav Korotky #:

Примеры (для наглядности):

А вот что говорит всемогущий интернет:

Тогда почему в базе календаря 293 таких событий, а после удаления "дублей" остаётся 211 (если ничего не напутал, конечно)? Должна же остаться половина?
 
Aleksey Nikolayev #:
Тогда почему в базе календаря 293 таких событий, а после удаления "дублей" остаётся 211 (если ничего не напутал, конечно)? Должна же остаться половина?

Точнее, 322 события и 93 пары с одним периодом. Пары идут в конце, что наверно говорит о том, что сначала была одна версия индикатора, а уж потом их стало две?

void OnStart()
{  MqlCalendarValue values[];
   int n = CalendarValueHistoryByEvent(840020006, values, 0), ds = 0;
   for (int i = 0; i < n - 1; ++i)
      for (int j = i + 1; j < n; ++j)
         if (values[i].period == values[j].period)
         {  ++ds;
            printf("event#%d revision#%d and event#%d revision#%d", i, values[i].revision, j, values[j].revision);
         }
   printf("events#%d doubles#%d", n, ds); // events#322 doubles#96

}
 
Aleksey Nikolayev #:
Тогда почему в базе календаря 293 таких событий, а после удаления "дублей" остаётся 211 (если ничего не напутал, конечно)? Должна же остаться половина?

Потому что если посмотреть историю, то видно, что раньше публиковалось один раз в месяц:

https://www.mql5.com/en/economic-calendar/united-states/wholesale-inventories

Wholesale Inventories m/m - economic indicator from the United States
Wholesale Inventories m/m - economic indicator from the United States
  • www.mql5.com
Wholesale Inventories reflects the change in the total value of goods held in stocks by wholesalers, in the specified month compared to the previous one. This secondary indicator has a limited impact
 
MetaQuotes #:

Просьба в документации для struct MqlCalendarValue описать подробнее как конкретно определяется временной период, к которому относятся предудущее prev_value и пересмотренное предыдущее revised_prev_value значения. Правильно ли понимаю, что для них обоих всегда нужно брать период предыдущий по отношению к полю period? Или в каких-то случаях надо брать период предыдущий по отношению к полю time? Или опять всё перепутал и всё совсем по другому?

 
Aleksey Nikolayev #:
Просьба в документации для struct MqlCalendarValue описать подробнее как конкретно определяется временной период, к которому относятся предудущее prev_value и пересмотренное предыдущее revised_prev_value значения. Правильно ли понимаю, что для них обоих всегда нужно брать период предыдущий по отношению к полю period? Или в каких-то случаях надо брать период предыдущий по отношению к полю time? Или опять всё перепутал и всё совсем по другому?

Посмотрим на событие Nonfarm Payrolls. Последний релиз от 4 октября был таким:

t2 (EURUSD,H1)  Время и дата события: 2024.10.04 15:30
t2 (EURUSD,H1)  Отчётный период события: 2024.09.01 00:00
t2 (EURUSD,H1)  Ревизия: 0
t2 (EURUSD,H1)  Актуальное значение: 254000000
t2 (EURUSD,H1)  Предыдущее значение: 142000000
t2 (EURUSD,H1)  Пересмотренное предыдущее значение: 159000000
t2 (EURUSD,H1)  Прогнозное значение: 267000000

Что касается предыдущего значения (от 06.09.2024), то видим, что оно составило 142 тыс. Но когда был последний релиз (04.10.2024), то предыдущее значение пересмотрели на 159 тыс. Пересмотр вышел 4 октября, одновременно с последним релизом.

Имхо, всё логично, что касается заполнения структуры MqlCalendarValue. Единственное, можно было добавить в структуру ссылку на предыдущее значение примерно так:

ulong prev_id; // ID предыдущего значения

Предпоследний релиз был таким:

t2 (EURUSD,H1)  Время и дата события: 2024.09.06 15:30
t2 (EURUSD,H1)  Отчётный период события: 2024.08.01 00:00
t2 (EURUSD,H1)  Ревизия: 0
t2 (EURUSD,H1)  Актуальное значение: 142000000
t2 (EURUSD,H1)  Предыдущее значение: 114000000
t2 (EURUSD,H1)  Пересмотренное предыдущее значение: 89000000
t2 (EURUSD,H1)  Прогнозное значение: 104000000


Графически:

Изменение числа занятых в несельскохозяйственном секторе - экономический индикатор США
Изменение числа занятых в несельскохозяйственном секторе - экономический индикатор США
  • www.mql5.com
Изменение числа занятых в несельскохозяйственном секторе (Nonfarm Payrolls) — показатель, отражающий количество новых рабочих мест, созданных в отчетном месяце, во всех отраслях экономики США, кроме
 
Denis Kirichenko #:

Посмотрим на событие Nonfarm Payrolls. Последний релиз от 4 октября был таким:

Что касается предыдущего значения (от 06.09.2024), то видим, что оно составило 142 тыс. Но когда был последний релиз (04.10.2024), то предыдущее значение пересмотрели на 159 тыс. Пересмотр вышел 4 октября, одновременно с последним релизом.

Имхо, всё логично, что касается заполнения структуры MqlCalendarValue. Единственное, можно было добавить в структуру ссылку на предыдущее значение примерно так:

Предпоследний релиз был таким:


Графически:

Ваш пример подтверждает предположение, что предыдущее и пересмотренное относятся к периоду на единицу меньше, чем в поле period. Хотелось бы фиксации этого правила в документации, чтобы не столкнуться с ситуацией, что пересмотренным может оказаться значение за ещё более старый период.
 
Aleksey Nikolayev #:
Хотелось бы фиксации этого правила в документации

К сожалению, там нет правил. Все гадают, что обозначает каждое поле и как оно формируется. Уверен, MQ тоже всего не знают, т.к. не они изобретали этот велопипед - изучали сторонние новостные API и создавали на их основе свое. Тоже не совсем понимая определенные поля и правила. Но раз там есть, то и взяли, чтобы что-то не упустить.

 
fxsaber #:

К сожалению, там нет правил. Все гадают, что обозначает каждое поле и как оно формируется. Уверен, MQ тоже всего не знают, т.к. не они изобретали этот велопипед - изучали сторонние новостные API и создавали на их основе свое. Тоже не совсем понимая определенные поля и правила. Но раз там есть, то и взяли, чтобы что-то не упустить.

Дело ясное, что дело тёмное.
 
fxsaber #:

К сожалению, там нет правил. Все гадают, что обозначает каждое поле и как оно формируется. Уверен, MQ тоже всего не знают, т.к. не они изобретали этот велопипед - изучали сторонние новостные API и создавали на их основе свое. Тоже не совсем понимая определенные поля и правила. Но раз там есть, то и взяли, чтобы что-то не упустить.

Всё же хотелось бы иметь какое-то понимание, что делать, например, когда некоторые периоды пропущены. Надо же как-то осваивать этот велопипец.
 
Aleksey Nikolayev #:
Всё же хотелось бы иметь какое-то понимание, что делать, например, когда некоторые периоды пропущены. Надо же как-то осваивать этот велопипец.

Предлагаю пойти от обратного. Поищите в базе событий, были ли такие пропуски  )) База достаточно обширна, так что есть где разгуляться...