Как разработать алгоритмическую торговую стратегию — Кевин Дж. Дэйви

 

Как разработать алгоритмическую торговую стратегию

Кевин Дж. Дэйви

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

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

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

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

Примечание редакции: алгоритмическая торговля не обязательно использует ИИ. Автоматизация сама по себе не устраняет рыночный риск и не гарантирует положительного результата.

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

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

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

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

Разработка собственной стратегии может казаться сложной задачей. Её легче разбить на этапы, когда вы понимаете, какой подход хотите использовать. Знакомство с распространёнными типами стратегий поможет выбрать основу для своей системы:

  • возврат к среднему;

  • импульсная торговля;

  • арбитраж;

  • статистический арбитраж;

  • маркетмейкинг;

  • скальпинг;

  • ребалансировка индекса.

Рассмотрим эти подходы подробнее.

Возврат к среднему

Такая стратегия стремится использовать отклонения цены: покупать активы, когда они недооценены, и продавать, когда переоценены.

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

Импульсная торговля

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

Арбитраж

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

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

Маркетмейкинг

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

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

Скальпинг

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

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

Ребалансировка индекса

Стратегии этого типа связаны с приведением весов компонентов индекса в соответствие с его составом.

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

Какой подход подходит частному алготрейдеру

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

Если вы хотите начать заниматься алгоритмической торговлей, я бы сосредоточился на возврате к среднему и импульсной торговле — следовании за трендом. Предпочтительнее более длительные интервалы: часы, дни и недели, а не секунды.

Как разработать свою стратегию

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

Выберите рынок и таймфрейм

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

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

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

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

Определите и срок удержания позиции. Одни алготрейдеры держат её несколько секунд, другие — часы или дни.

Разработайте торговые идеи

Идеи можно строить на техническом анализе, фундаментальном анализе или их сочетании.

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

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

Проведите бэктестирование

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

Для этого используют программы, которые воспроизводят сделки по заданным правилам. Такая проверка не является торговлей на реальные деньги. Подробнее различия объясняет материал TLAP о бэктестировании, форвардном тестировании и walk-forward-анализе.

Автор называет среди платформ для тестирования MetaStock, TradingView и TradeStation. Для работы с различными мировыми рынками он предлагает рассмотреть QuantShare.

Примечание автора: бэктестирование — самая трудная часть процесса. По моим оценкам, около 90% трейдеров проводят его неправильно. В своём практикуме я обучаю проверенному подходу к тестированию. Это оценка автора, а не установленная статистика.

Проверьте стратегию без реальных денег

После бэктеста переходите к paper trading — моделированию сделок на поступающих рыночных данных без реальной покупки или продажи активов.

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

Перейдите к реальной торговле

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

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

Двухминутный график @MES из статьи Кевина Дэйви

 

Иллюстрация из оригинала: двухминутный график @MES. Сама по себе она не доказывает эффективность какой-либо стратегии.

Зачем нужны основы программирования

Чтобы реализовать алгоритмическую стратегию, полезно владеть основами программирования. Автор упоминает BASIC, C++, Python и производные от них языки. C и C++ могут оказаться сложнее для человека, который ещё с ними не знаком.

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

Для количественных исследований и мониторинга автор выделяет Python. Для статистического анализа можно использовать R. Выбирать язык следует с учётом удобства работы с ним и возможностей торговой платформы.

Чего следует избегать при разработке

Знать правильные шаги важно, но не менее полезно понимать распространённые ошибки.

Переобучение и подгонка под историю

Переобучение, или overfitting, возникает, когда модель слишком тесно подстроена под набор данных, на котором её создавали. На данных вне выборки результат может оказаться слабым: алгоритм плохо переносит выявленные зависимости на другие условия.

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

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

Отсутствие диверсификации

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

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

Отсутствие управления рисками

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

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

Чрезмерная торговая активность

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

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

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

Несоблюдение собственных правил

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

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

Разработка стратегий без лишних хлопот

Автор предлагает помощь KJ Trading Systems в разработке и внедрении алгоритмических систем. При этом основная мысль остаётся прежней: не подгонять стратегию слишком узко под отдельный набор данных.

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

Об авторе

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

Он написал Building Algorithmic Trading Systems: A Trader’s Journey From Data Mining to Monte Carlo Simulation to Live Trading (Wiley, 2014) и ещё пять книг об алгоритмической торговле. Кевин ведёт практикум Strategy Factory для начинающих алготрейдеров.

© Кевин Дэйви и KJ Trading Systems. Перепечатка статьи разрешена при сохранении блока об авторе.

Переведено для TLAP.

От идеи к проверке — редакция TLAP. Какой подход вы бы формализовали первым: возврат к среднему или следование за трендом? Опишите условия входа, выхода и допустимого риска, затем проверьте правила. Для ручного разбора идеи на истории можно использовать симулятор рынка TLAP — он не заменяет автоматический бэктест кода. Ещё до запуска полезно определить, когда прекращать торговлю по неработающей системе. Поделитесь в обсуждении, на каком этапе ваша идея перестала выглядеть убедительно: на истории, на демо или уже в реальной торговле.