В нашем блоге мы много пишем о технологиях, связанных с фондовым рынком (например, соответствующих протоколах передачи данных — раз, два, три). Существует огромное количество биржевого софта, процесс создания которого довольно интересен. Ранее мы рассказывали о разработке торгового терминала SmartX, а сегодня представляем вам историю разработчиков проекта по созданию торговых роботов StockSharp.
В этой статье мы расскажем о нашем продукте StockSharp, который создаем уже долгие годы. Зачем мы это делаем, кому он нужен, какие преимущества и какие перспективы. Статья разбита на отдельные разделы, но читать лучше по порядку.
Старт проекта приходится на конец 2009 года. В тот момент было уже достаточно много различных программ как для трейдинга, так и для алготрейдинга. Но отличительной особенностью доминирующего количества создаваемых продуктов было и есть практические полное игнорирование возможности полноценной автоматизации. Следующие пункты или отсутствуют у большинства программ, или сделаны на низком уровне:
Можно еще дописать с полсотни пунктов, что нужно для нормальной работы в алготрейдинге. Но смысл не изменен. Продукты, представленные массам, не орентированы на алготрейдинг (из-за узкой нишевости), и они никогда не будут иметь нормальную функциональность. Возможности этих продуктов по автоматизации достигаются в значительно короткие сроки. Это считанные месяцы, и бесмысленно их тратить, если планы в алготрейдинге имеют длину в оставшуюся жизнь.
Вариантов исправления ситуации два:
Выбор между дорого и долго выглядит как между плохим и очень плохим.
Именно для того, чтобы заполнить гэп между терминалом с базовой автоматизацией и профессиональной платформой для алготрейдинга, а так же сделать ее доступной для потребителей (что может быть более доступно, чем Open Source продукт, скачиваемый с GitHub?) мы и создали нашу платформу —StockSharp.
StockSharp построен по классической модели развития сложного программного обеспечения. В начале создается некая основа (в нашем случае это S#.API), и уже с помощью нее создаются надстройки высокого уровня. Сегодня картина выглядят следующим образом:
Мы уже сделали ряд продуктов, которые были созданы исключительно только на S#.API. Например, наша графическая среда S#.Studio (в бета стадии на данный момент) или S#.Data / Hydra.
На текущий день у нас сделан полный комлпекс для алготрейдинга. Есть система сбора и хранения исторических данных (которая может работать через интернет, и раздавать данные как сервер). Есть система тестирования на истории. Есть ряд графических компонентов.
Все основные функции (алгоритмы, коннекторы к внешним источникам и т.д.) — все это стандартизовано внешними контрактами (интерфейсами), что позволяет достаточно просто использовать их в своем коде. Согласитесь, куда как удобнее и быстрее в среде Visual Studio подключить библиотеку и вызвать метод в ней, чем писать на скрипте код в торговом терминале, который бы выгружал нужные данные в файл и затем писать еще одну программу, которая бы этот файл мониторила.
Фактически, за один день можно сделать полнофункциональный модуль для подключения к торгам, вывода графически информации, и тестирования создаваемой стратегии на истории:
Это делается блоками на WPF. Все графические компоненты на экране — это все готовое из S#.XAML.
Конечно же, делать бизнес с помощью лишь Open Source — это приятно. Но еще приятнее, делать бизнес с Open Source и правильной бизнес-моделью (“Добрым словом и пистолетом вы можете добиться гораздо большего, чем одним только добрым словом.” (с) А.К.).
Мы распространяем нашу платформу как можно шире среди частных трейдеров, но для компаний мы предлагаем платные решения. Это осуществляется через наши дополнительные коннекторы прямого подключения к биржам. Модель себя оправдывает тем, что сам тип подключения уже за нас сегрегирует клиентов (для компаний бесполезны обычные подключения, а для частных трейдеров и мини-команд бесполезны коннекторы прямого доступа).
В дополнение ко всему мы предлагаем наши курсы, где обучаем как делать торговых роботов тех, кто их никогда не делал.
Все эти сервисы вместе взятые дают нам возможность и далее развивать платформу StockSharp, сохраняя ее доступной для частных трейдеров, но с возможностями как у профессиональных решений.
Гигантские планы имеют тенденцию не сбываться, поэтому у нас достаточно четские шаги на сравнительно короткие отрезки времени.
Задача Номер 1 — это окончательно доделать локализацию. Уже сейчас количество англоязычных пользователей на ГитХаб у нашего проекта сопоставимо с русскоязычной аудиторией. И это при том, что до сих пор в коде все комментарии на русском языке.
Хочется уже вырваться из региональных тисков и посмотреть — а как же там, и чем мы лучше/хуже. Золотая мечта — компании с Wall Street вместо Блумберг начинают использовать StockSharp.
В этой статье мы расскажем о нашем продукте StockSharp, который создаем уже долгие годы. Зачем мы это делаем, кому он нужен, какие преимущества и какие перспективы. Статья разбита на отдельные разделы, но читать лучше по порядку.
Предпосылки и причины
Старт проекта приходится на конец 2009 года. В тот момент было уже достаточно много различных программ как для трейдинга, так и для алготрейдинга. Но отличительной особенностью доминирующего количества создаваемых продуктов было и есть практические полное игнорирование возможности полноценной автоматизации. Следующие пункты или отсутствуют у большинства программ, или сделаны на низком уровне:
- Сохранение истории торгов.
- Сохранение собственных торговых операций.
- Подключение 2-ух и более источников маркет-данных.
- Подключение к нескольким счетам/брокерам одновременно.
- Создание своих типов графиков и интерфейса.
- Система логов и оповещения об ошибках.
- Расширение возможности стандартного бэктестера (система исполнения заявок не унифицирована, и зависит как от электронных площадок, так и от брокеров).
- Отсуствие инструментов для работы 2-ух и более человек над совместным проектом.
- Нормальный редактор кода (а не на уровне Windows 3.1 и с соответствующими возможностями).
Можно еще дописать с полсотни пунктов, что нужно для нормальной работы в алготрейдинге. Но смысл не изменен. Продукты, представленные массам, не орентированы на алготрейдинг (из-за узкой нишевости), и они никогда не будут иметь нормальную функциональность. Возможности этих продуктов по автоматизации достигаются в значительно короткие сроки. Это считанные месяцы, и бесмысленно их тратить, если планы в алготрейдинге имеют длину в оставшуюся жизнь.
Вариантов исправления ситуации два:
- Или покупать ориентированные на алготрейдинг и командную работу продукты. А это десятки тысяч долларов в месяц (без преувеличения). При текущем курсе выглядит совсем уж заоблачно для начинающих алготрейдеров.
- Или делать свое с нуля. Писать коннекторы в биржам, писать свой бэктестер (например, на Python). А это влечет за собой написание и своих графиков, систем оповещения и многое другое.
Выбор между дорого и долго выглядит как между плохим и очень плохим.
Именно для того, чтобы заполнить гэп между терминалом с базовой автоматизацией и профессиональной платформой для алготрейдинга, а так же сделать ее доступной для потребителей (что может быть более доступно, чем Open Source продукт, скачиваемый с GitHub?) мы и создали нашу платформу —StockSharp.
Архитектура
StockSharp построен по классической модели развития сложного программного обеспечения. В начале создается некая основа (в нашем случае это S#.API), и уже с помощью нее создаются надстройки высокого уровня. Сегодня картина выглядят следующим образом:
Мы уже сделали ряд продуктов, которые были созданы исключительно только на S#.API. Например, наша графическая среда S#.Studio (в бета стадии на данный момент) или S#.Data / Hydra.
На текущий день у нас сделан полный комлпекс для алготрейдинга. Есть система сбора и хранения исторических данных (которая может работать через интернет, и раздавать данные как сервер). Есть система тестирования на истории. Есть ряд графических компонентов.
Все основные функции (алгоритмы, коннекторы к внешним источникам и т.д.) — все это стандартизовано внешними контрактами (интерфейсами), что позволяет достаточно просто использовать их в своем коде. Согласитесь, куда как удобнее и быстрее в среде Visual Studio подключить библиотеку и вызвать метод в ней, чем писать на скрипте код в торговом терминале, который бы выгружал нужные данные в файл и затем писать еще одну программу, которая бы этот файл мониторила.
Фактически, за один день можно сделать полнофункциональный модуль для подключения к торгам, вывода графически информации, и тестирования создаваемой стратегии на истории:
Это делается блоками на WPF. Все графические компоненты на экране — это все готовое из S#.XAML.
А как же бизнес?
Конечно же, делать бизнес с помощью лишь Open Source — это приятно. Но еще приятнее, делать бизнес с Open Source и правильной бизнес-моделью (“Добрым словом и пистолетом вы можете добиться гораздо большего, чем одним только добрым словом.” (с) А.К.).
Мы распространяем нашу платформу как можно шире среди частных трейдеров, но для компаний мы предлагаем платные решения. Это осуществляется через наши дополнительные коннекторы прямого подключения к биржам. Модель себя оправдывает тем, что сам тип подключения уже за нас сегрегирует клиентов (для компаний бесполезны обычные подключения, а для частных трейдеров и мини-команд бесполезны коннекторы прямого доступа).
В дополнение ко всему мы предлагаем наши курсы, где обучаем как делать торговых роботов тех, кто их никогда не делал.
Все эти сервисы вместе взятые дают нам возможность и далее развивать платформу StockSharp, сохраняя ее доступной для частных трейдеров, но с возможностями как у профессиональных решений.
Вместо заключения
Гигантские планы имеют тенденцию не сбываться, поэтому у нас достаточно четские шаги на сравнительно короткие отрезки времени.
Задача Номер 1 — это окончательно доделать локализацию. Уже сейчас количество англоязычных пользователей на ГитХаб у нашего проекта сопоставимо с русскоязычной аудиторией. И это при том, что до сих пор в коде все комментарии на русском языке.
Хочется уже вырваться из региональных тисков и посмотреть — а как же там, и чем мы лучше/хуже. Золотая мечта — компании с Wall Street вместо Блумберг начинают использовать StockSharp.
webmascon
> вместо Блумерг
опечатка