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


Пять UX-приемов для создания биржевого софта

Вопросы юзабилити, UX/UI становятся все более важными не только для сугубо дизайнерских фирм и компаний, разрабатывающих ПО и гаджеты для широкого потребления, но и, в частности, для различных трейдинговых платформ. Фондовый рынок – довольно специфическая область, одно неверное движение здесь может стоить целое состояние, поэтому при проектировании интерфейсов для торговли, важно предусмотреть все возможные проблемы и правильно выстроить работу. В этом, однако, нет ничего невозможного – мы в ITinvest всегда сами разрабатывали ПО, которое затем наши клиенты использовали для торговли, и выработали определенные подходы и приемы в области UX.

UX должен начинаться уже на этапе формулировки идеи и требований к продукту

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

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


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

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

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

Мобильная версия – это продолжение основной системы

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

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


На данный момент большинство пользователей, конечно, подсознательно ожидают от мобильных приложений меньших возможностей, чем от десктопного софта или веб-версии. Но с увеличением скорости обработки информации на мобильных устройствах, вырастет и потребность в дополнительном функционале. iPad стал в этом плане очень интересным девайсом, потому что некоторым образом сгладил грань между смартфонами, ноутбуками и ПК – это еще одна причина делать отдельное приложение под планшеты (у нас это SmartPad). Сейчас происходит постепенное изменение потребностей мобильного пользователя по сравнению с потребностями архетипического пользователя смартфона.

UX должен облегчать разработку

Разработчикам очень сложно работать в ситуации, когда им протягивают документ со скриншотами на 1200 страниц – они начинают рассуждать так: «Ну хорошо, сделаем, что сами захотим». Это именно та ситуация, в которой прототипирование и подобные ему инструменты дают мощный рывок вперед – они предлагают технологическую поддержку, предоставляя средства, которые реально можно использовать в работе – таким образом, разработчики видят, каким в действительности должен быть опыт пользователя при работе с создаваемым продуктом.

Безопасность это важно ≠ идти на поводу у пользователей

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

В такой ситуации определенные ограничения неизбежны – регулирующие органы предъявляют определенные требования, которым так или иначе нужно соответствовать. Другая сторона медали – сами пользователи. В отношении безопасности, например, актуальным остается вопрос аутентификации: пользователи не любят ее подтверждать. Они говорят: «Это мое устройство, оно всегда при мне, я его не терял. Залогиньте меня навечно». Здесь нужно найти баланс между безопасностью и удобством, но мы считаем, что на данном этапе безопасность все же в приоритете.

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


SMS-оповещения о логине в торговую систему ITinvest

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

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

Фондовый рынок – крайне высокотехнологичная отрасль, в которой задействована масса интересных технологий и крайне сложная инфраструктура. Сегодня мы хотим рассказать о том, как в финансовой сфере ведется работа над IT-проектами. В частности, осветить аспект разработки софта на примере создания торгового терминала SmartX.

Предыстория

Мы в ITinvest, в отличие от большинства других брокеров, всегда уделяли внимание разработке собственного программного обеспечения. В частности, в 2000-х большой популярностью на рынке пользовался созданный нами терминал SmartTrade, который, в принципе, и по сей день отвечает основным требованиям трейдеров.

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

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

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


Этапы разработки

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

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

Графики

Одной из основных причин низкой производительности были встроенные в платформу M4 графики на платформе COM+.При открытии 5-минуных или 15-минутных графиков скорость работы еще была приемлемой, но тиковый график намертво “подвешивал” терминал.

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

После выпуска первого релиза продукта SmartX 1.0 было принято окончательно решение отказаться от графиков M4 и найти какое-то другое решение. В результате было выбрано новое графическое ядро – open-source проект Gordago, — которое затем было сильно «допилено» в соответствии с нашими нуждами в плане производительности.

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


На сегодняшний момент мы гордимся тем, что наш терминал имеет одни из самых шустрых графиков, полностью реализованных на .Net.

Контролы

Решения Modulus FE строятся на платформе .NET, поэтому изначально все элементы управления были стандартными «дотнетовскими», но, все по тем же соображениям производительности, было решено от них также отказаться. Неплохой заменой, после некоторой доработки, стал еще один открытый проект SourceGrid. Скорость обновления таблиц на больших объемах данных в конечном счете удалось увеличить почти на 2 порядка.

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


Data Manager

Как это часто бывает, начав что-то менять, остановиться трудно, и уже после старта разработки нового терминала, были начаты и работы по созданию совершенно новой брокерской торговой системы. Основная часть этих работ была завершена осенью 2013 года, получившаяся система получила название MatriX™ (более подробно о ней будет отдельный топик).Одной из главных ее «фич» стала единая денежная позиция.

При использовании предыдущей версии нашей торговой системы, которая называлась it-trade/SmartTrade, клиенту предоставлялся отдельный лицевой счет для каждой торговой площадки. Например, Фондовый рынок Московской биржи — это счет MS; Срочный рынок Московской биржи — счет RF; Валютный рынок Московской биржи — счет FX (беспоставочный) или счет CD (поставочный) и другие. При подобном разделении, ценные бумаги и денежные средства, расположенные на одной торговой площадке не могут служить в качестве обеспечения для совершения операций на другой.

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

Фондовый рынок Московской биржи (все инструменты, торгуемые в режиме Т+2).
Срочный рынок Московской биржи (фьючерсы, опционы).
Валютный рынок Московской биржи (беспоставочный режим).
London Stock Exchange секция IOB (АДР российских эмитентов).

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

Соответственно, новый торговый терминал должен был соответствовать этим нововведениям и уметь работать с единой денежной позицией. Это, в свою очередь, повлекло необходимость переделки существующего ранее модуля Data Manager, который достался SmartX от предшественника – терминала SmartTrade.

Модуль Data Manager отвечает за взаимодействие терминала с брокерской торговой системой. Старый модуль был однопоточным и у него было не все хорошо с производительностью, что в ситуации, когда через терминал в день могут «прокачиваться» гигабайты биржевых данных, было неприемлемо. Новый Data Manager стал многопоточным и асинхронным, благодаря чему, теперь терминал может без всяких проблем отобразить 2 миллиона клиентских заявок – при торговле роботом, иногда трейдеры контролируют ситуацию по счету с помощью торгового терминала, так что это довольно ценная возможность.

Расширение функционала: Плагины

После того, как SmartX получил необходимый базовый набор функций (графики, ленты сделок, таблицы котировок, биржевые стаканы, состояние счета, информация по заявкам и позициями), мы задумались о расширении его возможностей. При этом сильно усложнять сам терминал и делать его негибким не хотелось, поэтому был придуман и реализован механизм расширений/плагинов, которые позволяют тем пользователям SmartX, которым не хватает базового функционала терминала, расширить его возможности. В число доступных на данный момент плагинов входят:

Пакет опционных плагинов.
Конструктор роботов TradeScript™
Торговля облигациями.
Легкая торговля.
Время жизни заявки.
Дополнительные окна котировок.
Автоследование EasyMANi – первый плагин от сторонних разработчиков.
Знаменитая игра «Змейка».

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

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


Интерфейс и юзабилити

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

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


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

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

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

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

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

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

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

Риск-менеджмент

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

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


Планы

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

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

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

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

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

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


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

MetaStock

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

Omega Research

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

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

TSLab

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

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


StockSharp

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

LiveTrade

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

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


SmartX

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

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

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

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


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

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


Пример простого робота на 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, что значительно облегчает анализ данных.

(C) Источник
Не является индивидуальной инвестиционной рекомендацией
При копировании ссылка обязательна Нашли ошибку: выделить и нажать Ctrl+Enter