Блог им. uralpro
Основные этапы создания автоматических торговых систем сформулировал Michael Halls-Moore на своем сайте www.quantstart.com. Я присоединяюсь к его советам и рекомендациям — по текстам на сайте видно, что автор действительно занимается практической работой по алготрейдингу.
Автоматическая торговля это чрезвычайно сложная область биржевых финансов. Значительное время может занять получение необходимых знаний для создания вашей собственной стратегии. Также потребуется неплохие навыки в программировании, как минимум на таких языках, как MATLAB, R или Python. В связи с постоянным ростом частоты сделок технологические аспекты торговли тоже становятся очень важны. Это требует изучения языков программирования C/C++.
Автоматическая торговая система состоит из следующих основных компонентов:
Сначала рассмотрим, как найти торговую стратегию.
Идентификация стратегии
Любое создание торговой системы начинается с периода исследований. Этот процесс включает в себя разработку стратегии, оценку, насколько эта стратегия подходит к вашему портфелю уже существующих алгоритмов, получение необходимых данных для теста и попытки оптимизации стратегии по наибольшей прибыльности или наименьшему риску. Также нужно определить требования к капиталу, необходимые для воплощения, насколько велики будут биржевые комисии и как они повлияют на прибыльность.
Несмотря на расспространенное мнение, очень легко найти прибыльные стратегии в различных публичных источниках ( uralpro: только на моем сайте есть несколько вполне прибыльных алгоритмов, которые можно довести до практического применения). Академические источники регулярно публикуют теоретические результаты исследований ( впрочем, в большинстве не учитывается влияние торговых комиссий). На финансовых блогах обсуждаются стратегии в деталях. Журналы по трейдингу освещают некоторые стратегии, применяемые фондами.
У вас может возникнуть вопрос, почему частные трейдеры и фирмы обсуждают свои торговые стратегии, тем более, что они знают, чем больше их стратегии будут применяться, тем быстрее они перестанут работать в долгосрочном периоде. Причина в том, что они не раскрывают точные параметры и методы настройки, которые они разработали. Такие оптимизации — это ключевой момент в доведении относительно среднего алгоритма до высоко прибыльного. Фактически, один из лучших способов создать свою собственную, уникальную, стратегию, это найти простые зависимости и затем провести их через свои процедуры оптимизации.
Приведем небольшой список источников для поиска торговых идей:
Множество стратегий, которые вы найдете, попадут в категории возврата к среднему и трендследящим/импульсным алгоритмам. Стратегия возврата к среднему пытается эксплуатировать тот факт, что существует долговременное среднее временной серии ( такой как спред между двумя кореллироваными активами) и краткосрочные отклонения от этого среднего всегда возвращаются к нему. Импульсные стратегии основаны на существовании факта продолжении движения цены актива в том же направлении что и прошлое движение — импульс, что может быть объяснено психологией инвесторов и структурой больших фондов, предпочитающих «оседлать тренд».
Другой очень важные аспект автоматического трейдинга это частота торговой стратегии. Низкочастотный трейдинг (LFT) обычно ассоциируется со стратегиями, которые удерживают позиции дольше, чем одни тороговый день. Соответственно, к высокочастотному трейдингу (HFT) относятся стратегии, торгующие внутри дня. Ультра-высокочастотный трейдинг (UHFT) характеризует стратегии, удерживающие позиции в течении секунд или миллисекунд. Частный трейдер может разрабатывать HFT и UHFT стратегии, при условии детального понимания микроструктуры рынка и технологических особенностей биржевых торгов.
Когда стратегия, или набор стратегий, определены, их необходимо протестировать на прибыльность на исторических данных. Это область бэктестинга.
Тестирование стратегий
Цель тестирования состоит в получении доказательств, что стратегия, найденная с помощью выше описанного процесса, прибыльна на исторических данных — как на тренировочной, так и на тестовой выборке. Это определяет ожидание того, как алгоритм поведет себя в реальной торговле. Тем не менее, тестирование не гарантирует успех, по нескольким причинам. Возможно, это наиболее тонкая область в создании алгоритма, в связи с множеством различных несоответствий, которые должны быть тщательно выявлены и устранены.Мы рассмотрим основные типы несоответствий, включая заглядывание вперед, подгонка под исторические данные и т.д. Другой важный аспект тестирования включает доступность и чистоту исторических данных, влияющие на реалистичность учета транзакционных издержек и на устойчивость платформы бэктестинга.
После идентификации стратегии необходимо получить исторические данные по которым будет производиться тестирование и, возможно, настройка. Существует большое количество поставщиков данных по всем классам активов. Их стоимость в общем зависит от качества, глубины и частоты данных. Традиционно для начинающих трейдеров использовать бесплатные данные с Yahoo Finance и Google Finance.
Основные проблемы исторических данных состоят в их аккуратности/чистоте и учете корпоративных особенностей, таких как дивиденты и сплиты акций:
В порядке проведения процедуры тестирования необходимо использование программной платформы. У вас есть выбор между специальным софтом, как например, Tradestation, числовой платформой, как Эксель или МATLAB, или полностью самописной программой на языках программирования, таких как Python и C++. Мы бы не советовали пользоваться Tradestation, Excel или MATLAB, а использовать собственную платформу по следующим причинам. Одним из преимуществ такого подхода является глубокая интеграция тестовой и исполнительной части, особенно для очень продвинутых статистических стратегий. Для HFT старетгий общепринято использование самописного программного обеспечения.
При тестировании стратегии нужно определить, насколько хорошо она работает. Индустриальным стандартом метрик для автоматических стратегий являются максимальная просадка и коэффициент Шарпа. Максимальная просадка характеризует наибольшее падение кривой эквити за определенный период времени ( обычно год). Чаще всего измеряется в процентах. LFT стратегии имеют тенденции к большим просадкам, чем HFT стратегии, в связи с меньшим числом статистических факторов. Исторический бэктест покажет максимальную прошлую просадку, которая будет служить ориентиром для будущей производительности стратегии. Вторая метрика это коэффициент Шарпа, который эвристически определен как среднее превышение приращений прибыли деленное на среднеквадратичное отклонение приращений прибыли. Здесь превышение определяется как разница прибыли стратегии и определенного эталона, за который обычно принимается индекс S&P500. Отметим, что просто годовая доходность обычно не применяется, так как не учитывает волатильность стратегии (в отличие от коэффициента Шарпа).
В следующей части рассмотрим разработку системы исполнения, риск-менеджмент и подведем общие итоги.
Стратегии, алгоритмы и программы автоматической торговли смотрите на моем сайте — www.quantalgos.ru