Invest-rating.ru
Поиск

Что такое количественный трейдинг?

Обновлено

Если вы собираетесь работать в качестве количественного трейдера в инвестиционном фонде или хотите построить свой собственный инвестиционный бизнес с использованием алгоритмических торговых систем – эта статья для вас.

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

Вам также потребуется обширный опыт программирования, по крайней мере на языках MATLAB, R или Python; по мере увеличения частоты совершаемых сделок вам нужно будет также изучить языки программирования C и C ++.

Количественная торговая система состоит из четырех основных компонентов:

  • идентификация стратегии (поиск стратегии, обнаружение преимуществ стратегии, определение частоты торговых операций);
  • бэктестинг стратегии (получение исторических данных, анализ эффективности алгоритма и устранение системных ошибок (Bias);
  • система исполнения заявок (соединение алгоритма с брокерским счетом, автоматизация торговли и минимизация транзакционных издержек);
  • управление рисками (оптимальное распределение капитала, величина ставки / критерий Келли, а также применение психологии торговли);

Идентификация стратегии


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

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

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

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

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

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

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

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

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

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

После этапа идентификации стратегии, необходимо проверить ее прибыльность, протестировав на исторических данных. Данный процесс носит название — бэктестинг.

Бэктестинг торговой стратегии


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

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

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

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

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

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

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

Существует большой выбор программного обеспечения для бэктестинга. Можно использовать такие платформы, как Metatrader, Tradestation или NinjaTrader. Из не менее популярных платформ можно назвать Excel и MATLAB, или программные продукты на языке программирования Python или C ++.

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

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

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

Второй показатель — это коэффициент Шарпа, который рассчитывается как среднее значение избыточной доходности стратегии, деленное на стандартное отклонение ее избыточной доходности. За избыточную доходность берутся результаты стратегии, которые выше доходности заранее выбранного эталона, такого как индекс S&P 500. Следует обратите внимание, что годовая доходность стратегии не рассматривается как эффективный показатель торговой стратегии, поскольку не учитывает волатильность стратегии за указанный промежуток времени.

Система исполнения


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

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

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

Существует множество способов взаимодействия с брокерской компанией, начиная от заявки на исполнение по телефону до полностью автоматизированного высокоскоростного API (интерфейса программирования приложения, Application Programming Interface)..

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

Наиболее распространенное программное обеспечение для бэктестинга, как MATLAB, Excel, Tradestation или Metatrader, лучше всего подходит для более простых низкочастотных стратегий.

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

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

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

Транзакционные издержки включают в себя три основных компонента:

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

Следует обратить внимание, что спред не является постоянной величиной и зависит от текущей ликвидности финансового инструмента.

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

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

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

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

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

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

Управление рисками


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

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

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

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

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

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

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

Краткое резюме


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

Как минимум, вам понадобятся знания в статистике и эконометрике, а также большой опыт программирования на MATLAB, Python или R.

Для более сложных высокочастотных стратегий, ваш набор навыков должен включать знания Linux, C / C ++.

Виктор Ромейн, специально для Invest Rating