Фото: robotraderpilot.blogspot.ru
Роман Некрасов, основатель market-lab.org 13.01.2017 11:22
13024
«Коробочные» решения для разработки, тестирования и реализации торговых роботов становятся все популярнее у трейдеров, которые хотят либо автоматизировать свою стратегию, либо исключить человеческий фактор из торговли (в первую очередь, эмоции). Таких сервисов существует множество, попробуем собрать наиболее популярные и известные из них среди российских участников биржевых торгов.
TSLab (www.tslab.ru)
- Высокий уровень локализации под местный российский рынок.
- Простота работы.
- Наличие коннекторов для получения рыночных данных.
- Низкая стоимость платформы.
- Возможность работы в облаке.
- Ограничения для разработчиков профессиональных систем.
- Скорость исполнения скриптов.
Wealth-Lab (www.wealth-lab.com)
Полупрофессиональная среда разработки и тестирования торговых систем. Также содержит графический интерфейс, что позволяет людям, не владеющим навыками программирования, работать с ней. Платформа позволяет вести разработку на любом языке .NET. Подключение источников рыночных данных осуществляется через дополнительные плагины.
Десятый шаг в робототехнику. Выбор языка программирования и среды программирования для контроллера.
- Широкий перечень индикаторов, готовых скриптов.
- Простота работы.
- Продвинутые инструменты анализа торговых стратегий.
- Ограничения для разработчиков профессиональных систем.
- Скорость исполнения скриптов.
- Отсутствие сертифицированных плагинов для российских источников данных.
- Высокая стоимость лицензированной платформы.
MultiCharts (www.multicharts.com)
Платформа позволяет делать бэктестинг (тестирование на исторических данных) с применением широкого перечня параметров, мониторить отчеты по оптимизации стратегии, проводить анализ методом Монте-Карло. Также в платформе доступен симулятор торгов. Редактор сценариев стал более понятным в интуитивном плане в последней, 10-й, версии.
- Широкий перечень индикаторов, готовых скриптов.
- Простота работы.
- Продвинутые инструменты анализа торговых стратегий.
- Ограничения для разработчиков профессиональных систем.
- Скорость исполнения скриптов.
- Отсутствие сертифицированных плагинов для российских источников данных.
- Отсутствие облачных решений.
AmiBroker (www.amibroker.com)
Одна из широко известных платформ, первая версия которой появилась еще в 1995 году. Продукт не стоит на месте и активно развивается, используются параллельные вычисления, что повышает скорость исполнения скриптов. Широкий перечень индикаторов, возможность использовать сканер акций и прочий функционал не оставит равнодушным ни одного трейдера-любителя. В 2015 году добавлена поддержка метода Монте-Карло. Однако, как и прочие «коробочные» продукты, вряд ли AmiBroker будет интересен профессиональным трейдерам-алгоритмистам.
Что нужно знать робототехнику
- Широкий перечень индикаторов, готовых скриптов.
- Простота работы.
- Продвинутые инструменты анализа торговых стратегий.
- Ограничения для разработчиков профессиональных систем.
- Скорость исполнения скриптов.
- Отсутствие сертифицированных плагинов для российских источников данных.
MetaStock (www.metastock.ca)
Платформа, которая одной из первых появилась на российском рынке. Конечно, это была пиратская версия, так как за лицензию требовалось заплатить несколько тысяч долларов США, что было невозможно для простых трейдеров-любителей. В дальнейшем один из российских брокеров пытался продвигать лицензию Metastock, однако эта маркетинговая кампания завершилась неудачей. Платформа по праву считается «динозавром» на рынке подобного класса систем. Однако из версии standalone приложений оно так и не сумело шагнуть «в облако» , что говорит о катастрофическом отставании от современных тенденций.
- Широкий перечень индикаторов, готовых скриптов.
- Продвинутые инструменты анализа торговых стратегий.
- Ограничения для разработчиков профессиональных систем.
- Отсутствие облачных решений.
- Скорость исполнения скриптов.
- Отсутствие сертифицированных плагинов для российских источников данных.
- Высокая стоимость.
Источник: fomag.ru
Робософт — обзор существующих решений
Настало время рассмотреть существующие программные решения для разработки, управления и программирования роботов.
ROS
http://www.ros.org
ROS (Robot Operating System) – это программное обеспечение с открытым исходным кодом (лицензия BSD – т.е. возможно использовать и модифицировать программу под свои задачи, в т.ч. в коммерческих целях).
ROS – это результат работы исследовательской лаборатория Willow Garage в сотрудничестве с университетом Стэнфорда. Проект ROS реализует системный уровень управления роботом, а на его основе развиваются прикладные пакеты: библиотека машинного зрения OpenCV, система планирования действий, сервер управления Player и другие технологии, используемые в десятках научных и прикладных проектов по всему миру.
Главная задача ROS – это возможность повторного использования кода в робототехнических исследованиях и разработках.
ROS интегрирует в себе различные драйверы, алгоритмы и популярные открытые робототехнические библиотеки.
ROS предоставляет функционал своеобразной Операционной Системы Робота: аппаратная абстракция, низкоуровневый контроль оборудования, реализация частоиспользуемого функционала, передача сообщений между процессами, управление пакетами.
ROS не является системой реального времени, хотя и может использовать системы реального времени (например, OROCOS Real-time Toolkit).
ROS – это распределённая система процессов (узлов). Эти процессы могут быть сгруппированы в Пакеты и Стеки, которые можно легко распространять.
ROS легко интегрируется с программными другими фреймворками (на данный момент интегрирован с OpenRAVE, OROCOS и Player).
ROS старается не зависеть от языка программирования – на данный момент уже реализованы версии на C++ и Python (есть экспериментальные библиотеки на LISP, Octave Java, Lua).
ROS имеет встроенный пакет для тестирования – rostest, что облегчает тестирование приложений.
ROS поддерживает возможность масштабирования.
ROS имеет две основных “стороны”: сторона операционной системы ROS и ros-pkg — пользовательские пакеты (организованные в наборы, называемые стеком), которые и реализуют весь функционал – локализация, картографирование, планирование, восприятие, моделирование и т.д.
В настоящее время ROS работает только под UNIX-подобными системами. Основная разработка ведётся под Ubuntu Linux.
В ноябре прошлого года, платформе ROS исполнилось 3 года!
На текущий момент, последняя версия — ROS «C Turtle» (август 2010-го).
Поддерживаемые роботы:
Lego NXT
STAIR 1 — Stanford University
Aldebaran Nao
i-Sobot
Kawada HPR2-V
TUM-Rosie
Marvin
HERB
Penn Quadrotors
Robotino
Meka Robots
Skybotix CoaX Helicopter:
Самый известный робот, работающий под управлением ROS – это, естественно, робот PR2 от Willow Garage.
Microsoft Robotics Developer Studio
http://www.microsoft.com/robotics/
Microsoft Robotics Developer Studio (Microsoft RDS, MRDS) — Windows-ориентированная среда разработки приложений для роботизированных платформ.
Первая версия Robotics Studio вышла в 2006 году, а в настоящее время доступна версия
Microsoft Robotics Developer Studio 2008 R3.
В Robotics Studio имеются инструменты визуального программирования, а также трехмерная виртуальная среда для физической симуляции работы роботов — PhysX.
Составляющие Robotics Studio:
* Runtime environment — окружение, в котором выполняется приложение для роботов, происходит отслеживание и взаимодействие с другими приложениями для роботов. В основе основе Runtime environment лежит CLR 2.0, что дает возможность писать приложения, используя любые языки программирования платформы Microsoft .NET.
Runtime environment состоит из двух элементов:
CCR (Concurrency and Coordination Runtime, библиотека параллельных вычислений и координации) — библиотека для работы с параллельными и асинхронными потоками данных.
DSS (Decentralized Software Services, децентрализованные программные сервисы) –
средство создания распределенных приложений на основе сервисов (для работы и взаимодействия используется протокол Decentralized System Services Protocol (DSSP), который базируется на протоколе SOAP — для обмена произвольными сообщениями используется формат XML).
* VPL (Visual Programming Language) — язык визуального программирования для написания приложений для роботов (диаграммы VPL сохраняются в виде XML-схем)
* Simulation environment — симулятор — окружение для выполнения приложения для роботов в симулируемых условиях (однако, модель физики в Microsoft Robotics Studio, для наглядности, достаточно упрощена и этот симулятор не подойдет там, где нужны точные расчеты.).
В Robotics Studio, приложение — это композиция слабосвязанных параллельно выполняющихся компонентов. При этом — все компоненты в Robotics Studio — это независимо исполняемые сервисы, т.е., например, для разработчика программы не существует физического мотора, а есть сервис с интерфейсом, к которому нужно обратиться, чтобы работать с мотором из написанной программы.
Пакет RDS позволяет разрабатывать программы для различных аппаратных платформ.
Поддерживаемые роботы:
Pioneer 3Dx
Lego Mindstorms NXT
iRobot Create
Aldebaran Nao
Parallax Boe-Bot
Segway RMP
RoombaDevTools
Parallax Boe-Bot
CoroWare CoroBot
Lynxmotion Lynx 6 Robotic Arm
На текущий момент, пакет Microsoft Robotics Developer Studio 2008 R3 (RDS) распространяется бесплатно и свободно доступен для всех желающих. Единственная проблема в том, что никто не может быть уверен, что перетянув на себя часть разработчиков роботов Microsoft снова не захочет получать деньги за свой продукт.
Серьёзный минус RDS – это зависимость от Windows и закрытые исходники.
Кроме того, необходимо отметить, что Robotics Developer Studio не имеет встроенных систем ИИ – систем компьютерного зрения, навигации и машинного обучения. А используемый протокол SOAP, для взаимодействия распределенных сервисов, всё же не предназначен для приложений работающих в режиме реального времени.
URBI
http://www.urbiforge.com
Про систему URBI от французской компании Gostai, мы здесь уже подробно писали.
URBI — это кроссплатформенная открытая программная платформа на C++, используемая для разработки приложений для робототехники и сложных систем.
URBI основывается на распределенной компонентной архитектуре UObject.
Она также включает urbiScript — параллельный и событийный скриптовый язык.
URBI реализует свой слой абстракции, отделяя управляющую программу на urbiScript от взаимодействия с ОС и т.д. с помощью прослойки из UObject-драйверов.
Т.е. чтобы подружить своего робота с URBI нужно создать промежуточные UObject-драйвера для своего оборудования.
Большой плюс URBI — это кроссплатформенность системы – она работает под Windows, Linux, и Mac OS.
URBI имеет набор графических утилит разработки — Gostai Studio и Gostai Lab. Своего симулятора у URBI нет, но можно использовать Webots.
Начиная со второй версии Urbi может взаимодействовать с ROS от компании Willow Garage.
И что немаловажно — Gostai открыла исходный код URBI SDK под лицензией GNU AGPL v3.
Система хорошо документирована и поддерживает самые популярные модели роботов:
* Segway
* Aibo ERS7/ERS2xx (Urbi 1.x only)
* iRobot Create
* Lego Mindstorms NXT
* HRP-2 (restricted release to members of JRL)
* Nao от Aldebaran
* Robotis Bioloid
* Mobile Robots Pioneer
Написание модулей UObject вполне посильная задача, что и было сделано – был написан модуль Urbiduino для взаимодействия URBI и контроллера Arduino (через последовательное соединение по протоколу Firmata)
OROCOS
OROCOS (Open Robot Control Software project) — открытое программное обеспечение для управления роботами.
Проект OROCOS поддерживает следующие направления четырёх C++ библиотек:
1. The Real-Time Toolkit,
2. The Kinematics and Dynamics Library,
3. The Bayesian Filtering Library
4. The Orocos Component Library.
Так как OROCOS — это просто набор библиотек, то как следствие у OROCOS отсутствуют новомодные графические инструменты разработки и собственный симулятор.
* The Orocos Real-Time Toolkit (RTT) не существует сам по себе, но обеспечивает инфраструктуру и функциональность других приложений. Данная библиотекя акцентируется на приложениях реального времени, позволяющих интерактивно управлять модулями системы.
* The Orocos Components Library (OCL) предоставляет готовые к использованию компоненты управления, а также компоненты для управления и доступа к аппаратным средствам.
* The Orocos Kinematics and Dynamics Library (KDL) является частью программ, разработанных на C++ ,которая, в свою очередь, позволяет позволяет вычислять кинематику в реальном времени
* Библиотека Orocos Bayesian Filtering Library (BFL) обеспечивает независимую структуру (framework) для Dynamic Bayesian Networks, то есть, рекурсивную обработку информации в соответствии с алгоритмами оценки, применяемых в Bayes’ rule , такие как (Extended) Kalman Filters, Particle Filters (Sequential Monte methods).
Не так давно проект OROCOS стал доступен в виде стека под ROS
orocos_toolchain_ros
Плюсы: бесплатный + open source + Real-Time.
Player, Stage, Gazebo
http://playerstage.sourceforge.net
Проект Player (ранее проект Player/Stage или проект Player/Stage/Gazebo) представляет собой проект по созданию свободного программного обеспечения для исследования робототехники и сенсорных систем.
Проект состоит из 3 основных компонентов: сервера Player и платформ для симуляции роботов – Stage (двумерный симулятор) и Gazebo (трёхмерный симулятор).
Вероятно, Player — наиболее часто используемый интерфейс в робототехнических исследованиях. Большинство ведущих журналов о робототехнике, регулярно публикуют статьи о применении Player (Stage и Gazebo) для управления и моделирования робототехнических экспериментов (в академических, правительственных и индустриальных лабораториях).
Player, обеспечивает сетевой интерфейс для различных роботов и сенсорного оборудования. Клиент-серверная модель Player-а позволяет программам управления робота быть написанными на любом языке программирования и работать на любом компьютере, подключённого к сети вместе с роботом.
Компоненты проекта работают на POSIX-совместимых операционных системах, включая Linux, Mac OS X, Solaris и BSD; планируется портирование на Microsoft Windows.
Проект был основан в 2000 году Brian Gerkey, Richard Vaughan и Andrew Howard в Университете Южной Калифорнии в Лос-Анджелесе и широко используется в робототехниких исследованиях и обучении.
Программное обеспечение распространяется под лицензией GNU General Public License с документацией под GNU Free Documentation License.
Особенности проекта:
* независимость от робототехнической платформы,
* поддержка нескольких языков программирования, включая C, C++, Java, Tcl и Python,
* минимальной и гибкий дизайн,
* поддержка нескольких устройств в одном интерфейсе,
* конфигурации сервера «на лету».
Player работает путём создания нескольких уровней абстракции. Он скрывает низкоуровневые аппаратно-зависимые реализации за набором установленных «интерфейсов».
Высоко-уровневый контроль(логика) взаимодействует только с этими интерфейсами, что
означает, что программа управления может не учитывать что скрывается, за этими интерфейсами.
Компания Willow Garage использует проект Player для разработки программного стека для робота PR2. Все три компонента проекта — Player, Stage и Gazebo были адаптированы для использования внутри ROS с целью полной интеграции обеих платформ.
Skilligent
http://skilligent.com
Основной продукт — Robot Learning and Behavior Control System
, в состав которого входят:
* Система машинного зрения — Robot Vision System ( распознавание и отслеживание объектов, описание которых содержатся в специальной базе данных )
* Система навигации — Visual Localization System (определения ориентации в помещениях после обучающей сессии)
* элементы отказоустойчивой системы управления — Fault-Tolerant Control Framework ( — это JAUS-совместимая система управления для координации совместной работы всех модулей).
Философия продукта состоит в создании полностью обучаемой системы управления. После установки программного обеспечения в робота, пользователь начинает взаимодействовать с роботом, обучая его новым моделям поведения, использовать новые стимулы для обучения робота. Идея состоит в демонстрации необходимой последовательности действий (робот должен распознать жесты тренера и составить себе шаги выполнения задачи).
Итерационный процесс обучения робота продолжается до тех пор, пока робот не сможет делать свою работу самостоятельно.
ERSP от Evolution Robotics
http://www.evolution.com/products/ersp/
ERSP от компании Evolution Robotics — это среда для разработки ПО роботов. Она состоит из трех основных частей:
* ViPR (Visual Pattern Recognition) модуль визуального распознавания,
* vSLAM — модуль ориентирования – на основе данных от одной камеры и оптических энкодеров, позволяет осуществлять локализацию и построение карты местности с точностью до 10 см.
* ERSA — операционная система робота – предоставляет всю инфраструктуру и функционал для управления всеми аппаратными и программными компонентами робота
Система компьютерного зрения и система SLAM основана на алгоритме SIFT.
Для платформы ERSP существует программа для визуального программирования на основе различных “поведенческих” блоков. Кроме того, в ERSP возможна разработка программ на скриптовом языке программирования – Питоне (Python).
ERSP – кросс-платформенная разработка и поддерживает следующие платформы:
32-bit(64-bit) Debian 4.0
32-bit(64-bit) Fedora Core 8
32-bit Windows XP
Данный софт распространяется вместе с универсальным шасси для ноутбуков — ER-1
В ERSP нет среды моделирования, а так же не поддерживается распределённая архитектура.
К сожалению, система ERSP выглядит заброшенной, т.к. новых релизов давно не появлялось.
Другие системы:
iRobot AWARE 2.0
http://www.irobot.com/gi/developers/Aware/
iRobot’s AWARE 2.0 – это программное обеспечение роботов, разрабатываемое компанией iRobot
какой-то конкретной информации об этой коммерческой разработке нет. Это архитектура, с которой должны быть совместимы все решения сторонних разработчиков для роботов iRobot
LabVIEW Robotics
http://www.ni.com/labview/
LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) — это кроссплатформенная графическая среда разработки и платформа для выполнения программ, созданных на графическом языке программирования “G” фирмы National Instruments.
В основе LabVIEW лежит парадигма потоков данных.
По проводам(Wire) передаются данные от одних элементов другим. Вся эта концепция называется Data Flow. Суть Блок Диаграммы — это узлы (ноды), выходы одних узлов присоединены ко входам других узлов. Узел начнёт выполнение только тогда, когда прибудут все необходимые для работы данные.
Одна из главных особенностей визуального программирования — код действительно может быть наглядным и красивым! С другой стороны, он может запросто превратиться в лапшу…
LabVIEW используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами.
LabVIEW поддерживает огромный спектр оборудования различных производителей и имеет в своём составе многочисленные библиотеки компонентов, в том числе, для управления роботами и системами машинного зрения.
Продукт — LabVIEW Robotics
http://www.ni.com/robotics/
и LabVIEW Robotics Starter Kit
Именно на LabView основана среда программирования Lego NXT, но и обычная LabView с модулем LabVIEW LEGO MINDSTORMS NXT Module так же позволяет взаимодействовать со всеми сенсорами робота LEGO Mindstorm NXT.
OpenRAVE — Open Robotics Automation Virtual Environment – трёхмерный симулятор
http://openrave.programmingvision.com
Pyro (Python Robotics) – инструментарий, для управления роботом, написанный на Python-е
http://pyrorobotics.com
YARP (Yet Another Robot Platform) – фреймворк с открытым исходным кодом, написанный на C++ и предназначенный для работы с оборудованием робота.
http://eris.liralab.it/yarp/
CLARAty – программная платформа, созданная в NASA и затем распространяемая в виде open source-проекта. Реализует массу интересных алгоритмов
http://claraty.jpl.nasa.gov/man/overview/index.php
Итоги
Рассмотрев существующие решения ПО для роботов, можно сделать следующие обобщения:
— робософт работает в виде в промежуточного слоя между обычной ОС и программами/скриптами управления роботом
— робософт имеет модульную структуру, которая работает поверх базовой прослойки (фреймворка)
— робософт имеет распределённую клиент-серверную структуру
“стандартный” робософт – это:
* фреймворк, обеспечивающий типовые операции, слой абстракции от оборудования, межпотоковое взаимодействие и т.д.
* дополнительные модули, реализующие различные роботехнические алгоритмы (компьютерное зрение, SLAM, машинное обучение, кинематика)
* симулятор (симулятор является важной частью программного обеспечения для разработки роботов — он позволит отлаживать алгоритмы в виртуальной среде, без покупки дорогостоящего оборудования.)
* оболочка для визуального программирования и управления роботом (наглядное и доступное предметно-ориентированное программирование, представление состояния робота в виде иерархического конечного автомата и т.п.)
Из перечисленных систем, я бы выделил для более подробного знакомства – ROS и URBI.
А так как URBI уже более-менее здесь описана, значит настала пора поближе познакомиться с ROS!
Источник: robocraft.ru
Создание торговых роботов: 11 инструментов разработки
В нашем блоге мы много внимания уделяем вопросам алгоритмической и автоматизированной торговли на бирже, рассматривая, как теоретические аспекты, вроде выбора языка программирования, так и практические — например, реализацию системы событийно-ориентированного бэктестинга на Python.
Сегодня мы представляем вашему вниманию подборку сред программирования и инструментов для создания торговых роботов.
TradeScript (SMARTx)
В торговом терминале компании ITinvest под названием SmartX есть специальный плагин с конструктором торговых роботов TradeScript. С помощью простого, но довольно мощного скриптового языка трейдеры могут создавать механические системы различного уровня сложности.
Существует также модуль бэктестинга, позволяющий оценить продуктивность работы запрограммированной стратегии на исторических данных. Кроме того предоставлена и возможность тестирования торговой системы «на лету» с использованием текущих биржевых данных, но без вывода приказа на биржу — время виртуальной сделки, цена и получившаяся доходность будут показываться в отдельном окне.
Язык TradeScript был изначально создан американской компанией Modulus FE специально для написания на нем торговых роботов. Он довольно прост в изучении, а многие алгоритмы схожи по написанию с Metastock, что облегчает работу пользователям, знакомым с этим программным пакетом.
Плюсом TradeScript по сравнению с Wealth-Lab и тем же Metastock является отсутствие необходимости создания сложных конструкций и использования различных коннекторов для передачи приказов в торговый терминал. Конструктор роботов встроен в SmartX, что позволяет добиваться значительно более высокой надежности и быстродействия.
Ниже представлен код торговой стратегии на TradeScript:
Buy Signals # Покупаем, если момент и инерция имеют однонаправленный тренд TREND(EMA(CLOSE, 20), 15) = UP AND TREND(MACD(13, 26, 9, SIMPLE), 5) = UP Sell Signals # Продаем, если момент и инерция имеют однонаправленный тренд TREND(EMA(CLOSE, 20), 15) = DOWN AND TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN Exit Long Signal # Выходим, если тренд инерции и момента имеет противоположное направления TREND(EMA(CLOSE, 20), 15) = DOWN OR TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN Exit Short Signal # Выходим, если тренд инерции и момента имеет противоположное направления TREND(EMA(CLOSE, 20), 15) = UP OR TREND(MACD(13, 26, 9, SIMPLE), 5) = UP
Кроме того пользователь может запускать столько одновременно работающих алгоритмов, сколько позволит тактовая частота процессора и память компьютера. Учитывая большое число слов и операндов скриптового языка, это означает возможность создания сколько угодно сложных торговых стратегий.
Более подробно вопрос написания торговых роботов на TradeScript мы рассматривали в наших предыдущих материалах (первый, второй).
CQG Integrated Client
Это популярная у трейдеров во всем мире профессиональная многофункциональная платформа технического анализа, предоставляющая котировки в реальном времени с множества торговых площадок. Также в программе предусмотрены возможности по автоматизации торговых операций.
Wealth-Lab
Созданная компанией Fidelity International мощнейшая система технического анализа, разработки и тестирования торговых стратегий. Создавать торговых роботов можно с помощью встроенного языка программирования WealthScript. В последних версиях системы также используются C# и другие .NET-языки.
TSLab
Инструмент TSLab позволяет торговцам создавать механические системы разной степени сложности. Существуют возможности создания торгового робота и его тестирования на исторических данных. Существуют различные модули программы, например модуль управления риска, который прежде чем отправить заявку на биржу, проверяет ее на соответствие заданным условиям. Если ордер им не удовлетворяет, то будет отклонен. Таким образом можно ввести дополнительный контроль за работой скрипта.
Что немаловажно для трейдеров, которые не владеющих навыками программирования, логику робота можно реализовать с помощью блок-схемы.
LiveTrade (CoFiTe)
Программный комплекс LiveTrade создан разработчиками петербуржской компании CoFiTe. Помимо прочего он включает в себя программное решение для создания торговых роботов — Robotlab. Этот инструмент, как и TSLab, позволяет трейдерам создавать автоматизированные торговые системы с помощью блок-схем в визуальном конструкторе:
После того, как торговая логика приложения реализована с помощью блок-схемы, ее можно запустить в терминале.
TradeMatic
Еще один инструмент, позволяющий создавать торговых роботов с помощью визуального конструктора без программирования как такового. Предоставляет возможность тестирования получившегося робота с помощью встроенного источника исторических данных.
Предусмотрены различные режимы работы торговой системы —от ручного, при которого для исполнения сигналов требуется выставление заявок руками, до полностью автоматического, когда все торговые сигналы сразу исполняются, не требуя участия трейдера.
SmartCOM
Открытый интерфейс торговой системы ITinvest также позволяет трейдерам создавать торговых роботов разной степени сложности и подключать внешние среды разработки и уже созданные в них торговые системы. Использование компонентной объектной модели позволяет подключать к торговым серверам брокера механические торговые системы, написанные на самых разных языках программирования. Например, C++, любой из.NET языков (C#, VB.NET и другие), Visual Basic, Visual Basic for Application (в частности из Microsoft Excel) и многих других.
Также существует дополнительный плагин SmartCOM для программного пакета AmiBroker, применение которого облегчает анализ загруженных данных.
MetaStock
Также популярный зарубежный продукт. Система MetaStock содержит обширную библиотеку индикаторов и средств для создания собственных формул. Также предусмотрен простой язык программирования, с помощью дополнительных модулей можно генерировать приказы на покупку и продажу.
Как и Wealth-Lab на российском рынке применяется в связке с торговыми терминалами, функционирующих с помощью дополнительных библиотек. Это может приводить к различным сложностям интеграции, а также негативно влиять на надежность работы получившейся связки.
StockSharp
Бесплатная в базовой версии платформа StockSharp с открытым исходным кодом. На ее основе разработаны продукты для создания торговых роботов.
Как пишут сами разработчики в своей статье на Хабре, проект StockSharp построен по классической модели развития сложного программного обеспечения. В начале создается некая основа (S#.API), и уже с помощью нее создаются надстройки высокого уровня.
В настоящий момент команда S# реализовала полный комплекс программных средств для алготрейдеров — систему сбора и хранения исторических данных (может раздавать данные в режиме сервера), система тестирования на истории, ряд графических компнонентов.
В итоге, фактически за день трейдер может разработать полнофункциональный модуль для подключения к торгам, вывода графической информации и тестирования создаваемой стратегии на исторических данных.
Quik
Название системы — сокращение от Quickly Updatable Information Kit (Быст-обновляемая информационная панель). Изначально Quik являлся информационной системой, «фишкой» которой была высокая скорость доставки данных, однако впоследствии продукт эволюционировал. До версии 6.4 в Quik предоставлялся встроенный скриптовый язык Qpile. Он обладал небольшим набором возможностей по сравнению с языками высокого уровня (C# или C++) и использовался главным образом для автоматизации простых торговых стратегий.
К его плюсам можно отнести простоту использования, удобный доступ к данным из торгового терминала и общую интегрированность с ним, привлекала трейдеров и возможность пошаговой отладки алгоритмов в терминале. Однако были и существенные минусы — например, невозможность тестирования стратегии на исторических данных, отсутствие графического интерфейса помимо стандартных таблиц Quik, скорость работы и т.п.
Версии Quik старше 6.4.0 поддерживают скрипты на Lua. Этот язык также встроен в терминал, довольно прост и обладает большей функциональностью, чем Qpile. Поскольку Lua – это интерпретируемый язык, то для работы с его кодом используется специальная библиотека QLua.
TRANSAQ
Популярная на российском рынке система брокерского обслуживания, с помощью которой трейдеры могут получить доступ к торгам на бирже. Инструмент позволяет торговцам получать информацию о текущем состоянии дел на рынке, выставлять приказы на покупку и продажу финансовых инструментов вручную, а также создавать механические торговые системы.
Создавать роботов можно как с помощью подключения к TRANSAQ внешних сред разработки вроде Metastock, Omega, Wealth-Lab, так и при помощи встроенного языка программирования ATF (Advanced Trading Facility). По этому языку есть довольно подробная документация, в которой, помимо прочего, представлены и примеры кода готовых роботов.
Другие материалы по теме финансов и фондового рынка от ITI Capital:
- Инструмент анализа ценных бумаг на западных рынках
- Модельные портфели для инвестиций в зарубежные и отечественные акции
- Аналитика и обзоры рынка
- Покупка акций американских компаний из России
Источник: habr.com