NikitaSOF
NikitaSOF личный блог
30 июля 2021, 16:35

Корреляция торговых роботов

Корреляция торговых роботов.

Вступление.

Недавно у меня вышло видео на YouTube, где я рассказываю и показываю то, как анализирую корреляцию своих торговых алгоритмов, можете ознакомиться: https://www.youtube.com/watch?v=ldKBQpqUhYE&t=3s&ab_channel=16%3A05Algo.

А тут напишу короткий пост по этой теме.

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

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

Основная идея.

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

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

Сам алгоритм выглядит следующим образом:

  1. Берем 2 роботов из портфеля и считаем сколько времени каждый из них провел в позиции (время я считаю в минутных свечах).
  2. Считаем сколько времени эти роботы провели в позиции одновременно.
  3. Делим одновременное время в позиции обоих роботов на индивидуальное время в позиции каждого из роботов.
  4. Получаем на выходе 2 числа, которые обозначают какую долю составляет их одновременное время в позиции по отношению к индивидуальному времени в позиции каждого из роботов.

На этом основная часть алгоритма закончена, все довольно просто, но лично для меня очень информативно.

Как это выглядит на практике.

В итоге я получаю табличку следующего вида (вырезал кусок только по 4 ботам, иначе будет слишком мелко из-за ее форм-фактора, полную табличку, если интересно можно найти в ролике на ютубе):

 Корреляция торговых роботов

Каждое число означает долю одновременного времени в позиции роботов из соответствующего столбца и строки по отношению к индивидуальному времени в позиции робота из столбца (т.е. столбцы тут ведущие).

Например, общее времени в позиции 1 и 3 роботов составляет 52% от индивидуального времени в позиции 1 робота т.е. 52% времени 1 робот находится в позиции тогда же, когда и 3. А вот 3 робот находится в позиции вместе с 1 лишь 12% времени (можете найти соответствующее число).

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

У меня таким примером является робот под номером 3, который может удерживать позиции на протяжении недели. Можно заметить, что его процент покрытия рынка 45%. И если выделить строчку 3 робота можно увидеть, что все роботы в более чем 40% совершают сделки в момент сделок 3 робота и это связано именно с тем, что этот робот покрывает значительный объем рыночного времени.

Концовка.

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

Ну а пока, как обычно, надеюсь, что мой пост был вам полезен.

Всем профита!

20 Комментариев
  • ezomm
    30 июля 2021, 17:03
    Мне не полезен, но ты иди дальше. Грызи гранит торговли.
  • SergeyJu
    30 июля 2021, 17:07
    Зачем Вы считаете это? 
    Знак позиции (донг или шорт) как-то учитывается? 
      • SergeyJu
        30 июля 2021, 17:37
        NikitaSOF, вас же должна волновать не столько попарная корреляция, сколько  совместная деятельность все векторов. Причем именно с учетом знака. Тем более, что Вы считаете некий разумный индикатор, который и корреляцией-то не является.

          • SergeyJu
            30 июля 2021, 18:09
            NikitaSOF, каждый  алго у Вас порождает вектор нулей и единиц (минус единиц) взятых с шагом во времени, равным таймфрейму. 
      • Ivanaev
        30 июля 2021, 19:57
        NikitaSOF, кривую капитала можно увидеть?
  • Забавно, очередной велосипед с квадратными колесами.

    Даже здесь, на смартлабе, как минимум два алго-трейдера подробно описывали весь процесс анализа корреляции алгоритмов в экселе.
    • SergeyJu
      31 июля 2021, 02:46
      Дмитрий Овчинников, дурная привычка везде считать корреляции. Если строить портфель методами типа Марковиц, считать надо ковариационную матрицу. Можно решать задачу в лоб, подбирать оптимальные веса методом монте-карло. Считать будет дольше, зато оптимизационный критерий может быть какой угодно.
  • tores
    30 июля 2021, 19:02
    Из текста не понятно, роботы одним или разными инструментами торгуют?
      • bohemian rhapsody
        31 июля 2021, 00:20
        NikitaSOF, где хоть одна сделка в видео??? одна пустая болтовня…
  • Replikant_mih
    30 июля 2021, 19:48
    А, ну это про загрузку капитала, чтоб не простаивал. Будут ли эти непростаивающие капиталы вместе сливать или раздельно сливать — этот показатель про это ничего не говорит.
    • Replikant_mih,
      Если про загрузку, надо знак учитывать, однако.
      • Replikant_mih
        30 июля 2021, 19:55
        Дмитрий Овчинников, А, тут же один инструмент).
        • Replikant_mih,
          И что? Разные системы в одном инструменте могут в разные стороны стоять. Даже трендовые.
          • Replikant_mih
            30 июля 2021, 20:02
            Дмитрий Овчинников, А я что против что ли?))

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

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