Ошибки, баги, вопросы - страница 2337

 

Это верное несоответствие в Документации?

AccountInfoInteger

Возвращает значение соответствующего свойства счета.

long  AccountInfoInteger( 
   int  property_id      // идентификатор свойства 
   );

Параметры

property_id

[in]  Идентификатор свойства. Значение может быть одним из значений ENUM_ACCOUNT_INFO_INTEGER.

 
По поводу багрепорта  . Проверил ещё раз. Похоже это ошибка не MQL4, а терминала 4.00 Build 1147 16 Nov 2018
 

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

Ошибки, баги, вопросы

A100, 2018.12.03 12:25

void f()
{
static a;
}
static b;

на самом деле означает

void f()
{
}
static b;
static a;

первым делом отдельностоящие static, ну а в {} потом


Один и тот же код (сложный) исполняется по-разному на MT4/5 из-за различия последовательности выполнения static в MT4/5. Написать простой пример не получилось.

 
fxsaber:

Следующие файлы недоступны через MQL:  *.exe, *.dll. *.bat, *.sys, *.ex4 и *.ex5. Причина понятна.

На какие еще файлы стоит ограничение?

подозреваю что ещё *.cmd *.ts и прочие ненароком попавшие в соответсвующую ветку реестра.
То есть всё что при открытии через еxplorer может привести к запуску приложения/активации службы

 
fxsaber:
Один и тот же код (сложный) исполняется по-разному на MT4/5 из-за различия последовательности выполнения static в MT4/5. Написать простой пример не получилось.

Верю. Не верю.

 
A100:

на самом деле означает

первым делом отдельностоящие static, ну а в {} потом

Похоже, что недавно что-то изменили в поведении. Некоторое время назад порядок был другим - глобальные переменные и статики инициализировались в одном порядке (в порядке объявления). Т.е. в данном случае сначала a, а потом b. Может ошибаюсь, но вряд ли.

 
pavlick_:

Похоже, что недавно что-то изменили в поведении. Некоторое время назад порядок был другим - глобальные переменные и статики инициализировались в одном порядке (в порядке объявления). Т.е. в данном случае сначала a, а потом b. Может ошибаюсь, но вряд ли.

Прежде чем написать это - я не поленился - проверил в MetaTrader 4 build 765x32 (MetaEditor build 1035x32) - все тоже самое. А это 2014 год (!)
 
#define M (a ? 1 : 0)

struct S {
   int a;
};

void OnStart()
{
   S s;
#define a s.a
   Alert(M);
}

Скомпилировать не удаётся, ошибки:
   'a' - too complex, simplify the macro    temp.mq5    24    10
   's' - struct member undefined    temp.mq5    24    10
   ...

Т.е. препроцессор,  видимо, пытается рекурсивно раскрыть a.

 

Интересно, это брокер так делает или какой то баг мт 4 ?


 
A100:
Прежде чем написать это - я не поленился - проверил в MetaTrader 4 build 765x32 (MetaEditor build 1035x32) - все тоже самое. А это 2014 год (!)

Да, я снова ошибся.