Индикаторы: IND_Correlation - страница 2

 

Автор молодец! Я, признаться, такого даже не ожидал. Это не применить в торговле напрямую но много пищи для размышлений даёт. Насколько я знаю это первый вариант индикатора АКФ. Читал на форуме что кто-то занимался этой темой несколько лет назад и получил сходные результаты но чем считалась АКФ мне неизвестно т.к. подробных отчётов не выкладывали.

 

В описании к индикатору есть график изменения автокорреляции EURUSD с окном в сутки и сдвигом на час. На этом графике есть один момент, где автокорреляция нулевая. Автокорреляция может быть нулевой и даже отрицательной, но это редкие случаи при относительно малом лаге (Shift / Depth). Вот наш случай:

 

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

Вот так выглядит EURUSD M1 между красными и синими вертикальными линиями:

 

На графиках видно и просто из логики, что связь между ними просто огромная (малый сдвиг - всего на час из суток). Но их корреляция равна нулю. Это показательный пример того, что значения корреляции надо правильно интерпретировать.

Корреляция характеризует (не без нюансов) только степень линейной взаимосвязи, а не какой-то другой (сдвиг - не линейное преобразование).

 

Вообще-то автокорреляцию корректно оценивать для стационарных временных рядов.

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

и у вас сразу пропадет автокорреляция.


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

Выход - оценивать корреляцию за продолжительный период времени. Но тут мы опять сталкиваемся с проблемой нестационарности временных рядов.

Грубо говоря данные 5-10 летней давности уже могут быть устаревшими, не отражать текущую связь валютных пар.

Оптимизация портфелей, типа метода Марковица, это конечно хорошо, в теории. Но теория подразумевает, что мы имеем

точные значения характера и силы связи инструментов, волатильности, и будущей средней доходности. Но нам не известны точные значения,

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


Думаю проще и надежней в случае Forex стараться соблюдать баланс представленности валют в "портфеле".

Например, (EURUSD, GBPJPY, AUDCHF) хорошо, (EURUSD, USDJPY, USDCAD) хуже (перекос в сторону USD). Конечно, экономики разных стран связаны, но в самом первом приближении этим можно пренебречь.

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

 
supremum:

Кратко повторюсь, индикатор показывает выборочные КК или АКК на каждом баре.

Для расчета выборочного КК никакой стационарности не нужно. Есть выборка - есть ее КК.

Индикатор дает значения КК на каждом баре - это могут быть десятки и сотни тысяч значений. Т.е. вы получаете ВР КК. Анализировать этот ВР можете, как вам угодно.

Как некое подобие такого анализа, посмотрите в описании раздел "Пример высококоррелируемых фин. инструментов".

Построение портфелей имеет смысл обсуждать только на конструктивном и обоснованном уровне.

 

Для расчета выборочного КК никакой стационарности не нужно. Есть выборка - есть ее КК.

Выборка из окна не отменяет требования стационарности. Просто требования ослабляются до необходимости локальной стационарности. Локальная стационарность не достигается автоматически малостью окна выборки. Могу посоветовать применить тест на стационарность, например популярный Dickey-Fuller test (unit root test).

... это могут быть десятки и сотни тысяч значений...

Не надо путать номинальный объем данных, с объемом информации в этих данных. Насколько достоверна оцененная корреляция на данных из узкого окна, на зависимых примерах парных значений курсов двух инструментов? Вы получили некую цифру, но есть ли корреляция в реальности? Необходимо применять тесты на 0-гипотезу. И обязательно проверять соблюдаются ли условия при которых тесты состоятельны. Я понимаю, что большинству трейдеров это все совсем не надо, но пафос поста это подразумевает.

 
supremum:  

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

Нигде не написано, что применяются результаты корреляционного анализа. Индикатор считает коэффициент корреляции выборки для каждого бара (правое значение выборки). Не больше и не меньше. Пафос вам видится где-то между строчек.

Можете посмотреть работу Recycle, там вообще применяется ковариационная/корреляционная матрица, при этом никакой стационарности не требуется, просто мат. решение задачи потребовало составление матрицы, которая оказывается в математике имеет название ковариационной. 

 

- Автору, большое спасибо.

p.s. Плиз, а что изменить в коде, что бы индикатор инвертировать? Что бы линии рисовались наоборот. Если сейчас (допустим), снизу вверх, то в инверторном варианте, рисует сверху вниз. Зеркальное отражение. Спасибо.)

 

Инвертирование:

Corr = -GetCorrelation();
 
- hrenfx, спасибо. Мне так удобнее.)
Причина обращения: