Тестирование функции IsConnected() - страница 4

 
ForexTools:

Отлаживая индикаторы, я "обкладываю" их отладочной печатью: в самом начале start - Print("Начало работы"); потом по телу кода в местах разветвлений нечто вроде Print("Вариант когда dt>0"); и в самом конце Print("Выход"); При запуске терминала (особенно с большим количеством индикаторов) я неоднократно наблюдал как сообщение "Начало работы" идет несколько раз один за другим, а внутренние и самое последнее про выход начинают появляться только с третьей попытки.

Очевидно причина в том, что индикатор начинает отрабатывать в момент подкачки истории и каждый новый бар вызывает остановку функции start и ее вызов для новой котировки. И так продолжается пока не втянется вся история. Прав ли я в своих выводах?

Я думаю, тут дело в экономном выводе принтов. В сам файл журнала смотрели?

 
komposter:

Я думаю, тут дело в экономном выводе принтов. В сам файл журнала смотрели?

А при чем здесь экономия? есть примерно такой код индюка:

void start()
{
    Print("Начало работы");
    ...
    if(dt>0)
    {
        Print("Вариант когда dt>0");
        ...
    }
    else 
    {
        Print("Вариант когда dt<0");
        ...
    }
    ...
    Print("Выход");
}

Я ожидаю увидеть в журнале:

Выход

Вариант когда dt>0

Начало работы

... initialized

а вместо там вот это:

Выход

Вариант когда dt>0

Начало работы

Начало работы

Начало работы

... initialized

откуда взялись два лишних отрывающих "Начало работы" без закрывающих их "Выход"?
 
ForexTools:

Я ожидаю увидеть в журнале:

а вместо там вот это:

Начало работы

Начало работы

И при одном запущенном индикаторе?

 
komposter:

И при одном запущенном индикаторе?

Ну конечно! А даже если при двух или трех - закрывающих их "Выход" все равно нет.

Я сегодня попробую "откатить назад код" и восстановить ситуацию. Если получится - выложу файлы (индикаторы + профиль) и сам журнал.

 
up...
 

Закомментировал IsConnected() во всех своих экспертах. Блокирует она временами торговлю напрочь: тики проходят,

цена движется, а функция говорит "FALSE" :(

Терминал перезагружать устал уже.

 
up...
 

еще разок о замеченном мною баге...

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

котировки идут, связь есть, IsConnected() == false, через неск. минут снова смотрю...

котировки идут, связь есть, IsConnected() == false, через неск. минут снова смотрю...

котировки идут, связь есть, IsConnected() == false, через неск. минут снова смотрю...

тоже самое, связь есть, IsConnected() == false, перезагружаю терминал, снова запускаю скрипт, связь есть, IsConnected() == true... работаю дальше...

 
up...
 
Не подскажете, в текущей версии MT функция IsConnected() по прежнему некорректно работает или она уже исправлена.