Блог им. uralpro

Алгоритмический подход к созданию стратегий.Часть 2

    • 17 апреля 2016, 10:00
    • |
    • uralpro
  • Еще

Interview-with-a-Quant-Part-2-980x423

Первую часть интервью смотрите здесь.

Что нужно учесть при запуске стратегии в производство?

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

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

Обычно создается исполнительный прототип, который делает все правильно, но не очень эффективно. Затем я поручаю моим сотрудникам-инженерам сделать производительную версию стратегии на языке Python или даже С, используя библиотеки для реального рынка, которые они создавали и совершенствовали годами. И эта версия подключается к  моей торговой системе, для запуска данной стратегии «в бой».

Далее я начинаю зарабытывать деньги на этом алгоритме.

Как много времени занимает весь этот процесс?

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

Тревожит ли вас, что возможности торговли на основе моделей, которые вы пытаетесь реализовать, исчезнут навсегда? 

Конечно. По моему опыту любая такая возможность исчезает. Один из самых больших вызовов в моделировании — это определить, когда конкретная модель устарела. Любая модель может терять деньги в некоторые дни и даже недели. И очень сложно распознать, когда потери это часть стратегии, которая все еще работает, а когда они сигнализируют о смерти модели.

Где вы берете идеи для новых стратегий?

Везде, где можно! Но есть несколько источников, которые я просматриваю особо тщательно.

Во-первых, маркетдата. Если у вас есть новый или ранее неизвестный источник данных, который каким-либо образом предсказывает рынок, то это самый легкий путь для генерации идеи. Сегодня существует множество новых источников: стартапы, собирающие новые наборы данных; аналитические компании со своими индикаторами; большие корпорации, предоставляющие данные, которые мы можем исследовать; и такие аггрегаторы, как Quandl, чтобы собрать эти данные вместе. Я постоянно в поиске интересных, необычных и предсказывающих наборов данных.

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

В-третьих — глобальные паттерны. История может не повторяться, но определенно идет в ногу. Например, если вы хотите торговать процентную кривую США,  японский рынок — богатый источник идей, Япония прошла через нулевые процентные ставки за годы до Америки. Фактически, я построил очень успешную модель  на американском рынке гособлигаций, основываясь чисто на поведении японских облигаций десятью годами ранее.

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

В-пятых, держите глаза и уши открытыми. Мир — это очень неэффективное место: если вы любознательны и все время спрашиваете «почему/почему нет?», вы всегда обнаружите возможности.

Вы говорили, что используете множество инструментов - Mathematica, Matlab, Python, Excel, C. Это намеренный выбор?

Конечно. Разные стадии процесса требуют разных инструментов. Я буду идиотом, если построю реальную «боевую» систему в Excel, или символьные операции в Python. Не то что бы нельзя это сделать, но есть более лучшие инструменты для этих задач.

Как вы управляете потоком данных во всех  стадиях процесса и инструментах?

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

В следующей части мы опубликуем ответы на вопросы читателей.

Продолжение и другие статьи по алгоритмической торговле смотрите на моем сайте — www.quantalgos.ru

★21
23 комментария
 Не то что бы нельзя это сделать, но есть более лучшие инструменты для этих задач.

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

И кстати, Вы говорите про mathematica, mathlab и даже excel как об «инструментах», Вы что, серьезно чтоли? Теперь любая секретарша может писать роботов?
avatar
sortarray sortarray, на моем опыте даже excel 99% людей использует на 5% от возможного. про остальные указанные «инструменты» я молчу. И объем дензнаков, которым  управляешь, имеет значение. Уверен 90% алготрейдеров используют простые стратегии. А в общем статья — бла-бла-бла.
avatar
kvazar, А как научиться эксель использовать на 500%?
avatar
INTELLEKTTRADE, это долгая история, да и 99% это не нужно
avatar
INTELLEKTTRADE, Научись получать данные через COM или USB порт прямо в экзель, а там уж структурируй как надо — таблично.
avatar
kvazar, я тут говорю, собственно, не о том, сколько фич используется, это понятно, что любая среда на 90% избыточна (скажем, все циклы можно выкинуть, и ввести гоуту — оно их заменит:)). Просто все это «программирование мышкой» само по себе сильно ограничено в расширяемости, масштабируемости, построении абстракций и тп, то что можно назвать, условно, мощностью среды. Добавление фич, как правило, говорит об обратном:), то есть, мощная среда не нуждается в фичах, фичи добавляются чаще из-за слабости среды, из-за того, что то или иное действие невозможно выразить тривиально из-за кривости и ограничений дизайна, и делается через глубочайшую жопу
avatar
sortarray sortarray, бред пишите. Есть разные этапы разработки стратегий. Иногда достаточно протестить пересечение скользящих, а по полученному результату надо, для нормального теста, при управлении капиталом, надо тестить по всем тикам и всему ордерлогу. По этому когда речь идет о серьезных деньгах, речь может идти и прыжках с бубном в определенный момент разработки стратегии. По этому когда вы не знаете о чем пишите, надо спрашивать, а не спорить доказывая свою правоту!
avatar
SMA, скользящие средние крутая тема, там за неделю можно сделать 2-3 депозита, а потом за 2 дня все слить)))
SMA, то о чем я пишу является общими принципами любой разработки. Что Вы называете прыжками с бубном, в данном случае, я не совсем понял. Обычно этот термин означает незнание среды, либо использование такой среды, где можно что-то сделать только наугад.

Да и вообще, как соотносится Ваша «аргументация» с тем что я сказал, непонятно, Вы о чем то о своем, видимо.
avatar
или символьные операции в Python

А какие проблемы с символьными операциями в пистоне? Не могли бы Вы привести пример? Регулярные выражения не подходят для этого?
avatar
sortarray sortarray, Речь, очевидно о символьных вычислениях, скорее SymPy подходит для этого. И, вы задаете вопросы переводчику, а не автору, насколько я понял.)
avatar
Приветствую=)) Хорошая статья. А можно ли использовать RappidMiner вместо-совместно с R? И что полезного по вашему мнению в книге Уильяма Шарпа, Гордона Александра «Инвестиции»..? Поможет ли эта книга в понимании рынка и нахождении не эффективностей?
 И какие по вашему перспективы у трейдеров вообще? Ведь недавно прошла новость что одну из крупнейших бирж CME закрыли… торговля в питах уходит в прошлое.
avatar
INTELLEKTTRADE, да, наверное скоро питов не останется, как и факсов.
avatar
INTELLEKTTRADE, не биржу закрыли, а питы, и не недавно, а год назад)
avatar
Всегда читаю с удовольствием Ваши статьи!!! спасибо!
avatar
а подскажите, плиз, вот есть такой график

мне кажется, что инструмент часто откатывает, эти откаты можно было бы ловить. О каких стратегиях почитать, как выбрать шаг, с каким ставить ордера и тп
avatar
verg, продаете вверху, покупаете внизу — ничего умнее никто не придумал.
Неплохо у Линды Рашке по стратам.
avatar
vladimir doigt, ну мне что-то поконкретнее, чем продаете вверху, покупаете внизу)
avatar
verg, 
это конкретное очень изменчиво.
Сегодня этак, завтра — так.
avatar
verg, в стаканы обоих инструментов, составляющих этот спред поглядеть бы… Сдается мне, что сидящие там хфт быстро прояснят желающему «ставить ордера и тп» за его место в пищевой цепи.
avatar
Adept, это календарник у него свой стакан есть, ну и конечно есть стаканы каждого инструмента в отдельности. Можете прям спрэдом торговать или собирайте спрэд из двух инструментов. 
avatar
Adept, а при чем тут hft к часовому графику)?
avatar
verg, При том, что средняя часовая свеча около 10тиков
avatar

теги блога uralpro

....все тэги



UPDONW
Новый дизайн