uralpro
uralpro личный блог
17 апреля 2016, 10:00

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

23 Комментария
  • sortarray sortarray
    17 апреля 2016, 10:51
     Не то что бы нельзя это сделать, но есть более лучшие инструменты для этих задач.

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

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

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

    А какие проблемы с символьными операциями в пистоне? Не могли бы Вы привести пример? Регулярные выражения не подходят для этого?
    • Dale_DMT
      17 апреля 2016, 11:32
      sortarray sortarray, Речь, очевидно о символьных вычислениях, скорее SymPy подходит для этого. И, вы задаете вопросы переводчику, а не автору, насколько я понял.)
  • INTELLEKTTRADE
    17 апреля 2016, 11:52
    Приветствую=)) Хорошая статья. А можно ли использовать RappidMiner вместо-совместно с R? И что полезного по вашему мнению в книге Уильяма Шарпа, Гордона Александра «Инвестиции»..? Поможет ли эта книга в понимании рынка и нахождении не эффективностей?
     И какие по вашему перспективы у трейдеров вообще? Ведь недавно прошла новость что одну из крупнейших бирж CME закрыли… торговля в питах уходит в прошлое.
    • Investment Manager
      17 апреля 2016, 12:52
      INTELLEKTTRADE, да, наверное скоро питов не останется, как и факсов.
    • verg
      17 апреля 2016, 13:21
      INTELLEKTTRADE, не биржу закрыли, а питы, и не недавно, а год назад)
  • SMA
    17 апреля 2016, 13:02
    Всегда читаю с удовольствием Ваши статьи!!! спасибо!
  • verg
    17 апреля 2016, 13:29
    а подскажите, плиз, вот есть такой график

    мне кажется, что инструмент часто откатывает, эти откаты можно было бы ловить. О каких стратегиях почитать, как выбрать шаг, с каким ставить ордера и тп
    • baron_samedi
      17 апреля 2016, 14:14
      verg, продаете вверху, покупаете внизу — ничего умнее никто не придумал.
      Неплохо у Линды Рашке по стратам.
      • verg
        17 апреля 2016, 18:32
        vladimir doigt, ну мне что-то поконкретнее, чем продаете вверху, покупаете внизу)
        • baron_samedi
          17 апреля 2016, 19:05
          verg, 
          это конкретное очень изменчиво.
          Сегодня этак, завтра — так.
    • helk3rn
      17 апреля 2016, 18:57
      verg, в стаканы обоих инструментов, составляющих этот спред поглядеть бы… Сдается мне, что сидящие там хфт быстро прояснят желающему «ставить ордера и тп» за его место в пищевой цепи.
      • matrix
        18 апреля 2016, 12:13
        Adept, это календарник у него свой стакан есть, ну и конечно есть стаканы каждого инструмента в отдельности. Можете прям спрэдом торговать или собирайте спрэд из двух инструментов. 
      • verg
        18 апреля 2016, 12:40
        Adept, а при чем тут hft к часовому графику)?
        • helk3rn
          18 апреля 2016, 22:11
          verg, При том, что средняя часовая свеча около 10тиков

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн