MetaTrader 4 Client Terminal build 646: Умный поиск, книги в Маркете и обновление окна параметров MQL4-программы - страница 4

 

Добрый день! Какая то странная ситуация. Код ниже какое то время работал нормально, примерно 2-3 дня. Потом стал зависать на этом месте.

long chartHandle=ChartFirst();// получаем хэндл первого окна...

while(chartHandle!=-1)// пока не найден хэндл -1, т.е. все окна закончились...

{

chartHandle=ChartNext(chartHandle);// получаем хэндл следующего окна...

Print("Хэндл окна - ", chartHandle);

}

После навешивания советника все работает. Через несколько часов, 6/10/12 часов, зависимости не увидел, мы видим следующую картину:

...

07:11:17 My EURUSD,H1: Хэндл окна - 130410704956809403

07:11:17 My EURUSD,H1: Хэндл окна - 130410704956879407

07:11:17 My EURUSD,H1: Хэндл окна - 130374587125212242

07:28:32 My EURUSD,H1: Хэндл окна - 130374587125212247

07:28:32 My EURUSD,H1: Хэндл окна - 130374587125212248

07:28:32 My EURUSD,H1: Хэндл окна - 130374587125212249

...

Т.е. промежуток времени между поиском 3-го и 4-го окна составляет примерно 17 минут. Терминал в это время нормально работает, объекты выделяются, а вот советник естественно висит и ничего не обрабатывает. Причем эти промежутки в 17 минут дальше сохраняются, т.е. на этом месте советник виснет на 17 минут. Что это?

 
...

Т.е. промежуток времени между поиском 3-го и 4-го окна составляет примерно 17 минут. Терминал в это время нормально работает, объекты выделяются, а вот советник естественно висит и ничего не обрабатывает. Причем эти промежутки в 17 минут дальше сохраняются, т.е. на этом месте советник виснет на 17 минут. Что это?


Может тики не приходят?
 

Sorry to post in English, but I think it's more understandable.

A question for Renat or someone of Metaquotes, from English forum :

I use Alpari UK MT4,but it does not update automatically. Every time I have to download the latest MT4 from Alpari UK website,it is not convienent.

Can you confirm that the update is controlled by the broker and not by Metaquotes, and so this user has to talk to his broker ?

 
В логах в терминале теперь отображается время с точностью до тысячных долей секунды. Однако в логах, сохраняемых в файлы, по-прежнему время указывается до секунд. Нельзя ли в файлы тоже сохранять время с той же точностью?
 
Barbarian:
Потому что дебагер уже прошел OnInit и вышел из нее, а т.к. переменная локальная, то она уже вне зоны видимости. Что бы увидеть как работает дебагер по шагам, поставьте точку останова к примеру на строке string s="";
и по F10 пройдитесь по шагам.


вы меня совсем-то за идиота не держите !

вот так не работает

вот так не работает

а вот другой индикатор и тут все работает

вот и объясните мне почему простейший код не дебажится (код приведен ранее) ?

 
keekkenen:


вы меня совсем-то за идиота не держите !


А надо было сразу писать, где точку останова ставите! :)

Однако, поведение действительно непонятное. В предыдущих билдах такого, вроде бы, не было.


 
RickD:

Может тики не приходят?

Причем здесь тики... Цикл выполняется в рамках одного вызова...
 
keekkenen:


вы меня совсем-то за идиота не держите !

вот так не работает


а вот другой индикатор и тут все работает

вот и объясните мне почему простейший код не дебажится (код приведен ранее) ?

Зачем же так вызывающе отвечать?

Чему равно "" ? Как сами думаете?

 
Sergey_Mechanic:


А надо было сразу писать, где точку останова ставите! :)

Однако, поведение действительно непонятное. В предыдущих билдах такого, вроде бы, не было.


А вот этот пример показывает действительно не правильно работающий дебагер :)
 
Barbarian:

Чему равно "" ? Как сами думаете?


Нет, у него точка останова стоит после переприсвоения, в этом месте строка уже равна "s". Это действительно баг.