Яндекс.Метрика
ГлавнаяПостроение системы › Путеводитель по разработке биржевых роботов-2

Путеводитель по разработке биржевых роботов-2

16aaf0

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

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

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

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

Подключиться к брокеру можно разными способами - от телефонных звонков до полностью автоматического программного интерфейса (API). Лучше, если вы хотите автоматизировать исполнение ваших сделок насколько это возможно. Это освобождает вас от последующих разработок, когда вы захотите запускать множество стратегий или даже высокочастотную стратегию. Распространенные программные платформы, такие, как MATLAB, Excel и Tradestation хороши для низкочастотных, простых стратегий. Но  необходимо создавать собственную систему исполнения, написанную на высокопроизводительном языке программирования, таком, как C++, для HFT стратегий.

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

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

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

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

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

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

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

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

Заключение

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

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

uralpro: От себя могу добавить, что даже при условии неплохих навыков в программировании, очень непросто быстро создать правильный "каркас" торгового робота. Скорее всего, хороший программист это сделает, но потратит значительное количество времени. Для его экономии , я на этом сайте предлагаю готового робота robot_uralpro, который, хотя и был прибыльным в прошлом - 2010-2011 годах, имеет все составляющие и современных торговых систем. Также на его основе легко создать бэктест, поэтому приобретение этого робота будет хорошим вкладом в ваше обучение.

2 Комментарии[ Ваш комментарий ]

  1. 2.5 года и хороший каркас готов! 

  2. Да уж, порог входа в эти дела очень высокий. Учитываю то, что я программист, более менее рабочий каркас смог написать с нуля за полгода, работая целеноправленно по 6-8 часов в день.

Сообщение

Обратите внимание: вы можете использоватьHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>