Аномальная аномалия MT5

 

Всем привет.

Столкнулся с траблой, которая непонятная для меня.

При практически одном и том же коде - разные результаты.

Код №1:

         string workPair = pair[i];
         double bbUp = iBB(pair[i], _period,_bands_period,_deviation,_bands_shift, _applied_price, 1, 1);
         double bbLw = iBB(pair[i], _period,_bands_period,_deviation,_bands_shift, _applied_price, 2, 1);

Результат тот, который надо:

Сетка, короче. Позиции друг под другом дружно в ряд.

Код №2:

         string workPair = pair[i];
         double bbUp = iBB(workPair, _period,_bands_period,_deviation,_bands_shift, _applied_price, 1, 1);
         double bbLw = iBB(workPair, _period,_bands_period,_deviation,_bands_shift, _applied_price, 2, 1);

Результат:

 

Уже не дружно в ряд. Есть места с хаосом из позиций.

string workPair у меня больше нигде не переопределяется.

Массив определяется у меня как string:

string pair[250];

Потом привожу его размер в OnInit() с помощью ArrayResize как мне надо. Хотя это и не важно. 

Что ему надо, кто знает? 

 

Код целиком не влазит, пишет надо меньше 64000 символов.

Прилагаю код как файл. Просьба не ругать за беспорядок. Это набросок.

Файлы:
MultiExpert.mq5  45 kb
 
Evgeniy Zhdan:

Код целиком не влазит, пишет надо меньше 64000 символов.

Прилагаю код как файл. Просьба не ругать за беспорядок. Это набросок.

У тебя три цикла "declaration of 'i' hides local variable    MultiExpert.mq5    328    27"
 
SEM:
У тебя два цикла "declaration of 'i' hides local variable    MultiExpert.mq5    328    27"

Понял! Точно!

 

1.Нужно убрать все предупреждения (по сути это ошибки)

2. Нужно прекратить практику создания хендла индикатора на каждом тике.

 
Vladimir Karputov:

1.Нужно убрать все предупреждения (по сути это ошибки)

2. Нужно прекратить практику создания хендла индикатора на каждом тике.

Я до сих пор не понимаю, что этот хендл такое

 
Evgeniy Zhdan:

Я до сих пор не понимаю, что этот хендл такое

 int handle=iBands(symbol,timeframe,period,
                        bands_shift,deviation,ma_method);
 
SEM:
 int handle=iBands(symbol,timeframe,period,
                        bands_shift,deviation,ma_method);

Я не об этом

 
Evgeniy Zhdan:

Я до сих пор не понимаю, что этот хендл такое

Хендл индикатора создать нужно ОДИН РАЗ в OnInit.

Впоследствии для получения значений индикатора используется CopyBuffer.

 
Vladimir Karputov:

Хендл индикатора создать нужно ОДИН РАЗ в OnInit.

Впоследствии для получения значений индикатора используется CopyBuffer.

Благодарствую. Разберусь с этим

 
Женя, я же уже писал как сделать красиво
Причина обращения: