Блог им. NikitaSOF

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

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

Вступление.

Недавно у меня вышло видео на 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 комментариев
Мне не полезен, но ты иди дальше. Грызи гранит торговли.
avatar
Зачем Вы считаете это? 
Знак позиции (донг или шорт) как-то учитывается? 
avatar
SergeyJu, Я это считаю, чтобы собрать диверсифицированный портфель роботов. У меня каждый робот входит только в одну сторону (либо лонг либо шорт) так что знак позиции не учитывается. Но в итоговой таблице есть данные по корреляции лонговых и шортовых роботов (на картинке в посте есть один шортовый бот, ячейка его имени залита красным цветом).
avatar
NikitaSOF, вас же должна волновать не столько попарная корреляция, сколько  совместная деятельность все векторов. Причем именно с учетом знака. Тем более, что Вы считаете некий разумный индикатор, который и корреляцией-то не является.

avatar
SergeyJu, Да под стандартное понимание корреляции это можно и не подвести, но если рассматривать корреляцию в широком смысле как взаимосвязь двух величин, то метод описанный в посте можно под него подвести (лично для меня это слово отражает необходимый смысл), поэтому я и написал в начале, что считаю ее нестандартно. А что вы подразумеваете под словом «вектор»?
avatar
NikitaSOF, каждый  алго у Вас порождает вектор нулей и единиц (минус единиц) взятых с шагом во времени, равным таймфрейму. 
avatar
NikitaSOF, кривую капитала можно увидеть?
avatar
Ivanaev, Кривую капитала чего?) И небольшое уточнение кривая капитала это доходность?
avatar
Забавно, очередной велосипед с квадратными колесами.

Даже здесь, на смартлабе, как минимум два алго-трейдера подробно описывали весь процесс анализа корреляции алгоритмов в экселе.
Дмитрий Овчинников, Обязательно их поищу и ознакомлюсь, спасибо за информацию!
avatar
Дмитрий Овчинников, дурная привычка везде считать корреляции. Если строить портфель методами типа Марковиц, считать надо ковариационную матрицу. Можно решать задачу в лоб, подбирать оптимальные веса методом монте-карло. Считать будет дольше, зато оптимизационный критерий может быть какой угодно.
avatar
Из текста не понятно, роботы одним или разными инструментами торгуют?
avatar
Max, Роботы торгуют только фьючерсом на РТС.
avatar
NikitaSOF, где хоть одна сделка в видео??? одна пустая болтовня…
avatar
bohemian rhapsody, а зачем в видео на такую тему сделки? Для кого-то это пустая болтовня, а кому-то полезно)
avatar
А, ну это про загрузку капитала, чтоб не простаивал. Будут ли эти непростаивающие капиталы вместе сливать или раздельно сливать — этот показатель про это ничего не говорит.
avatar
Replikant_mih,
Если про загрузку, надо знак учитывать, однако.
Дмитрий Овчинников, А, тут же один инструмент).
avatar
Replikant_mih,
И что? Разные системы в одном инструменте могут в разные стороны стоять. Даже трендовые.
Дмитрий Овчинников, А я что против что ли?))
avatar

теги блога NikitaSOF

....все тэги



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