Лучший онлайн-брокер для работы на бирже
203,54
рейтинг
12 февраля 2014 в 13:53

Разработка → Биржевой софт: Инструменты для создания торговых роботов

image

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

Wealth-Lab


Продукт компании Fidelity International является одним из самых мощных средств для технического анализа, разработки и тестирования торговых стратегий. Встроенным языком программирования в ней является WealthScript, имеющий немало общего с Pascal, в последних версиях используется C# и другие .NET языки.

image

На российском фондовом рынке применяется в связке с брокерскими терминалами – в Wealth-Lab пользователь описывает свою стратегию, согласно которой программа генерирует заявки на совершение операций. С помощью специальных библиотек для интеграции, эти приказы затем передаются в торговый терминал, из которого и происходит их исполнение. Объективно такая схема накладывает довольно много ограничений, поэтому Wealth-Lab, конечно, нельзя назвать идеальным вариантом для российских бирж.

MetaStock


Еще один зарубежный продукт. MetaStock содержит большую библиотеку различных индикаторов и средств для создания собственных формул. Из плюсов – довольно простой встроенный язык программирования. С помощью дополнительных модулей можно генерировать приказы на покупку/продажу. Как и Wealth-Lab, на российском рынке применяется в связке с торговыми терминалами с помощью дополнительных библиотек, что влечет за собой примерно те же проблемы. Также к минусам можно отнести и тот факт, что простота встроенного языка программирования не позволяет описывать сложные торговые стратегии.

Omega Research


Средство для технического анализа, предназначенное для создания и тестирования механических торговых систем. Писать роботов можно на встроенном языке программирования Easy Language (синтаксис похож на Pascal). Как и в случае двух вышеперечисленных программ, на российском фондовом рынке используется с помощью «прокладок». Среди минусов, соответственно, стабильность работы подобной конструкции, а также сложность настройки Omega Research. Кроме того, программа работает только со своим форматом данных и не поддерживает конвертацию из текстовых файлов или форматов других программ технического анализа.

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

TSLab


Как и предыдущий проект, TSLab разрабатывает – это платформа для создания и запуска механических торговых систем, «заточенная» именно под российский фондовый рынок. Одним из существенных для трейдеров, не владеющих навыками программирования, является возможность записи торгового алгоритма в виде блок-схемы.

image

StockSharp


Бесплатная (в базовой версии) платформа StockSharp с открытым исходным кодом и продукты на ее основе (S#. Studio). Как ясно из названия, программировать можно на языке C#. Из плюсов – возможность подключения к различным торговым терминалам и брокерским системам.

LiveTrade


Линейка продуктов петербуржской компании Cofite. Благодаря API, с помощью торгового теринала LiveTrade Terminalможно запускать роботов, реализованных на платформе .NET. Есть возможность подключения к торговым терминалам и системам нескольких российских брокеров (в т.ч. к системе ITinvest с помощью API SmartCOM). Кроме того, у Cofite есть продукт Robotlab, который целиком и полностью предназначен для создания роботов. Как и в случае TSLab – торговые алгоритмы можно реализовывать с помощью визуального конструктора. Получившуюся блок-схему робота затем можно запустить в терминале.

image

SmartX


Торговый терминал SmartX представляет собой не обычный терминал в привычном понимании, а интегрированный программный продукт, который, помимо прочего, включает в себя и встроенный скриптовый язык программирования TradeScript – векторный язык, который был создан американской компанией Modulus Financial Engineering (США) специально для создания торговых роботов.

Из интересных функций терминала можно выделить:

  • Возможность бэк-тестинга торговых стратегий — тестирования робота на исторических данных. При этом, эти архивные данные не нужно подгружать из других (часто платных) источников – они подгружаются терминалом автоматически.
  • Возможность построения алгоритмов по тиковым данным.
  • Другая интересная особенность – возможность тестирования торговой стратегии «на лету» с использованием текущих биржевых данных, но без вывода приказа, собственно, на биржу – время виртуальной сделки, цена и получившаяся доходность будут показываться в отдельном окне.

image

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

image

Пример простого робота на TradeScript:

Buy Signals 
# Покупаем, если волатильность снижается, а объем и цена имеют восходящий тренд 
HistoricalVolatility(CLOSE, 15, 252, 2) < REF(HistoricalVolatility(CLOSE, 15, 365, 2), 15) 
AND 
TREND(VOLUME, 5) = UP AND TREND(CLOSE, 40) = UP 
Sell Signals 
# Продаем, если волатильность снижается, а объем и цена имеют нисходящий тренд 
HistoricalVolatility(CLOSE, 15, 252, 2) < REF(HistoricalVolatility(CLOSE, 15, 365, 2), 15) 
AND 
TREND(VOLUME, 5) = UP AND TREND(CLOSE, 40) = DOWN

Плюсом данного способа создания роботов является то, что в отличие тех же Wealth-Lab и Metastock здесь нет необходимости создавать сложные конструкции и использовать для передачи приказов в терминал «прокладки» в виде дополнительных библиотек – все встроено и сразу подключено к брокерской торговой системе.

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

SmartCOM


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

На сегодня все. В следующих топиках мы более подробно поговорим о написании торговых роботов и приведем примеры конкретных механических систем, созданных с помощью различных инструментов. Спасибо за внимание!
Автор: @itinvest
ITinvest
рейтинг 203,54
Лучший онлайн-брокер для работы на бирже

Комментарии (26)

  • +5
    Было бы интересно почитать пост с примерами более сложных роботов на этом TradeScritp.
    • +4
      Да, мы обязательно сделаем такой текст. Спасибо что читаете).
      • 0
        Это же крутая штука — написать бота для получения денег. А что можно почитать, ну, знаете, такое, что сможет донести до обывателя какие алгоритмы использовать, быстро разобраться в биржевой торговле и т.д. и т.п. Вроде quickstart'a.
        • 0
          Мы думали сделать такой общий топик-гайд, в котором собрать самые полезные посты из нашего блога.
          • +1
            Это замечательно! Спасибо вам :) А пока – буду читать ваш блог :)
      • 0
        Планируется ли HTTP API? В этом случае каждый на удобном ему языке сможет подключать к вам роботы. Или это слишком медленный протокол для торгов?
  • +1
    Спасибо за статью! Довольно интересные практические моменты для обывателя :)
    • 0
      Ну так для обывателя-то и замануха…
      Типа приходите играть в шахматы на деньги :-)
  • +3
    очень жаль что с java автотрейдинг гораздо сложнее
    • 0
      почему?
      • 0
        наверно потому что, половина имеющихся тулз имеют апи на C#, возится с подлючением dll это тот еще ад, протокол прямого подключения плаза, аналогичная история, враппера или чего подобного под java нет, единственное что есть опенсорсная библиотека фаст/фикс, но есть этот протокол далеко не у всех да и стоит не малых денег
  • 0
    Да сейчас даже расширения для браузеров умеют с торговыми ботами работать) chrome.google.com/webstore/detail/btc-tradebot/bdaambehoakejadonhmpihbicopbnnli?hl=ru
  • +2
    Крайне полезная информация. Спасибо!
    • 0
      Пожалуйста! Спасибо, что читаете :).
  • +1
    Больше нравится MetaTrader у них там свой язык, но очень похож на С++
    • 0
      Я в свое время (несколько лет назад) написал плюсовую библиотеку, которая копировала в точности интерфейсы MT но позволяла их прогонять на кластерах.
  • –7
    А я вот устроился в Susquehanna на днях. Но о технологиях — ни слова не напишу, ибо контрактом запрещено любое разглашение информации ;) (P.S. вообще было уже согласился в IBM, но эти товарищи перебили предложение предложив просто существенно лучшие условия)
    • +5
      Ну ок, мы рады за вас.
      • –1
        Я понимаю, меня сейчас заминусуют, но не мог промолчать, радость — так и прет ;)
        • +1
          Если квантом — хорошо. Если программистом бэкофис обслуживать, ну… тоже конечно хорошо но совсем другой уровень.
          • 0
            Квантом. И помимо этого, условия (ЗП, пакет бонусов и прочих компенсаций) у них просто сказочные, по сравнению с другими конторами, куда собеседовался ходил (другие были просто софтверными конторами).
            • +4
              Держите нас в курсе событий!
  • 0
    Тема Lua в Quik совершенно не раскрыта.
    Скрипт на Lua работает прямо в терминале, что еще для счастья надо…
  • 0
    мы пользовались TradeSignal www.tradesignal.de/
    в этой системе очень просто «подсовывать» свои данные
    на одном графике трейдер имел возможность смотреть
    Realtime Bloomberg, базовые данные и внутреннюю аналитику банка

    например (для торговли электричеством)
    курс GBP/EUR, сезонную загрузку электростанций, прогноз погоды и кривые построенные квантами

    то есть акцент переводится с торговли как таковой на многомерный анализ данных
  • 0
    А расскажите про think or swim платформу? Про их язык thinkscript?
  • 0
    Почему ничего не сказали о MQL5? Вроде некоторые брокеры подключили MT5 для настоящей торговли, и он выходит из тени «Форексеров».

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

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

Самое читаемое Разработка