Автор: Александр Кургузкин (mehanizator).
Чтобы запускать терминал Quik в автоматическом режиме, нужно как-то вводить логин/пароль. Особенно эта задача актуальна, когда квиков нужно запустить много. Для старта всего этого хозяйства приходится пользоваться сторонним средством — AutoHotKey. Делюсь скриптом запуска, который использую сам. Пришлось подбирать последовательность действий и таймауты, которые позволяют обойти «подтормаживания» и разные другие особенности на разных этапах. В текущем виде все запускается без сбоев.
Скрипт для AutoHotKey
SendMode Input
SetTitleMatchMode 2
Sleep 5000
SetWorkingDir C:quik
Run info.exe
Sleep 20000
WinActivate Идентификация
Send login{Tab}password
Sleep 1000
Send {Enter}
Sleep 20000
WinActivate 99999
Send !{Tab}
Sleep 2000
Send !{Tab}
Sleep 5000
Send ^+O
Sleep 5000
Следует заменить: C:/quik — на свою директорию квика, login — на свой логин, password — на свой пароль, 99999 — на UID своего квика (его видно в названии квиковского окна после логина)
Если вам не нужно запускать экспорт в ODBC (Ctrl-Shift-O), а нужно запускать что-нибудь другое — соответственно меняете «Send ^+O» на то, что вам нужно.
Если ваш робот посылает транзакции в Квик через файл, нужно включить опцию «Торговля/Импорт транзакций из файла/Начинать импорт транзакций автоматически».
Ну и для того, чтобы терминал автоматически восстанавливал соединение с сервером, нужно включить следующие опции: «Связь/Доступные соединения/Восстанавливать связь автоматически…» и рядом «При восстановлении использовать только параметры последнего соединения».
К сожалению, мне не удалось полностью автоматизировать запуск Квика на Amazon EC2 инстансе. Все, что запускается на инстансе без открытого RDP сеанса идет в фоновом режиме, окна не отображаются соответственно команды Send скрипта уходят в никуда. То есть, приходится открывать RDP сеанс и запускать там скрипт (сворачивать RDP окно до окончания работы скрипта тоже нельзя). Если кто знает, как обойти эту проблему — просьба поделиться способом.
Автор: mehanizator
Комментарии:
Intro: Он же сам логинится, когда брокер сервера открывает.
Kamtrader: в случае если компьютер включен но сервера брокера еще выключены то как вариант можно:
в доступных соединения/восстанавливать свяь ставишь время включения серверов ( у меня 9:35 стоит)
вводишь ручками логин/пароль/ентер
соединение установить не удается
но в 9:35 квик сам подсоединится
Kamtrader: интра на пару сек опередил)))
Intro: Угу, я помню, что уже 8 лет назад проблем с автологином не было. Вряд ли они сильно меняли такой базовый функционал
green09: Раньше использовал VBScript и планировщик windows для запуска quik и роботов. Когда перешел на удаленный сервер, то эта связка перестала работать.
Сейчас переписал роботов, что-бы они постоянно висели включенными, а quik стоит на автологине.
Единственная проблема — выходные, брокер отключает сервер и за день успевает набежать >999 сообщений об ошибке подключения.
mehanizator: он логинится только если он был ранее запущен и залогинен.
mehanizator: green09 а чем ошибки подключения мешают, я просто отключил это окошко, сколько там сообщений 999 или больше — меня не тревожит 🙂
green09: у меня данные из quik передаются по dde и бывает, что какая-то из таблиц решит отвалиться, поэтому в окошко периодически смотрю, не вылетела ли ошибка потери dde-соединения.
Kamtrader: а как окошко отключить?
Dyper Head: Спасибо огромное, Александр, очень полезная штучка. работает как часы.
mehanizator: Kamtrader: Настройки-Основные-Сообщения снять галку Показывать окно сообщений