Торговый робот. С чего начать,на чем создать?

24 октября, 2010

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

Часто на форумах,  в чатах,  в письмах читателей сайта , мне задают вопрос:

»  На чем реализовать торгового робота и что для этого нужно, чтобы самому этим заниматься.»

Я не буду оригинальным, если скажу, что нужны знания.

Но если Вам все же не терпится что- нибудь написать, то вот мои рекомендации:

Практически большинство торговых роботов для личного пользования можно написать на следующем:

1) Если Вы торгуете на  торговом терминале  QUIK, то это встроенный язык QPILE.
2) Если Вы торгуете на торговом терминале TRANSAQ , то это встроенный язык  ATF.
3) Если у Вас мощный компьютер, то  для сервера TRANSAQ можно торговать и реализовать торгового робота на платной системе TSLab.

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

Эти решения сводятся к организации связи  QUIK с внешней программой  через DDE ( ODBC) , TRANS2QUIK.dll  и экспорт в системы технического анализа и и написанию торгового робота на одном из языков программирования  Cи,С++,C#.VB  и т д.  При этом, выбор языка программирования зависит лишь от Вашего желания, умения и пристрастия.

Недостатком таких систем считаю сложность настройки процедуры экспорта таблиц из QUIK.

Для этой цели я использую AutoIt.

Я, например, предпочитаю разрабатывать программы на Cи и C++ и реализовал подобную систему для Амиброкера.

С чего начать создание робота:
Во-первых,  надо подробно разработать  алгоритм торгового робота.

Я не буду рассказывать технологию создания алгоритмов.

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

Хочу лишь заметить, что правильно написанный алгоритм не зависит от языка программирования.

Следствием этого является тот факт, что разработанный однажды алгоритм,

может в дальнейшем реализовываться на любых платформах и языках.

Алгоритм торгового робота,  подобен сценарию фильма  или сюжету в литературе.

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

Во-вторых, желательно выполнить тестирование алгоритма на исторических данных.

Это можно сделать в любой программе технического анализа.

В-третьих,  обязательным условием создания робота является внимательное изучение документации на  выбранный язык (QPILE, ATF, TSLAB) и освоение его возможностей на примерах из документации.

В-четвертых,  необходимо разработать  тестовые примеры и схему тестирования программы.

Успехов в творчестве

Управление графикой в программах на QPILE для QUIK

17 октября, 2010

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

В настоящее время все большую популярность находят автоматы для торговли на бирже.

Широко известный торговый терминал QUIK обладает большими возможностями для ручной торговли, но имеет существенные ограничения для разработки торговых роботов.

Встроенный язык QPILE не имеет средств для связи с пользователем, не позволяет подключать внешние DLL библиотеки.

Однако, используя совместно с QPILE бесплатное программное обеспечение AutoIt, можно существенно расширить возможности автоматической торговли на базе торгового терминала  QUIK.

Конечно, можно передать информацию из таблиц QUIK во внешнюю программу технического анализа через DDE или ODBC,  и на основе программы технического анализа разрабатывать торговых роботов.

Но не стоит сбрасывать со счетов возможность создания робота на основе QPILE.

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

Исполнение программы на QPILE осуществляется в режиме интерпретации, что снижает быстродействие по сравнению с DLL библиотеками.

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

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

Так, при отсутствии торговли , на считывание параметров 2500 свечей  и создания 7 коллекций параметров свечей и расчет дневных параметров  ушло 15 секунд.

Чтение информации из коллекций выполняется примерно в 5 раз быстрее.

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

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

Коллекция позволяет сохранить 8192 свечи по 7 значений объем примерно 300 Кбайт.

Кроме того, удалось реализовать алгоритм автоматического контроля интервала графика.

Программа сама определяет момент изменения временного интервала на графике и осуществляет обновление истории в коллекциях.

Далее, удалось решить проблему управления интервалом графиков из программы на QPILE.

Для этого реализован интерфейс связи программы на QPILE с AutoIt.

Если, для работы робота требуются графики цены или индикаторов с различными временными интервалами, то программа на QPILE посылает запрос в AutoIt и тот устанавливает требуемый временной интервал на графике.

Таким образом, совместное использование QPILE и AutoIt позволяет на только автоматизировать запуск торгового терминала ( http://www.kamynin.ru/archives/1355 ) , но и обеспечивает управление графической информацией в программах автоматической торговли на базе QPILE в QUIK.

Кроме того, расчеты и тестовые испытания показывают, что на QPILE можно построить торговую систему для одновременной торговли не более , чем по 20 инструментам.

Но думаю, что эти возможности удовлетворят многих  биржевых игроков.

Успехов.