в Алготрейдинг

Автоматический запуск Quik

Автор: Александр Кургузкин (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: Настройки-Основные-Сообщения снять галку Показывать окно сообщений