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

 
2021.09.14 11:21:58.634 Terminal        MetaTrader 5 x64 build 3038 started for MetaQuotes Software Corp.
2021.09.14 11:21:58.636 Terminal        Windows 11 build 22000, Intel Core i7-9750H  @ 2.60GHz, 24 / 31 Gb memory, 795 / 947 Gb disk, IE 11, UAC, GMT+2
2021.09.14 11:21:58.636 Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075


После переключения на новый профиль, терминал снова стирает все графики в шаблоне с которого было переключение.

 

Началось в билде 3037 и продолжается в 3038:

struct TestSlave                                                                                  
{
   double   fA;                                                                               
   int      nB;                                                                        
   
   TestSlave()
   {
   }
};

struct TestMain                                                               
{
   int                  nA;                                             
   TestSlave            stSlave;                                              
   
   TestMain(const int _nA = 0)
      : nA(_nA)
   {
   }
};

class TestClass
{
   TestMain   m_stB;
public:
                     TestClass()                            // member 'm_stB' has no default constructor

                     {
                     }
                     
                    ~TestClass(void);
                    
                    
};

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   TestMain stA;                                           // no errors
}
 

3038 после обновления не запускается.

Откатился на 3037, он тут же обновился и опять не запустился. Лог терминала (вырезал только сообщения о запуске/остановке советников, сервисов и индикаторов):

PR      0       09:48:03.036    Terminal        exit with code 0
JS      0       09:48:03.072    Terminal        stopped with 0
LK      0       09:48:03.105    Terminal        shutdown with 0
IP      0       10:33:09.706    Terminal        MetaTrader 5 x64 build 3037 started for MetaQuotes Software Corp.
ME      0       10:33:09.707    Terminal        Windows 8.1 build 9600, Intel Core i5-3570  @ 3.40GHz, 8 / 15 Gb memory, 193 / 499 Gb disk, IE 11, UAC, GMT+2
NI      0       10:33:09.707    Terminal        D:\_Forex\MetaTrader 5 Work
IR      0       10:33:22.031    LiveUpdate      new version build 3038 (IDE: 3038, Tester: 3038) is available
FS      0       10:33:22.125    Network '30966228': authorized on MetaQuotes-Demo through Access Point EU 3 (ping: 53.73 ms, build 3038)
EJ      0       10:33:22.125    Network '30966228': previous successful authorization performed from 193.106.56.117 on 2021.09.13 22:05:17
RD      0       10:33:22.230    Network '30966228': terminal synchronized with MetaQuotes Software Corp.: 0 positions, 0 orders, 148 symbols, 0 spreads
PN      0       10:33:22.230    Network '30966228': trading has been enabled - hedging mode

PE      0       10:33:22.932    Network '30966228': scanning network for access points

QM      0       10:33:31.286    LiveUpdate      'mt5clw64' downloaded (31699 kb)
QK      0       10:33:34.998    Network '30966228': scanning network finished
NS      0       10:33:36.025    LiveUpdate      'mt5clwide64' downloaded (23895 kb)
PI      0       10:33:38.008    LiveUpdate      'mt5clwtst64' downloaded (10985 kb)
QP      0       10:33:38.493    LiveUpdate      downloaded successfully
FH      2       10:33:38.807    Virtual Hosting 'Webzilla New York' failed to send status command [1001]
GN      0       10:33:44.549    LiveUpdate      start "C:\Users\komposter\AppData\Roaming\MetaQuotes\Terminal\2C5171B8036A4F042271B28D6E94C91E\liveupdate\terminal64.exe" /update /path:"D:\_Forex\MetaTrader 5 Work" /portable

ID      0       10:33:46.056    Terminal        exit with code 0
LM      2       10:33:46.082    Virtual Hosting 'Webzilla New York' failed to send status command [1001]

GH      0       10:33:46.085    Network '30966228': disconnected from MetaQuotes-Demo

MN      0       10:33:47.354    Terminal        stopped with 0
KM      0       10:33:47.478    Terminal        shutdown with 0
FI      0       10:33:48.523    LiveUpdate      updating...
CS      0       10:33:50.751    LiveUpdate      'D:\_Forex\MetaTrader 5 Work\terminal64.exe' updated
JH      0       10:33:51.636    LiveUpdate      'D:\_Forex\MetaTrader 5 Work\metaeditor64.exe' updated
EO      0       10:33:52.975    LiveUpdate      'D:\_Forex\MetaTrader 5 Work\metatester64.exe' updated
PK      0       10:33:52.999    LiveUpdate      updated successfully
IN      0       10:33:53.378    Terminal        shutdown with 0
PH      0       10:33:53.404    Terminal        update D:\_Forex\MetaTrader 5 Work\MQL5 folder started
KR      0       10:33:53.769    Terminal        update D:\_Forex\MetaTrader 5 Work\MQL5 folder finished
JR      0       10:33:54.089    Terminal        exit with code 0
KP      0       10:33:54.127    Terminal        stopped with 0
FK      0       10:33:54.321    Terminal        shutdown with 0
 
Andrey Khatimlianskii #:

3038 после обновления не запускается.

Откатился на 3037, он тут же обновился и опять не запустился. Лог терминала (вырезал только сообщения о запуске/остановке советников, сервисов и индикаторов):

Если запустить эдитор и нажать Ф4, он секунд 5-7 думает, но ничего не происходит.

 
Andrey Khatimlianskii #:

3038 после обновления не запускается.

Запустился при добавлении terminal64.exe в исключения HIPS (другие исключения не помогали):


 
Ilyas #:

Данные хранятся в миллионных долях, чтобы получить значение нужно его разделить на 1'000'000.0

При чём следует учесть, что значение LONG_MIN означает, что для данного показателя значение отстутвует.

Я добавил новые методы в структуру MqlCalendarValue, которые автоматизируют это:

bool MqlCalendarValue::HasActualValue(void)   const - возвращает true, если соответствующее значение задано, иначе false
bool MqlCalendarValue::HasForecastValue(void) const - возвращает true, если соответствующее значение задано, иначе false
bool MqlCalendarValue::HasPreviousValue(void) const - возвращает true, если соответствующее значение задано, иначе false
bool MqlCalendarValue::HasRevisedValue(void)  const - возвращает true, если соответствующее значение задано, иначе false

double MqlCalendarValue::GetActualValue(void)   const - возвращает значение или nan, если значение не задано
double MqlCalendarValue::GetForecastValue(void) const - возвращает значение или nan, если значение не задано
double MqlCalendarValue::GetPreviousValue(void) const - возвращает значение или nan, если значение не задано
double MqlCalendarValue::GetRevisedValue(void)  const - возвращает значение или nan, если значение не задано

Ilyas, спасибо конечно. Но что-то перемудрили с методами. Пытался получить описание значения события по его идентификатору. 

Пример:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- props
   ulong value_id = 115748;
   MqlCalendarValue value;
   bool is_value =::CalendarValueById(value_id, value);
//--- log
   ::PrintFormat("\nValue id: %d", value_id);
   ::PrintFormat("Is value returned: %d", is_value);
   ::PrintFormat("GetActualValue() returned: %0.2f", value.GetActualValue());
   bool is_actual_value = value.HasActualValue();
   ::PrintFormat("HasActualValue() returned: %d", is_actual_value);
   ::PrintFormat("GetPreviousValue() returned: %0.2f", value.GetPreviousValue());
   bool is_prev_value = value.HasPreviousValue();
   ::PrintFormat("HasPreviousValue() returned: %d", is_prev_value);
   ::PrintFormat("GetForecastValue() returned: %0.2f", value.GetForecastValue());
   bool is_future_value = value.HasForecastValue();
   ::PrintFormat("HasForecastValue() returned: %d", is_future_value);
  }

Журнал:

2021.09.15 11:34:13.037 test_error (EURUSD,M15) Value id: 115748
2021.09.15 11:34:13.425 test_error (EURUSD,M15) Is value returned: 1
2021.09.15 11:34:15.056 test_error (EURUSD,M15) GetActualValue() returned: 0.00
2021.09.15 11:34:36.413 test_error (EURUSD,M15) HasActualValue() returned: 0
2021.09.15 11:34:48.195 test_error (EURUSD,M15) GetPreviousValue() returned: 0.20
2021.09.15 11:34:58.685 test_error (EURUSD,M15) HasPreviousValue() returned: 1
2021.09.15 11:35:15.878 test_error (EURUSD,M15) GetForecastValue() returned: 0.10
2021.09.15 11:35:25.219 test_error (EURUSD,M15) HasForecastValue() returned: 1

Это событие "United States Core Personal Consumption Expenditures (PCE) Price Index m/m" от  25 Nov 2020, где actual = 0.0%, previous = 0.2%, forecast = 0.1%

Насколько понимаю, то MqlCalendarValue::HasActualValue() некорректно обрабатывает нулевое значение, считая его неправильным.

Просьба исправить. 

Core PCE Price Index m/m - economic indicator from the United States
Core PCE Price Index m/m - economic indicator from the United States
  • www.mql5.com
Core PCE Price Index m/m reflects price changes of durable and non-durable goods and services in the specified month compared to the previous month. Food and energy prices are excluded from the index
 

В правом-нижнем углу терминала знак кирпича - что это значит?


 
Ihor Herasko #:

Началось в билде 3037 и продолжается в 3038:

Исправил. Спасибо!

 
Denis Kirichenko #:

Ilyas, спасибо конечно. Но что-то перемудрили с методами. Пытался получить описание значения события по его идентификатору. 

Пример:

Журнал:

Это событие "United States Core Personal Consumption Expenditures (PCE) Price Index m/m" от  25 Nov 2020, где actual = 0.0%, previous = 0.2%, forecast = 0.1%

Насколько понимаю, то MqlCalendarValue::HasActualValue() некорректно обрабатывает нулевое значение, считая его неправильным.

Просьба исправить. 

Спасибо, исправлено. (ошибка копипаст)

 
Ilyas #:

Исправил. Спасибо!

Добрый день!

А нельзя ли поправить расписание сессий для Срочного рынка (фьючерсы)?

Ведь биржа давно транслирует это расписание.