Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях - страница 45

 

Вопрос по календарному функционалу.

Кажется, что неправильно умножаются значения.

Например, беру показатель нон-фармов. Получаю такую информацию:

Получено описания события с event_id = 840030016
Имя события: Изменение числа занятых в несельскохозяйственном секторе
Код события: nonfarm-payrolls
Важность события: CALENDAR_IMPORTANCE_HIGH
Тип события: CALENDAR_TYPE_INDICATOR
Сектор события: CALENDAR_SECTOR_JOBS
Периодичность события: CALENDAR_FREQUENCY_MONTH
Режим выхода события: CALENDAR_TIMEMODE_DATETIME
Единица измерения значения: CALENDAR_UNIT_JOB
Количество знаков после запятой: 0
Множитель значения: CALENDAR_MULTIPLIER_THOUSANDS
URL источника: https://www.bls.gov

Тут множитель равен тысячам.

Получаю исторические значения:

Время и дата события: 2021.09.03 15:30
Отчётный период события: 2021.08.01 00:00
Ревизия: 0
Актуальное значение: 235000000
Предыдущее  значение: 943000000
Пересмотренное предыдущее значение: 1053000000
Прогнозное  значение: 23000000

Время и дата события: 2021.08.06 15:30
Отчётный период события: 2021.07.01 00:00
Ревизия: 0
Актуальное значение: 943000000
Предыдущее  значение: 850000000
Пересмотренное предыдущее значение: 938000000
Прогнозное  значение: 381000000

Время и дата события: 2021.07.02 15:30
Отчётный период события: 2021.06.01 00:00
Ревизия: 0
Актуальное значение: 850000000
Предыдущее  значение: 559000000
Пересмотренное предыдущее значение: 583000000
Прогнозное  значение: 3000000

Время и дата события: 2021.06.04 15:30
Отчётный период события: 2021.05.01 00:00
Ревизия: 0
Актуальное значение: 559000000
Предыдущее  значение: 266000000
Пересмотренное предыдущее значение: 278000000
Прогнозное  значение: -396000000

Разве такими должны быть значения? 

К примеру последнее актуальное равно 235000000. Это 235 млн. Ожидалось, что будет просто 235, что с учётом множителя значения равно 235К.

Или я ошибаюсь?

Проверочный код:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- событие
   ulong nfp_id = 840030016; // нон-фармы
   MqlCalendarEvent nfp_event;
   if(CalendarEventById(nfp_id, nfp_event))
     {
      PrintFormat("Получено описания события с event_id = %d", nfp_id);
      PrintFormat("Имя события: %s", nfp_event.name);
      PrintFormat("Код события: %s", nfp_event.event_code);
      PrintFormat("Важность события: %s", EnumToString((ENUM_CALENDAR_EVENT_IMPORTANCE)nfp_event.importance));
      PrintFormat("Тип события: %s", EnumToString((ENUM_CALENDAR_EVENT_TYPE)nfp_event.type));
      PrintFormat("Сектор события: %s", EnumToString((ENUM_CALENDAR_EVENT_SECTOR)nfp_event.sector));
      PrintFormat("Периодичность события: %s", EnumToString((ENUM_CALENDAR_EVENT_FREQUENCY)nfp_event.frequency));
      PrintFormat("Режим выхода события: %s", EnumToString((ENUM_CALENDAR_EVENT_TIMEMODE)nfp_event.time_mode));
      PrintFormat("Единица измерения значения: %s", EnumToString((ENUM_CALENDAR_EVENT_UNIT)nfp_event.unit));
      PrintFormat("Количество знаков после запятой: %d", nfp_event.digits);
      PrintFormat("Множитель значения: %s", EnumToString((ENUM_CALENDAR_EVENT_MULTIPLIER)nfp_event.multiplier));
      PrintFormat("URL источника: %s", nfp_event.source_url);
     }
//--- статистика
   datetime date_from = D'01.06.2021';
   datetime date_to = D'01.10.2021';
   MqlCalendarValue nfp_values[];
   if(CalendarValueHistoryByEvent(nfp_id, nfp_values, date_from, date_to))
      for(int i = ArraySize(nfp_values) - 1; i >= 0; i--)
        {
         MqlCalendarValue curr_nfp_value = nfp_values[i];
         PrintFormat("\nВремя и дата события: %s", TimeToString(curr_nfp_value.time));
         PrintFormat("Отчётный период события: %s", TimeToString(curr_nfp_value.period));
         PrintFormat("Ревизия: %d", curr_nfp_value.revision);
         PrintFormat("Актуальное значение: %d", curr_nfp_value.actual_value);
         PrintFormat("Предыдущее значение: %d", curr_nfp_value.prev_value);
         PrintFormat("Пересмотренное предыдущее значение: %d", curr_nfp_value.revised_prev_value);
         PrintFormat("Прогнозное значение: %d", curr_nfp_value.forecast_value);
        }
  }
 
Какая релизная версия МТ5 на данный момент самая стабильная? У меня на разных компах есть 3017 и 3020, и на каждом отвечает что это latest)
 

3033.

Это было намерено убрано из Маркета вкладки Покупки? 

И паеренесено в навигатор? 

Как то не очень удобно. 

Можно хотя бы продублировать кнопку "Покупки" как ранее было? 

 
Vladislav Andruschenko #:

3033.

Это было намерено убрано из Маркета вкладки Покупки? 

И паеренесено в навигатор? 

Как то не очень удобно. 

Можно хотя бы продублировать кнопку "Покупки" как ранее было? 

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

 
Vladimir Pastushak #:

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

Все в одном месте это гуд. 

Но я бы оставил дублирующую ссылку в маркете. 

Потому, что в маркет я захожу с нижней ссылки. И я, представив, что  я новый пользователь - не вижу откуда скачать купленный продукт. 

 

Что обозначают эти ошибки?

2021.09.06 16:27:38.183 MQL5    trying to free invalid memory in large allocator 0x000001D02E1800F0, extra=0x000001D02DC80000
2021.09.06 16:27:38.183 MQL5    freeing failed in large allocator 0x000001D02E180100
2021.09.06 16:27:38.183 MQL5    trying to free invalid memory in large allocator 0x000001D02E0E00A0, extra=0x000001D02DC80000
2021.09.06 16:27:38.183 MQL5    freeing failed in large allocator 0x000001D02E0E00B0
2021.09.06 16:27:38.183 MQL5    trying to free invalid memory in large allocator 0x000001D02E060080, extra=0x000001D02DC80000
2021.09.06 16:27:38.183 MQL5    freeing failed in large allocator 0x000001D02E060090
2021.09.06 16:27:38.183 MQL5    trying to free invalid memory in large allocator 0x000001D02DFE0080, extra=0x000001D02DC80000
2021.09.06 16:27:38.183 MQL5    freeing failed in large allocator 0x000001D02DFE0090
2021.09.06 16:27:38.192 MQL5    freeing invalid allocator index (out of range) 0x000001D02E2A00E0
2021.09.06 16:27:38.192 MQL5    trying to free invalid memory in large allocator 0x000001D02DF60110, extra=0x000001D02DC80000
2021.09.06 16:27:38.192 MQL5    freeing failed in large allocator 0x000001D02DF60120
2021.09.06 16:27:38.192 MQL5    freeing invalid allocator index (out of range) 0x000001D02DBC1E60
2021.09.06 16:27:38.192 MQL5    freeing invalid allocator index (out of range) 0x000001D03A4E00C0
 
fxsaber #:

Что обозначают эти ошибки?

Внутренние ошибки MQL, предоставьте пожалуйста код для исследования.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях

fxsaber, 2021.08.28 16:50

b3029, компиляция по F7 выдает такую последовательность готовности кода.

generating code 87%
generating code 92%
generating code 25%
generating code 74%

После 92% идет 25%. Наверное, это ошибка. Воспроизводится каждый раз.

b3033 - актуально.

 
Ilyas #:

Внутренние ошибки MQL, предоставьте пожалуйста код для исследования.

Код предоставить пока не готов. Воспроизводится при запуске EX5_b3033 на b3007 и ниже. Если запускать на b3033 - проблемы нет.


ЗЫ Поскольку вынужден сидеть на b2958 (пока не поправят исторические кеши), то вышло так, что новые EX5 часто запускаю на более старых терминалах. Кто страдает той же фигней - будьте аккуратнее. Критический баг!

 
fxsaber #:

Код предоставить пока не готов. Воспроизводится при запуске EX5_b3033 на b3007 и ниже. Если запускать на b3033 - проблемы нет.

void OnStart()
{
  MqlTick Ticks[];
  
  CopyTicks(_Symbol, Ticks);
}


Запуск EX5_b3033 на MT5_b3007.

2021.09.06 18:28:29.226 Scripts script Test19 (EURUSD,M1) loaded successfully
2021.09.06 18:28:29.423 MQL5    trying to free invalid memory in large allocator 0x000001E46C2400E0, extra=0x000001E46C240000
2021.09.06 18:28:29.423 MQL5    freeing failed in large allocator 0x000001E46C2400F0
2021.09.06 18:28:29.423 Scripts script Test19 (EURUSD,M1) removed