Ошибка метода Launch для терминала Quik
Atom Ответить
18.11.2010


Добрый день!
Помогите, пожалуйста, решить следующую проблему:

При вызове метода
Launch ()
для QuikTerminal terminal

должен осуществляться запуск терминала, при этом окончание выполнения метода наступает при появлении окна авторизации. Но, к сожалению, после появления окна метод так и продолжает висеть и слетает по таймауту...

Например:
terminal = QuikTerminal.Get(QuikPath);
terminal.Launch();//Тут все зависает

Скажите, пожалуйста, каким образом решается эта проблема?
Заранее благодарю!!!

Теги:


Спасибо:




7 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 18.11.2010
Ответить


Ошибку тайм-аута можете привести?
Спасибо:

Артем

Фотография
Дата: 19.11.2010
Ответить


Я недавно обновил библиотеку до 2.5.2, ранее стояла 2.5, - в новой версии логика запуска немного поменялась и при вызове метода Launch исключение Timeout больше не возникает. Но метод тем не менее отрабатывает неоправданно долго. - Окно с авторизацией появляется через 8 -10 секунд, а метод продолжает висеть. Вот пример:

//Выводим время старта в информационную панель
Globals.Сообщить("Запускаем Quik <" + DateTime.Now.ToString("dd.MM.yyyy H:mm:ss") + ">" , Globals.СтатусСообщения.Инфо);

terminal.Launch();

//Выводим время окончания работы метода в информационную панель
Globals.Сообщить("Quik запущен <" + DateTime.Now.ToString("dd.MM.yyyy H:mm:ss") + ">", Globals.СтатусСообщения.Инфо);


Получается следующая картина

Запускаем Quik <19.11.2010 9:18:31>

Quik запущен <19.11.2010 9:19:32>


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

Заранее спасибо за ответ!
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 19.11.2010
Ответить


Артем

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

Заранее спасибо за ответ!


Есть такое. Дело в том, что если сразу запустить процесс логина как только появляется окно, то Квик начинает падать. Из-за чего это я не узнавал. Поэтому просто влепил еще одно ожидание на минуту. Процесс авто запуска Квика - это единичные случаи, поэтому не особо должно влиять на работу. Но могу сделать время ожидание настраиваемым.
Спасибо:

Артем

Фотография
Дата: 19.11.2010
Ответить


Думаю, лучше сделать настраиваемым, т.к. минута - это нормально в рабочем режиме, но при отладке программы очень много. Спасибо!!!
Автор топика
Спасибо:

Garry

Фотография
Дата: 06.04.2011
Ответить


Михаил, добрый день!
Тоже проблемы с методом
this.Trader.Terminal.Launch();
выдается исключение
"Сбой метода WaitForInputIdle. Это может быть связано с отсутствием у процесса графического интерфейса."
При этом квик нормально запускается. Еще проблема, если робота перезапустить, а квик оставить запущеным таким образом(т.е. роботом) то this.Trader.Terminal.IsLaunched квик не видит. Если квик закрыть и запустить руками, то this.Trader.Terminal.IsLaunched нормально отрабатывает. Ну это не так важно, главное это что можно придумать с исключением? Вы писали, что сделаете настраиваемым время таймаута Terminal.Launch(). Просто похоже исключение происходит как раз из-за него, окно с логином просто не успевает появиться, можно ли где-нибудь время ожидания подкрутить?
Спасибо:

Alexander

Фотография
Дата: 06.04.2011
Ответить


Garry Перейти
Михаил, добрый день!
Тоже проблемы с методом
this.Trader.Terminal.Launch();
выдается исключение
"Сбой метода WaitForInputIdle. Это может быть связано с отсутствием у процесса графического интерфейса."
При этом квик нормально запускается. Еще проблема, если робота перезапустить, а квик оставить запущеным таким образом(т.е. роботом) то this.Trader.Terminal.IsLaunched квик не видит. Если квик закрыть и запустить руками, то this.Trader.Terminal.IsLaunched нормально отрабатывает. Ну это не так важно, главное это что можно придумать с исключением? Вы писали, что сделаете настраиваемым время таймаута Terminal.Launch(). Просто похоже исключение происходит как раз из-за него, окно с логином просто не успевает появиться, можно ли где-нибудь время ожидания подкрутить?


Какая версия S#?
Метод QuikTerminal.Launch перегружен и возможно запускать с параметром:
https://stocksharp.ru/doc/help/html/O_T_Ecng_Trading_Quik_QuikTerminal_Launch.htm
Спасибо:

Garry

Фотография
Дата: 06.04.2011
Ответить


Да уж извиняюсь, плохо смотрел документацию, спасибо!
Спасибо:


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

loading
clippy