Главная > QUIK, Полезные программы для QUIK > Автоматический запуск QUIK!

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

17 октября 2009

ConnectНаконец-то дошли руки — сделал отдельную настраиваемую утилиту, которая запускает QUIK, и самостоятельно вводит в него логин и пароль, тем самым мы имеем возможность настроить полный автоматический запуск торгового процесса!

Для начала давайте рассмотрим аспекты поддержания соединения с торговым сервером. В меню «настройки — основные» в QUIK есть функция «устанавливать соединение», включив которую, при запуске QUIK будет автоматически открывать диалог установления связи с сервером:

Устанавливать соединение

Устанавливать соединение

В меню «связь — доступные соединения» есть раздел «при разрыве связи», в котором есть две отключаемые и настраиваемые функции: восстановление соединения и опции повторного соединения. В первой функции мы указываем через какой промежуток времни, после разрыва, QUIK сам будет восстанавливать соединение, также можем указа в какой период времени нам нужно восстановление соединения. Активация второй функции позволит нам при повторном соединении не вводить опять пароль и логин:

Восстанавливать соединение

Восстанавливать соединение

Таким образом, один раз запустив QUIK, он будет самостоятельно поддерживать соединение, но в первый запуск, нам все равно надо вводить пароль и логи самостоятельно.

Как вводить логин и пароль автоматически?

К чему это все я веду — я стремлюсь к полной автоматизации процесса. Есть компьютер, в настройках BIOS которого, есть функция включения компьютера в установленное время. Стартует Windows, в автозагрузке стоит утилита автостарта QUIK, запускает QUIK, вводит логин и пароль, производится соединение с сервером, и тут же начинает работу торговый робот. Т.е. участия человека не нужно. Совсем не нужно! У меня сервер стоит в стойке у провайдера с подобными настройками, администрировать который я захожу через интернет, в т.ч. со смартфона. А у провайдера связь отличная, поэтому за нее можно не волноваться. В итоге я имею мощную систему, управлять которой я могу из любой точки мира, которая может работать абсолютно автономно! Представили себе? Это как раз и есть свобода.

Итак, подробнее об утилите: настройка минимальна — логин и пароль при первом запуске, при повторном запуске утилита больше ничего не спрашивает — просто запускает QUIK. Если вдруг по каким-то причинам QUIK кто-то выключит — она опять запустит его и опять введет логин и пароль. Зарегистрированные пользователи могут скачать утилиту.

Автостартер QUIK

Автостартер QUIK

Евгений QUIK, Полезные программы для QUIK

  1. Camill
    25 Октябрь 2009 в 22:31 | #1

    Кстати да, тоже руки не доходили такое сделать.

    Правда, меня не беспокоит автозапуск, просто надоело вводить логин-пароль каждый раз.

    С точки зрения безопасности кража логина/пароля бесполезна — пароль от квика не позволяет перевести деньги на свой счет, только спустить чужой депозит. Постороннему человеку это не нужно, а свои могут сделать то же самое гораздо более простыми методами.

    Хотелось бы видеть в этой софтинке возможность прятаться в трей (просто удобно), возможность закрываться после запуска квика (для тех, кому надоело вводить логин/пароль, но не нужен автоперезапуск) и хоть какое-то шифрование пароля в реестре (для параноиков, которые не читали предыдущий абзац).

    Евгений Reply:

    Вот исходник на языке AutoIT (код может показаться корявым профессионалу в этом языке — это моя первая программа на нем, сделал за час...):

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****

    #AutoIt3Wrapper_icon=...\...\VistaOSX09\icons\RKLauncher.ico

    #AutoIt3Wrapper_outfile=autostarter.exe

    #AutoIt3Wrapper_Compression=4

    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

    #include «C:\Program Files\AutoIt3\Include\GUIConstants.au3»

    GUICreate («Автостартер www.hirobot.ru», 290, 150)

    GUISetState ()

    $var = RegEnumVal («HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog», 1)

    if @error <>0 Then

    MsgBox (4096, «Ошибка»,"Не найдены данные логина и пароля!")

    GUICreate («Регистрационные данные», 290, 150)

    $Log=GUICtrlCreateInput («Здесь введите логин», 45, 20)

    $Pass=GUICtrlCreateInput («Здесь введите пароль», 45, 60)

    $CTRL_btnOK = GUICtrlCreateButton («QUIK»,55, 100, 80, 29)

    $CTRL_btnNO = GUICtrlCreateButton («Выход»,155, 100, 80, 29)

    GUISetState ()

    Do

    $msg = GUIGetMsg ()

    if $msg = $CTRL_btnNO then

    GUIDelete ()

    Exit

    endif

    if $msg = $CTRL_btnOK then

    RegWrite («HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog», «Key1», «REG_SZ», GUICtrlRead ($Log))

    RegWrite («HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog», «Key2», «REG_SZ», GUICtrlRead ($Pass))

    GUIDelete ()

    ExitLoop

    endif

    Until $msg = $GUI_EVENT_CLOSE

    endif

    $STOP_Button = GUICtrlCreateButton («Изменить логин и пароль»,55, 100, 180, 29)

    $msg=0

    GUICtrlCreatelabel («Состояние QUIK -», 45, 20)

    $StringNotActive="«

    $titlewindowfind2=0

    $StringActive=»"

    Do

    $titlewindowfind=0

    if ProcessExists («info.exe») Then

    $titlewindowfind=1

    endif

    if $titlewindowfind=0 AND $titlewindowfind2<>2 Then

    $StringNotActive=GUICtrlCreatelabel («Отключен», 137, 20)

    $titlewindowfind2=2

    run («info.exe»)

    WinWaitActive («Идентификация пользователя»)

    $Log=RegRead («HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog»,"Key1")

    Send ($Log)

    Send («{TAB}»)

    $Pass=RegRead («HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog»,"Key2")

    Send ($Pass)

    Send («{ENTER}»)

    EndIf

    if $titlewindowfind=1 AND $titlewindowfind2<>3 Then

    $StringActive=GUICtrlCreatelabel («Активен», 137, 20)

    $titlewindowfind2=3

    EndIf

    GUISetState ()

    If $msg =$STOP_Button then

    GUICreate («Регистрационные данные», 290, 150)

    $Log=GUICtrlCreateInput («Здесь введите логин», 45, 20)

    $Pass=GUICtrlCreateInput («Здесь введите пароль», 45, 60)

    $CTRL_btnOK = GUICtrlCreateButton («Сохранить»,55, 100, 80, 29)

    $CTRL_btnNO = GUICtrlCreateButton («Отмена»,155, 100, 80, 29)

    GUISetState ()

    Do

    $msg = GUIGetMsg ()

    if $msg = $CTRL_btnNO then

    GUIDelete ()

    ExitLoop

    $titlewindowfind=0

    ;$titlewindowfind2=0

    endif

    if $msg = $CTRL_btnOK then

    RegWrite («HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog», «Key1», «REG_SZ», GUICtrlRead ($Log))

    RegWrite («HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog», «Key2», «REG_SZ», GUICtrlRead ($Pass))

    $PID = ProcessExists («info.exe»)

    If $PID Then ProcessClose ($PID)

    run («info.exe»)

    WinWaitActive («Идентификация пользователя»)

    $Log=RegRead («HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog»,"Key1")

    Send ($Log)

    Send («{TAB}»)

    $Pass=RegRead («HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SysLog»,"Key2")

    Send ($Pass)

    Send («{ENTER}»)

    GUIDelete ()

    ExitLoop

    $titlewindowfind=0

    ;$titlewindowfind2=0

    endif

    Until $msg = $GUI_EVENT_CLOSE

    endif

    $msg = GUIGetMsg ()

    Until $msg = $GUI_EVENT_CLOSE

  2. Craz
    1 Ноябрь 2009 в 00:50 | #2

    Здравствуйте, Евгений. Какие вы ещё языки программирования знаете? (Это для того чтобы знать к чему надо стремится =)

    Евгений Reply:

    Привет.

    ФоксПро, Купайл.

    Авто ИТ на начальном уровне.

  3. vvkg
    29 Ноябрь 2009 в 23:50 | #3

    Добрый вечер!

    Подскажите пжалста по такой ситуёвине: у меня у 3-х брокеров тоже стоит QUIK, можно ли для каждого из них настроить автозапуск?

    Евгений Reply:

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

  4. pilott55
    15 Декабрь 2009 в 14:00 | #4

    Добрый день!

    Подскажите пожалуйста!!!

    У меня, после включения компьютера и запуска автостартера, загружается Quik, и просит ключи с диска А:, хотя ключи находятся на диске С:, в файле Qrypto, все связанное с диском А:, давно стерто.В течении дня, такой проблеммы не возникает.Все работает.

    Евгений Reply:

    А это единственный квик которые есть у вас на компе? файл автостартера лежит в его директории? В самом квике меню Настройки-шифрование указаны правильные пути ключей?

    Вобщем попробуйте заново настроить шифрование.

  5. pilott55
    16 Декабрь 2009 в 11:25 | #5

    @pilott55

    Квик единственный,файл автостартера лежит в его директории.Если зайти в папку Квик и нажать автостартер, то все запускается без проблем, а вот если ставить через автозапуск(Стандартный) или Auto Power-on, то появляется проблема описанная выше.((((

    Евгений Reply:

    Проблема в том, что автостартер не открывает папку с квиком. Поэтому запускать автоматически надо через планировщик задач в винде. Там же можно настроить точное время запуска.

    pilott55 Reply:

    Ок. Спасибо большое.

  6. 18 Декабрь 2009 в 05:30 | #6

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

    Евгений Reply:

    Вообще автостартеру все равно на каком языке логин и пароль.

    Что конкретно не работает? Пароль не принимает квик?

    yoni Reply:

    да, тупо пишет неверный пароль и все тут...

    Евгений Reply:

    Квик это пишет? А пароль в форме ввода регистрационных данный в квике при автостарте появляется?

    Может при вводе пароля в автостартер ошибку допустили? Попробуйте в автостартере нажать кнопку «изменить данные» и ввести пароль заново.

Необходимо войти на сайт, чтобы написать комментарий.