Методика создания торговых систем

Автоматизированная торговля с помощью, так называемых торговых роботов, в России набирает все большие и большие обороты и не замечать этого – значит, вообще не иметь никакого отношения к биржевой торговле. Все чаще начинают появляться всевозможные компании и интернет сайты, предлагающие как уже готовых торговых роботов, так и услуги по разработке торговых роботов и всевозможные семинары по построению собственных торговых систем. И даже «воротилы» российского фондового рынка не упускают в своем развитии этого направления.

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

Идеальным программным обеспечением для создания биржевого робота могла бы стать программа, позволяющая:

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

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

Однако сейчас торговый робот чаще всего представляет комплекс разнородного программного обеспечения, состыкованного между собой. В общем случае поток биржевых данных поступает через шлюз биржи и сервер брокера в клиентскую часть системы интернет-трейдинга, которая экспортирует его в программу технического анализа (ТА). Самыми распространенными программами ТА являются: Omega TradeStation, MetaStock, Wealth-Lab, AmiBroker. Первые две программы появились в России около 13 лет назад. Осуществлять в них экспорт биржевых данных умеют все системы интернет-трейдинга. Что касается Wealth-Lab, то экспортировать в него биржевые данные в real time умеет только торговый терминал QUIK. AmiBroker наименее распространен, но имеет своих поклонников именно из-за «лучшей системы создания и тестирования стратегий». Добиться того, чтобы он в реальном времени получал биржевые данные, не просто. Один вариант – настроить его на получение данных, которые поступают в MetaStock, но задержка во времени будет составлять около 1 минуты. Другой вариант – закачивать в него данные через Excel, задержка времени поступления данных будет минимальна.

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

Результаты бэк-тестинга отображаются в программе в виде кривой доходности торговой системы за промежуток времени. Фактически программы ТА являются достаточно сложным программным обеспечением для проведения графического анализа графиков цен (выявления «фигур», построения линий трендов и пр.), создания собственных математических индикаторов и применения встроенных, программирования торговых стратегий и их бэк-тестинга. Поэтому разработчики систем интернет-трейдинга обеспечили стыковку своих продуктов с давно существующими пакетами ТА, что позволило создавать торговые роботы.

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

Некоторые из систем интернет-трейдинга имеют функции программирования стратегий с возможностью создания торгового робота. Однако для не слишком подготовленного пользователя использование встроенных языков является нетривиальной задачей. Одним из примеров таких систем является торговый терминал QUIK с встроенным языком QPILE. Для создания торгового робота сначала создается торговая стратегия, далее она тестируется в распространенных системах технического анализа, а затем в окончательном виде после оптимизации программируется в клиентской части QUIK. Несмотря на сложность, этот вариант имеет свой «плюс» – роботом, в конечном счете, является одна программа.

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

Методы стыковки

Первой реализацией стыковки программ ТА и систем интернет-трейдинга (клиентских частей) стала возможность последних импортировать текстовый файл, подготовленный в специальном формате, содержащий необходимые сведения для осуществления транзакции: номер счета, направление сделки, тикер бумаги, количество лотов и т.д. Текстовый файл соответственно может являться продуктом работы механической торговой системы, которая сгенерирует его при необходимости совершить сделку. Это "умеют" делать Omega TradeStation, Wealth-Lab и AmiBroker: встроенные в них языки программирования дают возможность по результатам работы МТС формировать текстовые файлы в нужном пользователю формате. В MetaStock изначально такой возможности нет, но пользователь может при необходимости написать программную библиотеку с необходимыми функциями и «прицепить» ее к программе технического анализа.

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

Если система интернет-трейдинга может «подбирать» файлы Excel, то робот будет состоять фактически только из этих двух программ. В других системах Excel придется программировать так, чтобы он еще и формировал текстовый файл в случае необходимости совершения транзакции.

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

Стратегия успеха

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

Пока идеального программного обеспечения, которое бы сочетало в себе все необходимые функции робота, нет, и трейдеру придется досконально изучить работу нескольких программ. Кроме того, язык программирования MetaStock, с одной стороны, достаточно простой и основан на лексике фондового рынка Close, Moving, Low, Cross и пр., а с другой – обладает узкими возможностями. Изучение более продвинутых систем – Omega TradeStation и Wealth-Lab потребует более серьезного изучения основ программирования. Однако все перечисленные программы ТА содержат примеры стратегий, которые можно использовать в обучении, что станет подспорьем трейдеру.

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

Статья подготовлена с ипользованием материалов Илющенко Константина опубликованных на сайте РЦБ.РФ

Both comments and pings are currently closed.

Comments are closed.

Форекс рейтинг