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

 

Наверняка где-то уже задавали вопрос, но не нашел.

Имеется скрипт

void OnStart()
  {
   uchar uchar0 = 0;
   uchar uchar1 = 1;
   Print(uchar0 - uchar1);      //-1
   Print(0 - uchar1);           //-1
   Print(-uchar1);              //255
   Print(typename(-uchar1));    //int
   Print(-(int)uchar1);         //-1

   ushort ushort0 = 0;
   ushort ushort1 = 1;
   Print(ushort0 - ushort1);      //-1
   Print(0 - ushort1);           //-1
   Print(-ushort1);              //65535
   Print(typename(-ushort1));    //int
   Print(-(int)ushort1);         //-1

   uint uint1 = 1;
   Print(0 - uint1);           //4294967295
   Print(-uint1);              //4294967295
   Print(typename(-uint1));    //long
  }

Объясните, пожалуйста:

1. Почему 0-uchar1 (и uchar0-uchar1) дает  результат не такой, как (-uchar1)? Ведь при операциях с типами (u)char и (u)short операнды автоматически приводятся к int. И typename(-uchar1) возвращает  int.  (Тот же вопрос для  ushort1)

2. С uint ситуация другая. -uint1 возвращает ожидаемый результат, но typename(-uint1) возращает long. Это баг typename?

 
ребят подскажите в старой четверке до 506 версии на один индикатор сколько отводилось буферов.... сейчас я знаю 512
 
ruslan:
ребят подскажите в старой четверке до 506 версии на один индикатор сколько отводилось буферов.... сейчас я знаю 512

По памяти 64. Попробуйте объявить больше 100, если обновления были ранее, то ошибки не будет, если позднее выдаст ошибку.

 
Valeriy Yastremskiy:

По памяти 64. Попробуйте объявить больше 100, если обновления были ранее, то ошибки не будет, если позднее выдаст ошибку.

у вас часом 225 терминала инсталятора не завалялось ?
 
ruslan:
у вас часом 225 терминала инсталятора не завалялось ?

Нет скорее всего, с 18 года здесь. Обновление 4ки до 5ки по функционалу проходило с 14 по 16 год.

 
mktr8591:

Наверняка где-то уже задавали вопрос, но не нашел.

Имеется скрипт


Объясните, пожалуйста:

1. Почему 0-uchar1 (и uchar0-uchar1) дает  результат не такой, как (-uchar1)? Ведь при операциях с типами (u)char и (u)short операнды автоматически приводятся к int. И typename(-uchar1) возвращает  int.  (Тот же вопрос для  ushort1)

2. С uint ситуация другая. -uint1 возвращает ожидаемый результат, но typename(-uint1) возращает long. Это баг typename?

Спасибо за сообщение.

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

2. мы отошли от стандарта и для типа uint операция унарного минуса возвращает тип long, из-за ошибки в п.1 типом результата оставался тип uint (а не long)

 
Valeriy Yastremskiy:

По памяти 64. Попробуйте объявить больше 100, если обновления были ранее, то ошибки не будет, если позднее выдаст ошибку.

нашел там оказывается 8 буферов....вам спасибо
 

Сейчас по адресу MQL5.com сначала идет Маркет, затем Сигналы и только потом Форум. Раньше же обговаривали, что для авторизованных пользователей на главной сверху сначала идет Форум.


ЗЫ После этого поста Форум становится сверху. Стоит только удалить этот пост, как Форум снова становится третьим.

 
fxsaber:

Сейчас по адресу MQL5.com сначала идет Маркет, затем Сигналы и только потом Форум. Раньше же обговаривали, что для авторизованных пользователей на главной сверху сначала идет Форум.


ЗЫ После этого поста Форум становится сверху. Стоит только удалить этот пост, как Форум снова становится третьим.

Поддерживаю - "Форум" удобнее первым!

 

Не получается написать функцию, которая выдает true в советнике только тогда, когда фокус переключается на чарт советника.

Подскажите, кто сталкивался.


На хватает CHARTEVENT на потерю и приобретение фокуса.

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