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

    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 135,15
    Лучший онлайн-брокер для работы на бирже
    Поделиться публикацией
    Комментарии 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 для настоящей торговли, и он выходит из тени «Форексеров».

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

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

                            Самое читаемое