Автоматизация запуска QUIK с помощью AutoIt

2 июня, 2010

Автор : Николай Камынин

     Объясняю, как овладеть AutoIt, который распространяется бесплатно.  
 Более того,  писать для него скрипты очень просто, если Вы знакомы с компьютером в объеме школьных уроков информатики.
Итак идем на сайт производителя: http://www.autoitscript.com/autoit3/downloads.shtml
Забираем AutoIt v3.3.6.1 заодно рекомендую скачать текстовый редактор  AutoIt Editor (SciTE).
    Далее устанавливаете AutoIt и редактор на свой компьютер.
         В редактор копируйте приведенный ниже текст.
     Его можно скопировать и в любой другой текстовый редактор.
Сохраняете текст в файл с раширением “au3”.
        После этого, в редакторе SciTE в меню TOOLS выполняете BUILD.
         Если Вы работаете в другом редакторе, то после сохранения файла заходите в каталог, где он лежит наводите мышку и жмете на правую кнопку.
                Появляется меню               Выбираете Compile Script.
        Получаете исполняемый файл с расширением exe.

Если Вы при установке AutoIt не указали привязку его к расширению au3, то компиляцию Вашей программы надо сделать вызвав Aut2Exe Делается это так:

Заходим : Пуск->Программы->AutoIt v3->Compile Script to .exe

Появляется окно:

В поле с именем “Source” с помощью кнопки “Browse” выбираем исходную программу с расширением .au3

Жмем кнопку “Convert” . Там же, где исходный файл получаем исполняемый с тем же именем но расширением .exe.

        Этот файл Вы помещаете в автозапуск, если надо, чтобы  QUIK запускался в определенное время.
         Либо помещаете файл на стол и в период с 9:50 до 23:00 в рабочие дни, когда надо, щелкаете по файлу и QUIK запускается.
        Теперь о самом скрипте.
         Текст его приведен ниже. 
    Как он работает ясно из комментария.
       Продвинутые пользователи могут запускать скрипт командной строкой.
         Для менее продвинутых поясняю.
В редакторе текста перед трансляцией запишите свой ЛОГИН и ПАРОЛЬ в следующие строки программы:
$Name=»  123456 » ;логин
$Pas=» AAAAAAA » ;пароль

//~~~~~~ТЕКСТ СКРИПТА~~~~~~~~~~~~~~~~~~~~~

; AutoIt Version: 3.0
; Language: Русский
; Platform: Win9x/NT
; Author: Николай Камынин(kamnik@mail.ru)
; в качестве параматров можно задать
; формат запуска программы: RQ [«HH:MM:SS» [«логин» [«пароль» [«путь к файлу QUIK»]]]]
#include <Date.au3>
$Progr=»info.exe» ;имя файла с расширением QUIK
$DirW=»C:\Info\» ;путь к файлу QUIK
$wind=»Идентификация пользователя» ;название окна
$Name=»123456″ ;логин
$Pas=»AAAAAAA» ;пароль
$TimeStart=»9:50:00″ ;время запуска QUIK
$TimeStop=»23:00:00″ ;время окончания сессии
if $CmdLine[0] >0 then
$TimeStart=$CmdLine[1] ;время запуска QUIK
EndIf
if $CmdLine[0] >1 then
$Name=$CmdLine[2] ;логин
EndIf
if $CmdLine[0] >2 then
$Pas=$CmdLine[3] ;пароль
EndIf

if $CmdLine[0] >3 then
$DirW=$CmdLine[4] ;путь к файлу QUIK
EndIf
;~~~~~~~~~~~~~~~~~
$NowDate=_NowCalcDate() ;текущая дата
$DateToWeek=_DateToDayOfWeek ( StringMid( $NowDate,1,4), StringMid( $NowDate,6,2), StringMid( $NowDate,9,2))
$DiffToSecStop=_DateDiff(«s», _NowCalc(), $NowDate & » » & $TimeStop)
IF ( $DateToWeek>1 and 7>$DateToWeek and $DiffToSecStop>0 ) Then
$DiffToSecStrat=_DateDiff(«s», _NowCalc(), $NowDate & » » & $TimeStart)
Sleep($DiffToSecStrat*1000)
if ProcessExists ( $Progr)==0 then
Run($DirW & $Progr,$DirW)
WinWaitActive($wind)
if StringLen($Name)>0 then
Send($Name )
Send(«{TAB}»)
EndIf
if StringLen($Pas)>0 then
Send($Pas )
Send(«{ENTER}»)
EndIf
; Send( «{Shift}+{Ctrl}+L»); Начать вывод через DDE из всех таблиц, имеющих настройки экспорта

EndIf
EndIf

Дружная пара Amibroker и QUIK

31 мая, 2010

Автор: Николай Камынин

       Одной из проблем построения внешних торговых систем к торговому терминалу QUIK является сложность подключения и настройки таблиц экспорта данных и обеспечения переподключения экспорта при восстановлении соединения.  При  этом тиражирование таких систем сопряжено со сравнительно сложной процедурой настройки QUIK и необходимостью для пользователя знать  технические особенности настройки экспорта по DDE или ODBC. В последнем случае требуется дополнительно устанавливать программу управления бузами данных (СУБД) .

       В данной системе эта проблема отсутствует.  При создании плагина для двухстороннего обмена  была поставлена и решена задача автоматической настройки параметров DDE экспорта для требуемых при работе экспортируемых таблиц.

         Таким образом, Амиброкер сам настраивает экспорт и запускает требуемые таблицы.  Кроме того, он контролирует наличие связи с QUIK и при обрыве или перезагрузки QUIK восстанавливает ее.

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

           Доступна передача любых, реализованных в торговом терминале QUIK заявок, а также создание произвольных алгоритмов торговли с помощью скриптового языка Amibroker или на других языках программирования, например C++, путем подключения внешних DLL библиотек или через механизм COM и OLE.  Никаких доболнительных СУБД не требуется.

       Данная технология по специальному заказу может быть перенесена на другие системы технического анализа.