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

     Объясняю, как овладеть 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

Tags: , , ,

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

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

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

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

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

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

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

Tags: , , , , ,

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

            Закончена разработка плагина для двухстороннего обмена информацией Amibroker и QUIK.

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

           Таким образом, обеспечивается возможность реализации практически любых алгоритмов торговых роботов для работы на ММВБ(MICEX),РТС(RTS)  и ФОРТС(FORTS) в связке с торговым терминалом QUIK.

            Для обеспечения высокой скорости принятия торговых решений  все вычислительные процедуры могут быть реализованы на С и  C++ и подключены в виде DLL, что собственно и реализовано. 

В настоящее время система проходит тестирование.

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

 По сравнению с аналогами,  данная реализация обеспечит повышение быстродействия на 1-3 порядка.

             По сравнению с   C#  обеспечивается не менее, чем 2-x кратный выигрыш в быстродействии,  а относительно скриптовых не векторных языков  выигрыш в быстродействии составит примерно до 3-х порядков.

           Например, благодаря библиотеки на С++  становится возможным проводить исследования систем на исторических данных на интервалах 1 минута и менее, за 5-10 лет, а также разрабатывать портфельные системы торговли.

              Обеспечивается возможность создания и тестирования  систем на тиковых данных, что не возможно сделать на известных в настоящее время системах технического анализа.

              Кроме того,  в стадии тестирования находится  двухсторонний интерфейс (Plug-in) сервера TRANSAQ и Amibroker.   Данный Plug-in позволит   разрабатывать торговых роботов используя лишь Amibroker без торгового терминала.

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

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

              Кроме того, на основе опыта разработки систем на базе  Omega Research ProSuite с использованием библиотек MATLAB  (см торговую систему для акций РАО ЕЭС ),  благодаря наличию COM, OLE и DLL в Amibroker, весь математический аппарат MATLAB может быть использован в создании сложных торговых систем .

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

               Принимаются заявки на разработку   систем торговли на базе данного программного комплекса применительно к системам   QUIK и TRANSAQ .

              В заключение данного сообщения,  хочу отметить, что к достоинствам Amibroker следует отнести наличие векторного скриптового языка,  мощной системы тестирования, сканирования, эмуляции режима торговли ,  современного графического интерфейса с возможностью разнесения окон на два монитора,  в произвольное место экрана, большую библиотеку индикаторов, возможность подключения COM и OLE , DLL.

~~~~~~~~~~~~~~~~~~~~~~~~~ 

  Сейчас плагин в стадии тестирования при работе на бирже.  
    Оценивается производительность и стабильность работы.
    Решаются вопросы упрощения интерфейса пользователя:    Создание переменных среды Amibroker для торговли; типа    ACCOUNT, CLIENT_COD,параметры заявок и сделок  и т.д
   Разрабатывается механизм ведения протоколов торговли.
   Реализуется автоматический запуск QUIK при начале работы и разрыве
   соединений.
   Решается задача обработки транзакций при работе нескольких роботов по различным
   бумагам.   
Разрабатывается документация
   Проводятся маркетинговые исследования
        Планируется повременная оплата лицензионного соглашения.
Приветсвуются и с благодарноcтью принимаются любые пожелания и предложения.

Tags: , , , , , , , , , ,