Первую часть интервью смотрите здесь.
Что нужно учесть при запуске стратегии в производство?
Новичкам нужно обратить внимание на соответствие «реальному миру» — на нюансы типа дней экспирации и праздников. Когда вы калибруете систему на исторических данных, можно допускать аппроксимацию без таких дней. Но когда вы переходите к реальной торговле, то не можете быть небрежным, все должно быть максимально точно.
Другой аспект заключается в том, что скорость критична. Я не могу рассчитывать модель в реальном времени (градиентный поиск очень медленный), поэтому нужно все сократить до линейных аппроксимаций изменений. Все это влечет за собой много матричных манипуляций.
Обычно создается исполнительный прототип, который делает все правильно, но не очень эффективно. Затем я поручаю моим сотрудникам-инженерам сделать производительную версию стратегии на языке Python или даже С, используя библиотеки для реального рынка, которые они создавали и совершенствовали годами. И эта версия подключается к моей торговой системе, для запуска данной стратегии «в бой».
Далее я начинаю зарабытывать деньги на этом алгоритме.
Как много времени занимает весь этот процесс?
Обычно это месяцы работы для запуска новой стратегии — и это только для стратегий, которые действительно работают. Большинство не работает. И даже успешные стратегии имеют время жизни около пары лет, перед тем, как их будут арбитражить, в результате чего они перестанут приносить прибыль. Таким образом, весь процесс разработки повторяется все время. Приходится пересматривать подход к торговле каждые несколько лет.
Тревожит ли вас, что возможности торговли на основе моделей, которые вы пытаетесь реализовать, исчезнут навсегда?
Конечно. По моему опыту любая такая возможность исчезает. Один из самых больших вызовов в моделировании — это определить, когда конкретная модель устарела. Любая модель может терять деньги в некоторые дни и даже недели. И очень сложно распознать, когда потери это часть стратегии, которая все еще работает, а когда они сигнализируют о смерти модели.
Где вы берете идеи для новых стратегий?
Везде, где можно! Но есть несколько источников, которые я просматриваю особо тщательно.
Во-первых, маркетдата. Если у вас есть новый или ранее неизвестный источник данных, который каким-либо образом предсказывает рынок, то это самый легкий путь для генерации идеи. Сегодня существует множество новых источников: стартапы, собирающие новые наборы данных; аналитические компании со своими индикаторами; большие корпорации, предоставляющие данные, которые мы можем исследовать; и такие аггрегаторы, как Quandl, чтобы собрать эти данные вместе. Я постоянно в поиске интересных, необычных и предсказывающих наборов данных.
Во-вторых, рынок сам по себе. Банкиры всегда заинтересованы в новых инструментах, и они обычно способствуют появлениям новых неэффективностей. Если вы держите палец на пульсе рынка, то легко найдете возможности для моделирования, которые менее обученные участники рынка могут упустить.
В-третьих — глобальные паттерны. История может не повторяться, но определенно идет в ногу. Например, если вы хотите торговать процентную кривую США, японский рынок — богатый источник идей, Япония прошла через нулевые процентные ставки за годы до Америки. Фактически, я построил очень успешную модель на американском рынке гособлигаций, основываясь чисто на поведении японских облигаций десятью годами ранее.
В-четвертых, аналогии. Некоторые лучшие сделки происходили, потому что я переключил мышление с режима А в режим Б. Разные классы активов имеют разные степени сложности: вы можете арбитражить эту разницу.
В-пятых, держите глаза и уши открытыми. Мир — это очень неэффективное место: если вы любознательны и все время спрашиваете «почему/почему нет?», вы всегда обнаружите возможности.
Вы говорили, что используете множество инструментов - Mathematica, Matlab, Python, Excel, C. Это намеренный выбор?
Конечно. Разные стадии процесса требуют разных инструментов. Я буду идиотом, если построю реальную «боевую» систему в Excel, или символьные операции в Python. Не то что бы нельзя это сделать, но есть более лучшие инструменты для этих задач.
Как вы управляете потоком данных во всех стадиях процесса и инструментах?
В начале, при работе над доказательствами идеи, стилизованные данные вполне подходят. Но при приближении модели к выпуску в производство, требуется больше отобранных и «реальных» данных. Есть целая отдельная инфраструктура для обработки и хранения данных, о которой я не буду говорить здесь, но она необходима.Самая лучшая модель ничего не покажет, если входные данные некорректные. Никакие ваши способности не смогут помочь, если у вас нет хороших данных.
В следующей части мы опубликуем ответы на вопросы читателей.
Продолжение и другие статьи по алгоритмической торговле смотрите на моем сайте — www.quantalgos.ru
Я не занимаюсь алготрейдингом, это лишь взгляд со стороны. И все же. Я считаю, что это общее заблуждение, которое бытует вообще в девелопменте. Надо наоборот стремиться сузить круг инструментов до минимума. Каждый инструмент, требует изучения, Вы просто теряете огромное количество времени на изучение, а в итоге, получаете экономию на спичках, не стоит оно того. Если есть возможность не использовать что-то, надо это не использовать. Иногда просто выбора нет.
И кстати, Вы говорите про mathematica, mathlab и даже excel как об «инструментах», Вы что, серьезно чтоли? Теперь любая секретарша может писать роботов?
Да и вообще, как соотносится Ваша «аргументация» с тем что я сказал, непонятно, Вы о чем то о своем, видимо.
А какие проблемы с символьными операциями в пистоне? Не могли бы Вы привести пример? Регулярные выражения не подходят для этого?
И какие по вашему перспективы у трейдеров вообще? Ведь недавно прошла новость что одну из крупнейших бирж CME закрыли… торговля в питах уходит в прошлое.
мне кажется, что инструмент часто откатывает, эти откаты можно было бы ловить. О каких стратегиях почитать, как выбрать шаг, с каким ставить ордера и тп
Неплохо у Линды Рашке по стратам.
это конкретное очень изменчиво.
Сегодня этак, завтра — так.