Выпущен MetaTrader 4 Client Terminal build 600 с обновленным языком MQL4 и Маркетом приложений - страница 83

 
Renat:

Это всегда так работало последние лет 10 - используется lazy output для вывода логов в интерфейсе, чтобы не тормозить на отрисовке логов.

В файл пишется все быстро, посмотрите логи там, пожалуйста.



Смотрю, когда требуется, но как совсем недавно было удобно! Запускаю тестер и смотрю журнал, чтобы сразу заметить, если есть ошибка!

Извините, lazy output мне ничего не говорит. Желательно приблизить терминологию к рядовому пользователю, а не только профессиналам-программистам!

Благодарю за проявленное внимание!

Только что ещё раз прогнал. Время прогона увеличилось на одну треть:

2014.03.03 18:07:08.770 EURUSD,M1: 367035 tick events (368034 bars, 733320 bar states) processed within 10999 ms (total time 13042 ms)

А ночью было:

2014.03.02 21:51:21.476 EURUSD,M1: 367035 tick events (368034 bars, 733320 bar states) processed within 9282 ms (total time 10514 ms)

И как быть с дробными параметрами с ненужными нулями до 8-ми в журнале, примирится?!

 

Ну и как теперь понять где это ошибка и как исправить?

int vdigits = MarketInfo("EURUSD",MODE_DIGITS);

possible loss of data due to type conversion

https://docs.mql4.com/ru/marketinformation/marketinfo

 
abeiks:

Ну и как теперь понять где это ошибка и как исправить?

int vdigits = MarketInfo("EURUSD",MODE_DIGITS);

possible loss of data due to type conversion

https://docs.mql4.com/ru/marketinformation/marketinfo

int vdigits =(int)MarketInfo("EURUSD",MODE_DIGITS);

Даже если идентификатором запроса считываются данные, имеющие тип int, функция возвращает тип double, так как объявлена именно с этим типом.

 
artmedia70:

int vdigits =(int)MarketInfo("EURUSD",MODE_DIGITS);

Даже если идентификатором запроса считываются данные, имеющие тип int, функция возвращает тип double, так как объявлена именно с этим типом.



Спасибо.
 

Как сделать чтобы здесь не было ошибка?

int Primary_Digit()
{
double spr = MarketInfo(Symbol(),MODE_SPREAD);
int digits=(int)MarketInfo(Symbol(),MODE_DIGITS);
int Prim_Digit;
if (digits == 4 || digits == 2)Prim_Digit = 1;
if (digits == 5 || digits == 3 || spr>20)Prim_Digit = 10;

return(Prim_Digit);

}

possible use of uninitialized variable 'Prim_Digit'



 
Всем привет. А как сделать, чтобы у меня в редакторе в разных окнах не сбрасывался курсор на одну и ту же позицию после компиляции или дебаггинга? Ну тоесть я хочу, чтобы в разных окнах в которых открыт один и тот же код, курсоры стояли там где я их поставил. А то после компиляции очень неудобно искать заново, где я находился до компиляции :(
 
abeiks:

Как сделать чтобы здесь не было ошибка?

possible use of uninitialized variable 'Prim_Digit'

Ошибки красным выделены, а это - всего лишь предупреждение. Не хотите его видеть - присвойте Prim_Digit значение при объявлении.
 
abeiks:

Как сделать чтобы здесь не было ошибка?

int Primary_Digit()
{
double spr = MarketInfo(Symbol(),MODE_SPREAD);
int digits=(int)MarketInfo(Symbol(),MODE_DIGITS);
int Prim_Digit;
if (digits == 4 || digits == 2)Prim_Digit = 1;
if (digits == 5 || digits == 3 || spr>20)Prim_Digit = 10;

return(Prim_Digit);

}

possible use of uninitialized variable 'Prim_Digit'




int Prim_Digit=1;
 
Pyro:
Всем привет. А как сделать, чтобы у меня в редакторе в разных окнах не сбрасывался курсор на одну и ту же позицию после компиляции или дебаггинга? Ну тоесть я хочу, чтобы в разных окнах в которых открыт один и тот же код, курсоры стояли там где я их поставил. А то после компиляции очень неудобно искать заново, где я находился до компиляции :(
Как раз после компиляции текст проматывается так, чтобы была видна позиция курсора. Вы наверное колёсиком от курсора промотали текст, потом нажали F7, и вот после компиляции текст возвращается к позиции курсора. Если хотите видеть тот текст, который был перед глазами до компиляции - щёлкните в пределах окна с текстом (установите курсор в видимую область) и компилируйте.
 
abeiks:

Как сделать чтобы здесь не было ошибка?

int Primary_Digit()
{
double spr = MarketInfo(Symbol(),MODE_SPREAD);
int digits=(int)MarketInfo(Symbol(),MODE_DIGITS);
int Prim_Digit;
if (digits == 4 || digits == 2)Prim_Digit = 1;
if (digits == 5 || digits == 3 || spr>20)Prim_Digit = 10;

return(Prim_Digit);

}

possible use of uninitialized variable 'Prim_Digit'


int Primary_Digit()
{
double spr = MarketInfo(Symbol(),MODE_SPREAD);
int digits=(int)MarketInfo(Symbol(),MODE_DIGITS);
int Prim_Digit=1;
//if (digits == 4 || digits == 2)Prim_Digit = 1;
if (digits == 5 || digits == 3 || spr>20)Prim_Digit = 10;

return(Prim_Digit);

}




Причина обращения: