Скачать MetaTrader 5

Операция ++ прибавляет 2-ку

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
akc
125
akc  

Столкнулся с таким моментом: Операция ++ прибавляет 2-ку.

Убил какое-то время, ища повторное случайное прибавление 1-цы (код более 500 строк). Потом заменил А++ на А=А+1, и ошибка ушла.

В моем случае А - глобальная переменная эксперта.

Хотелось бы понять причину этого явления. 

Sceptic Philozoff
Модератор
17844
Sceptic Philozoff  

Скорее всего, Вы делаете что-то типа a++ + b или прочее шаманство.

В языке ничего окромя a++ делать нельзя, иначе проблемы.

akc
125
akc  
Mathemat:

Скорее всего, Вы делаете что-то типа a++ + b или прочее шаманство.

В языке ничего окромя a++ делать нельзя, иначе проблемы.


А++;

т.е. никаких больше действий в одной строке.

И вылазит в тесте стратегии (может, тут какие глюки у МТ4?). В реале еще не пробовал. 

Роман Граалевич Какин
202
Роман Граалевич Какин  
AKC:

Хотелось бы понять причину этого явления. 

Баг.
akc
125
akc  

Баг - понятно ;)

Надо хотя-бы понять, где. Только с глобальными переменными? Только в тесте? Может, еще кто сталкивался?

А вообще разработчики еще поддерживают МТ4? Если да, то как до них донести инфу по багу?

DmitriyN
2316
DmitriyN  
AKC:

Столкнулся с таким моментом: Операция ++ прибавляет 2-ку.

Покажите пример кода.
Rorschach
717
Rorschach  
Mathemat:

Скорее всего, Вы делаете что-то типа a++ + b или прочее шаманство.

В языке ничего окромя a++ делать нельзя, иначе проблемы.


а*=б+с

Так проблемы бывают? 

akc
125
akc  
DmitriyN:
Покажите пример кода.


Весь, что-ли? ;)

вот фрагмент

   if (C>0)
   {
      Print(s);
      WriteLnToFile(handleMT, fileMT, s);
      countMT++;
//      countMT=countMT+1;
      countOrders=GetCountOrders();
      return(1);
   }
   else
   {
      Print("Не получилось выполнить "+s); 
   }

 правда, я его восстановил. И закомментил измененную строку.

Прикольно, что сейчас ошибка ушла. А вчера была.

Сегодня перезапускал МТ и  редактор кода.

akc
125
akc  

Ну будем считать, что это мой локальный глюк, а не баг МТ.

Если повторится - буду внимательно все документировать. 

Dmitry Fedoseev
44531
Dmitry Fedoseev  
Наверно переменная объявлена без инициализации значением.
Лёха
1264
Лёха  
Integer:
Наверно переменная объявлена без инициализации значением.
Так в MT они вроде всегда инициализируются нулём?
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий