Статьи

Адаптированный перевод[1] статьи интернет-ресурса Towards Data Science. Исходный материал - “Algo Trading 101 for Dummies like Me”. Автор предпринимает попытку описать AlgoTrading в терминах непрофессионала.  Общее знакомство с алгоритмической торговлей. Базовая структура алготрейдинга и его отличия от других видов торговли. Особое внимание уделено толкованию ключевых понятий. Широкий спектр комментариев, отступлений и ссылок на полезные источники от переводчика. 

 

Содержание:

        Математические модели

        Символьные и нечеткие логические (Fuzzy Logic) модели

        Модели дерева решений

        Модели нейронных сетей

        Автоматическое отслеживание полноты позиции

        Распознавание образов и рандомизаторы торговых алгоритмов

        Нарезка и лучшее исполнение ордеров

 

Введение. Алгоритм и торговля акциями

Разделим сочетание “AlgoTrading” на два слова - “Алгоритм” и “Торговля”.  “Торговля/трейдинг” - покупка/продажа акций на фондовом рынке, “Алго”- алгоритм. Если вы уже знаете, что такое алгоритм, можете пропустить дальнейший абзац.

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

Просто.

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

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

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

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

Термины “автоматическая торговля” и “алгоритмическая торговля” нередко используются, как синонимы, но они не тождественны. Различия обсудим в следующем разделе.

 

Алгоритмическая и автоматическая торговля

Automated Trading - абсолютная автоматизация торгов. Решения о покупке и продаже принимаются компьютерными программами. Ордер автоматически создается, отправляется на рынок и исполняется. Автоматический трейдинг широко внедрен хедж-фондами, применяющими собственные торговые алгоритмы, и выходящими на рынок через прямой доступ на биржу, (01)Direct-Market Access (DMA)

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

По сути, алготрейдинг- процесс исполнения ордеров, основанный на созданном алгоритме. Автоматическая торговля делает то же самое, что подразумевает ее название. HFT относится к определенному типу сверхбыстрой автоматической торговли.

 

Вставка переводчика

 

 

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

Постараемся навести некоторый порядок в дефинициях, привлекая ресурсы электронной “Свободной энциклопедии”.

Википедия толкует алготрейдинг, как “Метод исполнения большой заявки (слишком большой, чтобы быть исполненной за раз), когда с помощью особых алгоритмических инструкций большая заявка (parent order) делится на несколько под-заявок (child orders) со своими характеристиками цены и объема и каждая из под-заявок отправляется в определенное время на рынок для исполнения". 

Таким образом, автор Википедии настаивает на том, что алготрейдинг - комплект алгоритмов, цель применения которых, прежде всего, и в основном, состоит в сокрытие истинных намерения трейдера относительно покупаемых/продаваемых объемов ценных бумаг, во избежание давления на рыночную цену инструмента. Теме маскировки торговых объемов посвящена отдельная статья нашего сайта - “Dark Pools. В темноте ликвидности”. 

Косвенное определение автоматической торговли можно найти в другом материале Википедии[2]. Он рассматривает автоматический трейдинг, как торговлю с помощью автоматизированных механических торговых систем, кратко - автоматических торговых систем (АТС) или торговых роботов. В свою очередь, механическая торговая система  (МТС) трактуется, как “Свод полностью формализованных правил открытия, сопровождения и закрытия сделок при торговле на бирже или внебиржевых рынках ценных бумаг”. 

Такие Правила могут отрабатываться вручную, тогда торговля, безусловно, не будет автоматической. Автоматической она становится на АТС/роботах, запускаемых исключительно на алгоритмах.

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

 

Архитектура алгоритмической торговой системы

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

  1. Обработка данных.
  2. Выработка модели.
  3. Исполнение сделки.
  4. Оценка производительности и эффективности торговой системы.

 

1 Алго 101стр ра

 

1. Обработка данных

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

Данные структурированы, если они организованы согласно заранее определенной структуре. Примеры - электронные таблицы (в частности, Excel), файлы CSV, файлы JSON, XML, Databases и Data-Structures. 

Данные, связанные с рынком: внутридневные цены, цены на конец дня и объемы торгов, обычно доступны в структурированном формате. Макроэкономическая информация и финансовые показатели компаний тоже могут подаваться в структурированном виде. Два хороших источника структурированных финансовых данных - Quandl и Morningstar.

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

 

2. Выработка модели

“В сущности, все модели неправильны, но некоторые полезны”

Джордж Бокс, George E. P. Box[3]

 

2 1Алго 101Бокс

Дж. Бокс (1919-2013)

(источник 1)

 

Модель - видение внешнего мира глазами системы алгоритмической торговли. Конечная цель любой модели в алготрейдинге - прогноз поведения рынков: цен, трендов, тенденций[4].

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

Математические модели

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

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

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

Символьные и нечеткие логические (Fuzzy Logic) модели

Символьная логика - форма рассуждений, которая включает в себя оценку предикатов (логических утверждений, выстроенных на логических операторах - AND, OR и XOR[6]) на истинность или ложь. Нечеткая логика ослабляет бинарное ограничение true или false и позволяет любому заданному предикату принадлежать к числу истинных и/или ложных предикатов в разной степени, что отражается в функциях принадлежности[7].

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

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

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

Модели дерева решений

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

Существует два типа деревьев решений: деревья классификации и деревья регрессии. Деревья классификации содержат классы в своих выходных данных (предположим, покупка, удержание или продажа), в то время как деревья регрессии содержат значения для конкретной переменной (допустим, -2,5%, 0%, + 2,5% и т.д.). Характер данных, используемых для обучения дерева решений, определяет, какой тип дерева будет создан. Алгоритмы, применяемые для создания деревьев решений, задействуют C4.5[9] и генетическое программирование.

Как и в случае индукции правил, входные данные в модели дерева решений бывают фундаментальные, технические или статистические[10].

Модели нейронных сетей

Нейронные сети - одна из самых популярных моделей машинного обучения у алгоритмических трейдеров.

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

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

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

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

 

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

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

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

 

3. Исполнение сделки

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

 

4. Оценка производительности и эффективности торговой системы

Искусственный интеллект учится на целевых функциях. 

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

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

 

Примеры применения алгоритмов на рынке

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

Автоматическое отслеживание полноты позиции

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

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

Распознавание образов и рандомизаторы торговых алгоритмов

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

И напротив, рандомизаторы[12], встроенные в алгоритмы трейдера, способны скрыть действительную логику его поведения, и другие участники рынка не смогут эффективно торговать против него. 

Нарезка и лучшее исполнение ордеров

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

Эта функция алготрейдинга заложена в самой его природеприроде. Традиционно parent order дробится на ряд child orders, чтобы избежать нежелательный сдвиг цены в ту или иную сторону.

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

 

Заключение. Алгоритмы меняют мир

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

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

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

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

 

перевод и обработка Владимира Наливайского

 

В основе изложения - материал “Algo Trading 101 for Dummies like Me”, Towards Data Science,  Sangeet Moy Das, 23.06.2019. 

Источник изображения на заставке - SkyLots.

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

Примечания

  1. Под адаптированным переводом понимается достаточно точное следование исходному материалу с возможными отступлениями и пояснениями. Конкретные вещи - формулы, скрипты, графики и пр. (а также комментарии к ним) изложены максимально близко к оригиналу (скопированы). Ответственность за их корректность и ясность интерпретации несет автор исходника. 
  2. Смотрите источник 3.
  3. Джордж Бокс - британский статистик, внесший заметный вклад в такие области как контроль качества, планирование эксперимента, анализ временных рядов и Байесовский метод. Смотрите источник 1.
  4. Предмету моделирования в алготрейдинге посвящен целый ряд публикаций на Rusforexclub. Смотрите, в частности: “Биржевая стратегия и алгоритм”, Моделирование торговых стратегий (Часть 1 и Часть 2). 
  5. О факторах риска (премий) и их влиянии на доходность акций смотрите отдельный материал на Rusforexclub - “Трехфакторная модель Фама-Френча”.
  6. XOR - “исключающее “или”. Подробнее смотрите источник 6.
  7. Подробнее о символьной и нечеткой логике смотрите источники 4 и 5.
  8. Об индукции правил (Rule induction) смотрите источник 7.
  9. Об алгоритме C4.5 смотрите источник 8.
  10. Подробнее о дереве решений смотрите источник 9.
  11. О коэффициенте Шарпа смотрите здесь. Коэффициент Трейнора - источник 10, коэффициент Сортино - источник 11.
  12. Рандомизация (randomization) - создание какого-либо случайного процесса. Смотрите источник 12.

Список источников (Википедия/Wikipedia, если не оговорено иное)

  1. “Бокс, Джордж”.
  2. “Алгоритмическая торговля”.
  3. “Механическая торговая система”.
  4. “Mathematical logic”.
  5. “Fuzzy logic”.
  6. “Исключающее “или”.
  7. “Rule induction”.
  8. “C4.5 algorithm”.
  9. “Дерево решений”.
  10. “Коэффициент Трейнора”.
  11. “Коэффициент Сортино”.
  12. “Randomization”.

 

Используемые сокращения

DMA - Direct-Market Access, прямой доступ на биржу

HFT - High-Frequency Trading, высокочастотный(-ая) трейдинг/трейдер/торговля

АТС - автоматическая торговая система