Хороший ликбез взятый с одного сайта. Много букв только:
"В этой статье я собираюсь представить вам некоторые фундаментальные понятия, относящиеся к количественным (quantitative) торговым системам. Надеюсь, этот пост будет полезен людям, которые хотят попробовать наладить свой собственный «розничный» бизнес алгоритмической торговли.
Количественная торговля – это область количественных (quant) финансов. Требуется громадный опыт в программировании, по крайней мере, на таких языках как MATLAB, R или Python. Однако, когда возрастает частота торговых стратегий, технические аспекты становятся более значимыми (знакомство с C/C ++).
Система количественной торговли состоит из четырех основных компонентов:
- Идентификация стратегии – нахождение стратегии, разработка преимущества и выбор торговой частоты.
- Бэктестирование стратегии – получение данных, анализ результатов стратегии и устранение смещений (bias).
- Система исполнения – соединение с брокером, автоматизация торговли и уменьшение операционных издержек.
- Управление рисками – оптимальное распределение капитала, «размер ставки»/ критерий Келли и психология торговли.
Начнем с того, что посмотрим как происходит идентификация торговой стратегии.
Идентификация стратегии
Все процессы количественной торговли начинаются с первоначального периода поиска. Этот процесс поиска включает в себя нахождение стратегии, проверку того, вписывается ли стратегия в портфель ваших уже работающих стратегий, получение любых данных, необходимых для проверки стратегии и попытки ее оптимизации для получения более высокой прибыли и/или уменьшения риска. Вам будет нужно учитывать такие факторы, как ваши собственные требования к капиталу (если будете запускать стратегию в качестве «розничного» трейдера) и влияние на стратегию любых операционных издержек.
В отличие от широко распространенного мнения, на самом деле довольно просто найти выгодные стратегии в различных открытых источниках. Научные сотрудники регулярно публикуют теоретические результаты торговли (хотя и в основном без операционных издержек). В блогах по количественным финансам стратегии подробно обсуждают. В экономически журналах некоторые стратегии, используемые фондами, описываются в общих чертах.
Вот небольшой список, с которого можно начать искать идеи для стратегии:
Исследовательская сеть общественных наук - www.ssrn.com
Архив по вычислительным финансам - arxiv.org/archive/q-fin
Ядерные финансы - www.nuclearphynance.com
Вычислительность - quantivity.wordpress.com
Многие стратегии, которые вы рассмотрите, попадают в категории возврата к среднему(mean-reversion) и следование тренду/импульсу (momentum). Стратегия возврата к среднему является одной из тех, которые пытаются использовать факт, что существует долгосрочное среднее на «последовательности цен» (такой как спрэд между двумя коррелироваными активами), и что краткосрочные отклонения от него в конечном счете приведут к возврату. Стратегия импульса пытается использовать как психологию инвестора, так и структуру больших фондов, «поймав попутку» на тенденции рынка, который может наращивать темп в одном направлении, и следовать за сложившейся тенденцией, пока она полностью не изменится.
Другим чрезвычайно важным аспектом количественной торговли является частота торговой стратегии. К низкочастотной торговле (Low frequency trading, LFT), как правило, относится любая стратегия, которая держит активы дольше, одного операционного дня. Соответственно, к высокочастотной торговле (high frequency trading, HFT) – стратегии, которые держат активы в пределах операционного дня. К сверх-высокочастотной торговле (Ultra-high frequency trading, UHFT) относятся стратегии, которые держат активы несколько секунд или миллисекунд. Для розничной торговли, конечно, можно использовать HFT и UHFT, но только с доскональным знанием торгового «стека технологий» и динамики книги заявок. Мы не будем подробно обсуждать эти аспекты в вводной статье.
Как только стратегия (или набор стратегий) идентифицирована, она теперь должна быть проверена на прибыльность на исторических данных. Это область бэктестирования.
Бэктестирование стратегии
Цель бэктестирования состоит в представлении свидетельств того, что стратегия, выбранная согласно вышеописанному процессу, выгодна при использовании как исторических, так и проверочных данных. Это поможет узнать предполагаемое поведение стратегии в «реальном мире». Однако бэктестирование по различным причинам не является гарантией успеха. Это, возможно, самая тонкая область количественной торговли, поскольку влечет за собой многочисленные ошибки, которые нужно тщательно рассмотреть и по максимуму устранить. Другие важные области бэктестирования включают в себя доступность и точность исторических данных, факторинг при реальных операционных издержках и решение выбрать здравую платформу бэктестирования. Мы обсудим операционные издержки далее в разделе «Система исполнения».
Как только стратегия идентифицирована, необходимо получить исторические данные, по которым можно выполнить тестирование и, возможно, оптимизацию.
Главные проблемы, возникающие при работе с историческими данными, включают точность/чистоту:
- Точность относится к общему качеству данных – наличию ошибок. Ошибки иногда можно легко идентифицировать, например, фильтром резкого роста, который ищет неправильные «пики» в данных и исправляет их. В других случаях такие ошибки бывает очень трудно выявить. Часто необходимо иметь два или более поставщика, а затем, сравнивая, проверять все их данные.
Чтобы выполнить процедуру бэктестирования, необходимо использовать программную платформу или на работать на встроенном тестере как МТ4. У вас есть выбор между специальным программным обеспечением для бэктестирования (Tradestation), цифровой платформой (Excel или MATLAB), или полной клиентской реализацией на языке программирования (Python или C++).
Когда выполнено бэктестирование, система должна быть в состоянии измерить качество получаемых результатов. Система показателей «отраслевого стандарта» для количественных стратегий – это максимальная просадка и коэффициент Шарпа. Максимальная просадка характеризует самый большой спад от верхней до нижней точки отчетной кривой эквити за определенный период времени (обычно год). Чаще всего он измеряется в процентах. Стратегии LFT имеют тенденцию к большей просадке, чем стратегии HFT, из-за многих статистических факторов. Бэктестирование по историческим данным покажет предыдущую максимальную просадку, что поможет в получении информации о будущей просадке стратегии. Второй показатель – коэффициент Шарпа, он логически определен как среднее превышения доходности, разделенное на стандартное отклонение этого превышения доходности. Здесь превышение доходности относится к прибыли от стратегии выше предопределенного бэнчмарка, такого как S&P 500 или 3-месячный казначейский вексель. Заметьте, что пересчитанная на год прибыль обычно не используется в качестве показателя, поскольку она не принимает во внимание волатильность стратегии (в отличие от коэффициента Шарпа).
Как только стратегия прошла бэктестирование и предполагается, что в ней отсутствуют ошибки (насколько это возможно), у нее хороший коэффициент Шарпа и минимизированная просадка, то пора строить систему исполнения.
Системы исполнения
Система исполнения – это средства, с помощью которых список приказов, сгенерированных стратегией, отсылается брокеру и выполняется. Несмотря на то, что торговая система может быть на половину, или даже полностью автоматизирована, механизм исполнения может быть ручным, на половину ручным (то есть «в одно нажатие») или полностью автоматизированным. Для стратегий LFT распространены ручные и на половину ручные методы. Для стратегий HFT необходимо создание полностью автоматизированного механизма исполнения, который часто будет тесно связан с генератором приказов (из-за взаимозависимости стратегии и технологии).
Основные факторы при создании системы исполнения – это интерфейс брокера, минимизация операционных издержек (включая комиссию, проскальзывание и спрэд) и расхождение результатов торговли вживую и результатов бэктестирования.
Есть много способов взаимодействовать с брокерами: от звонка брокеру по телефону до полностью автоматизированного высокоскоростного API (интерфейса программирования приложения, Application Programming Interface). В идеале лучше как можно больше автоматизировать заключение сделок. Это освободит вас для концентрации на исследовательской работе, а также позволит управлять многочисленными стратегиями или даже стратегиями более высокой частоты (фактически, HFT совершенно невозможен без автоматизированного выполнения). Общее программное обеспечение для бэктестирования, обрисованное выше в общих чертах, такое как MATLAB, Excel и Tradestation, хорошо для низкой частоты и для простых стратегий. Однако чтобы торговать с любым реальным HFT, будет необходимо создать внутреннюю систему исполнения, написанную на высокоэффективном языке, таком как C ++. В качестве примера из жизни – в фонде, где я раньше работал, у нас была 10-минутная «торговая петля», куда мы загружали новые данные о рынке каждые 10 минут, а затем заключали сделки, основанные на этой информации. Был использован скрипт на Python. Для данных с минутной или секундной частотой, я считаю, что C/C ++ был бы более подходящим.
Другой важной проблемой, которая относится к системе исполнения, является проблема минимизации операционных издержек. Есть, как правило, три компонента операционных издержек: комиссии (или сборы), которые являются сборами, взысканными брокерами, биржей и Комиссией по ценным бумагам и биржам США (Securities and Exchange Commission, SEC) (или подобным правительственным регулятивным органом); проскальзывание, которое является разницей между тем, как вы собирались заполнить заявку, и тем, как она была фактически заполнена; спрэд, который является разницей между ценой покупки/продажи, по которым торгуется ценная бумага. Заметьте, что спрэд не является постоянным и зависит от текущей ликвидности (то есть доступности заявок покупки/продажи) на рынке.
Последняя важная проблема для систем исполнения касается несоответствия результатов работы стратегии и результатов бэктестирования, что может произойти по ряду причин. Мы уже подробно обсудили предварительные ошибки и ошибки оптимизации при рассмотрении бэктестирования. Однако некоторые стратегии до использования сложно проверить на эти ошибки. В подавляющем большинстве случаев это относится к HFT. Могут быть ошибки как в системе исполнения, так и в самой торговой стратегии, которые не обнаруживаются на бэктестировании, но обнаруживаются при торговле вживую. Возможно, в результате работы вашей стратегии изменилось состояние рынка. Новая нормативно-правовая база, изменения настроения инвесторов и макроэкономические явления могут привести к отклонению поведения рынка и, следовательно, к изменению доходности вашей стратегии.
Управление рисками
Заключительная часть количественной торговли – процесс управления рисками. «Риск» включает в себя все предыдущие ошибки, которые мы обсудили. Он включает технологический риск, например, когда у серверов, размещенных у биржи, внезапно случается сбой жесткого диска. Он включает брокерский риск, когда брокер становится банкротом (это не такое уж безумие, как может показаться, учитывая недавнюю панику с MF Global). Словом, он покрывает почти все, что может повлиять на осуществление торговли, и у чего есть много источников. Целые книги посвящены управлению рисками количественных стратегий, так что я не буду пытаться описать здесь всех возможные источники риска.
Управление рисками также охватывает то, что известно как оптимальное распределение капитала, являющееся частью теории управления портфелем. Это средства, с помощью которых капитал распределяется по различным стратегиям и сделкам в рамках тех стратегий. Это сложная область и основывается на некоторых принципах нетривиальной математики. Отраслевой стандарт, в соответствии с которым связаны дуг с другом оптимальное распределение капитала и плечо стратегий, называют критерием Келли. Поскольку это вводная статья, я не буду останавливаться на его вычислении. Критерий Келли делает некоторые предположения о статистической природе изменений, которые не часто выполняются на финансовых рынках, поэтому трейдеры часто консервативны, когда дело доходит до реализации.
Другой ключевой компонент управления рисками относится к собственному психологическому профилю. Существует много когнитивных искажений, которые могут пробраться в торговлю. Хотя общеизвестно, что для алгоритмической торговли будет лучше, если оставить стратегию в покое! Общая ошибка – «неприятие потери», когда не закрывается проигрышная позиция из-за огорчения, связанного с осознанием потери. Аналогичным образом прибыль берется слишком рано, потому что может быть слишком большим страх перед потерей уже полученной прибыли. Другая общая ошибка известна как «эффект недавнего». Она возникает, когда трейдеры оценивают значение недавних событий выше, чем более ранних событий. И, конечно, классическая пара эмоциональных ошибок – страх и жадность. Они могут часто приводить к недо- или пере-инвестированию, что может стать причиной коллапса (то есть отчетная кивая эквити падает до нуля, или еще хуже – уходит в минус) или причиной уменьшения прибыли.
Резюме
Как можно видеть, количественная торговля чрезвычайно сложная, хотя и очень интересная область количественных финансов. Я только слегка коснулся темы в этой статье, и она уже становится довольно длинной! Целые книги и работы написаны о проблемах, которые я описал выше одним или двумя предложениями. Поэтому прежде, чем устроиться на работу в количественный фонд, необходимо провести существенную исследовательскую подготовительную работу. По крайней мере, вы будете нуждаться в существенных наработках в статистике и эконометрике с большим опытом реализации посредством языков программирования, таких как MATLAB, Python или R. Для более сложных стратегий, стратегий с более высокой частотой, ваши навыки, вероятно, будут включать модификацию ядра Linux, C/C ++, программирование на языке ассемблер и оптимизацию сетевой задержки.
По моему мнению, необходимо по максимуму самостоятельно разрабатывать устройство сбора данных, стратегию бэктестирования и систему исполнения. "