ITI Capital
563

Как написать торгового робота

В последние несколько лет тема автоматизированных систем для торговли на бирже довольно популярна. Но без надежного наставника новичку это точно не по зубам. Как создать торгового робота, избежать ошибок и не потратить все деньги? Обо всем по порядку.

В закладки

Как создать робота

Существует несколько вариантов создания роботизированного софта для торговли на бирже:

#1 – создать робота для работы на прямом подключении

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

#2 – подключиться к брокерской торговой системе по API.

Некоторые брокеры позволяют подключать внешний торговый софт к своим торговым системам по специальным интерфейсам. У нас в ITI Capital это можно делать с помощью API SMARTcom. В этом случае роботы могут быть достаточно сложными.

#3 – автоматизировать операции напрямую в торговом терминале.

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

Третий вариант, как видите, самый простой. И сейчас поговорим о нем подробнее.

Как это работало раньше

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

Меню для подключения Excel в одном из торговых терминалов прошлого поколения

Также распространенной практикой среди трейдеров было подключение к своим терминалам мощных систем технического анализа и разработки роботов вроде WealthLab и MetaStock. В таких случаях интеграция обычно осуществляется с помощью дополнительных библиотек.

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

Как это работает теперь: изучаем язык TradeScript

Самый простой способ создать несложного торгового робота сегодня – использовать терминал SMARTx.

В нем есть специальный плагин с конструктором торговых роботов TradeScript. С помощью простого, но довольно мощного скриптового языка трейдеры могут создавать механические системы разного уровня сложности. Язык был изначально предназначен для разработки торговых роботов, он довольно прост в изучении, а многие алгоритмы схожи по написанию с MetaStock, что облегчает работу пользователям, знакомым с этим программным пакетом.

Главный плюс TradeScript – у вас нет необходимости создавать сложные конструкции и использовать различные коннекторы, чтобы передавать приказы в торговый терминал. Конструктор роботов встроен в 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 поставляется и модуль бэктестинга.

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

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

Что еще: тестовый доступ, чтобы все проверить

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

Вполне может быть, что у вас остались вопросы о том, как создать и использовать торгового робота. Отлично, если так. Мы всегда рады общению. До встречи в комментариях.

#алготрейдинг #hft #iti_how_to #инвестиции #биржа

{ "author_name": "ITI Capital", "author_type": "editor", "tags": ["\u0438\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u0438","\u0431\u0438\u0440\u0436\u0430","\u0430\u043b\u0433\u043e\u0442\u0440\u0435\u0439\u0434\u0438\u043d\u0433","iti_how_to","hft","3","2","1"], "comments": 3, "likes": 10, "favorites": 5, "is_advertisement": false, "subsite_label": "iticapital", "id": 68055, "is_wide": false, "is_ugc": false, "date": "Mon, 20 May 2019 16:33:49 +0300" }
{ "id": 68055, "author_id": 191609, "diff_limit": 1000, "urls": {"diff":"\/comments\/68055\/get","add":"\/comments\/68055\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/68055"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 191609, "last_count_and_date": null }

3 комментария 3 комм.

Популярные

По порядку

0

Что-то здесь не очень людно), все-таки, видимо, тема уже не в тренде. Кстати как раз сейчас пилю связку со SmartCOM - первая подобная система, с которой я смог разобраться - не сложная и документация понятная. Да и ручной терминал SmartX приятный тоже).

Ответить
0

ну так никаких роботов тут и нет. чистый кликбейт

Ответить
0

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

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Команда калифорнийского проекта
оказалась нейронной сетью
Подписаться на push-уведомления
{ "page_type": "default" }