Создание роботов для трейдинга. Что нужно знать новичку?

Создание роботов для трейдинга.

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

  1. Введение. Человек – не машина.
  2. Какие бывают торговые роботы.
  3. Купить или создать самому.
  4. Где черпать идеи для торгового робота.
  5. Стадии создания торгового робота
  6. Затраты на создание и эксплуатацию
  7. Заключение

Начни пользоваться ATAS абсолютно бесплатно! Первые две недели использования платформы дают доступ к полному функционалу с ограничением истории в 7 дней.

Попробовать ATAS бесплатно

Введение. Человек – не робот.

Как обычно начинается путь трейдера? Он с воодушевлением приступает к обучению – читает статьи, смотрит видео ролики для трейдеров, загружает программы, применяет полученные знания на практике. И потом понимает, что торговля на бирже предоставляет не только богатые возможности для заработка, но и бесконечные шансы совершить ошибку (как преодолеть полосу убытков).

“Errare humanum est – Человеку свойственно ошибаться”. Римский ритор Луций Анней Сенека.

Ошибки трейдера, как человека:

  1. Механические. В 2014 году трейдер компании Mizuho Securities случайно разместил заявки на покупку размером более 600 миллиардов долларов на японском фондовом рынке; цена и объем данных были введены в одном столбце. К счастью, большинство заказов не было выполнено до того, как они были отменены.
  2. Аналитические. “Ой, не правильно оценил силу и слабость рынка. Не заметил важный уровень!”
  3. Организационные. “Ах, отлучился в момент выхода новостей. Опоздал к открытию сессии, пробки были”.
  4. Психологические. Вообще отдельная тема.

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

Чтобы преодолеть ошибки, трейдер удваивает и утраивает усилия. Ему требуется уже больше времени, чем нормальный рабочий день. Это приводит к хронической усталости, апатии и депрессии. Трейдер выгорает.

Так возникает идея – нанять на работу робота.

Мысль здравая, хоть и не нова. Первая концепция автоматизированной торговой системы была представлена Ричардом Дончианом в 1949 году, когда он составил программируемый набор правил для покупки и продажи акций.

В те годы роботы были фантастикой, но сегодня они уже прочно вошли в биржевую индустрию. Как следует из доклада специалистов Центрального банка РФ, в 2018 году на Московской бирже половина все сделок совершены программными алгоритмами.

Почему роботы завоевывают рынки? А кто как не робот сможет:

  1. собрать гигабайты данных (сезонность, политика, финансовые отчеты, складские запасы продукции, безработица)
  2. за секунды сделать анализ по запрограммированным алгоритмам
  3. выдать четкий результат: покупать или продавать.

Кроме того, робот, в отличие от человека, не подвержен сомнениям из-за прошлых неудач. Он не входит в сделку, когда ему скучно. Он не доказывает рынку свою правоту. Он не отвлекается на соцсети. И ему не нужен перерыв на ланч.

2. Какие бывают торговые роботы.

Современный рынок предлагает готовых торговых роботов, на разный вкус и кошелек.

По уровню сложности, роботы могут быть:

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

По степени автоматизированности роботы бывают:

  • Полный автомат. Сам анализирует рынок, сам открывает сделку, сам закрывает.
  • Полуавтомат. Среди них – ассистенты, в задачи которых входит постановка стопа и тейк-профита. Такие роботы сокращают время трейдера при ручном управлении большими портфелями, помогают сэкономить время и снизить риск нажатия “не той кнопки”.

По частоте исполнения:

  • Обычная частота совершения сделок. Такие роботы торгуют не чаще, чем обычный трейдер-человек. Их алгоритмы часто основаны на классических индикаторах, моделях поведения цены и объема.
  • Высокочастотные. Торговые роботы HFT (high-frequency trading) покупают и продают позиции в течение долей секунды. По оценкам на 2009 год, HFT торговля занимала 60-73 % от всего объема сделок на рынках США, в 2012 году эта доля упала примерно до 50 %.
    Сложный анализ фундаментальных факторов в задачи HFT роботов не входит. Они нацелены на то, чтобы, например, двигать цену в определенном направлении, собирать ликвидность, формировать ложные фигуры и паттерны, удерживать ценовые уровни, торговать импульс.

3. Купить или создать самому.

Купить готовый торговый алгоритм или приступить к разработке собственного?

Плюсы покупки готового робота:

  • экономия времени;
  • доступно для новичков. Продавец робота обычно оказывает содействие в решении проблем при установке робота.

Минусы покупки готового робота:

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

Альтернативная идея – создать своего собственного торгового робота “с нуля”.

Плюсы:

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

Минусы:

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

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

4. Где черпать идеи для торгового робота.

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

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

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

График для торговли робота

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

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

График для торговли робота

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

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

Трейдинг для робота

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

Эта простая но нестандартная идея основана на визуальном распознавании паттернов, она может быть положена в основу торгового алгоритма. Хотите что-нибудь особенное? Скачайте ATAS, и найдите свою уникальную идею торговли.

5. Стадии создания торгового робота

Рассмотрим процесс создания робота “с нуля”. Не будем учитывать специфику рынков, платформ, бирж. Базовая схема такова:

  1. Все начинается с идеи. Вы замечаете характерный паттерн, который регулярно повторяется на вашем рынке, и понимаете, что он интересен с точки зрения потенциала получения прибыли в долгосрочной перспективе.
  2. Ручное тестирование. Вы формулируете условия входа/выхода, и исследуете, как они работают на графиках предыдущих сессий. Желательно рассмотреть как можно больше дней, включая периоды разной волатильности. Записывайте результаты каждого дня в таблицу. Если вы получили положительную сумму и убедились в работоспособности идеи – подключаем программиста.
  3. Создание техзадания. Ищите программистов, которые хотя бы опосредованно имеют представление о биржах, потоках ордеров, порядке сведения ордеров и прочих биржевых премудростях. Вы находите такого исполнителя, даете ему конкретные инструкции, и ждете вашего робота.
  4. Бек-тестирование и оптимизация. Получив робота, начинаем его тестирование на истории. Загружаем в торговый алгоритм максимум подробных исторических данных (найти тиковую историю торгов может быть непросто). Меняя настройки робота, находим оптимум, при котором робот обеспечивает лучший результат при допустимых потерях.
  5. Фронт-тестирование. Проверка боем. Робот входит в торги на небольшом объеме. Будьте готовы, что результаты торговли на “живом” рынке могут оказаться хуже. Как вариант, такая ситуация является следствием недостаточного тестирования алгоритма на истории.

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

6. Затраты на создание и эксплуатацию

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

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

Более надежный шаг – сотрудничество с биржей. Тут 2 варианта:

  • Установка робота на компьютерных мощностях, которые базируются в биржевых дата-центрах
  • Установка собственного оборудования в центре обработки информации. Такая услуга называется Co-location и предусматривает дополнительные расходы. Так, например, Московская биржа предоставляет возможность разместить у себя ваше оборудование мощностью не более 500 Вт за 20 000 рублей ежемесячно (смотреть все тарифы).

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

Но такие роботы самые эффективные, потому что от скорости подачи заявок на биржу будет зависеть возможность двигать рынок. Им открываются возможности обогнать практически все удаленные алгоритмы, которые также ориентируются на поток ордеров и стакан. Алгоритм, работающий как можно ближе к ядру биржи, имеет преимущество. Он успевает “выдергивать” из стакана самые “вкусные” цены в то время как остальные получают проскальзывание.

7. Заключение

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

В то же время, если вы ваш робот нацелен не биться с другими роботами, а помогать вам торговать – это более легкий путь. Такой алгоритм может:

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

Другие статьи блога: