Блог им. NikolayAntonov_303

Скрипт на QLUA по определению корреляции между ценами двух инструментов

Всем привет!

Относительно недавно на своем Дзен-канале «Код торгового робота» я размещал статью в которой рассматривал различные теоретические графики и рассчитывал корреляцию между ними. Ранее примерно такие же статьи встречал и на Smart-lab.

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

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

При реализации третьего этапа я время свечей переводил во временную метку.
То есть, имея отдельные значения года, месяца, дня, часа и минуты временная метка получалась так:
metka = time_current_svechi['year']*100000000 + time_current_svechi['month'] * 1000000 + time_current_svechi['day'] * 10000 + time_current_svechi['hour'] * 100 + time_current_svechi['min'];
В итоге получалось число, и оно тем больше, чем более новое время.
Это позволяет легко оперировать временем, сравнивать временные метки, сортировать при необходимости и пр.

Что касается расчета коэффициента корреляции. То, как известно он рассчитывается по такой формуле:
Скрипт на QLUA по определению корреляции между ценами двух инструментов
Для упрощения вычислений, я разбил расчет на три функции: 
  1. функция рассчитывающая среднее значение
  2. Функция, вычисляющее числитель вышеобозначенной дроби
  3. Функция, вычисляющая знаменатель.

Примерно так:
Скрипт на QLUA по определению корреляции между ценами двух инструментов

Полученный скрипт можно скачать по ссылке: https://nikolai-antonov.ru/scripts/correlation.rar

Результат расчетов выводится в таблице сообщений QUIK примерно в таком виде:
Скрипт на QLUA по определению корреляции между ценами двух инструментов

На всякий случай я провел проверку вычислений: выгружал таблицу времени с ценами двух графиков в Excel и там с помощью функции PEARSON() сравнивал с результатами скрипта. У меня результаты совпали.

Целью данного скрипта является подбор пар инструментов для проведения парного трейдинга. 

В 2019 году я в более ручном режиме строил, так называемую «шахматку» — таблицу с данными нескольких фьючерсов в которой на пересечении стоит коэффициент корреляции между этими инструментами. Вот ссылка на ту «шахматку» - https://nikolai-antonov.ru/scripts/table.xlsx

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

Возможно, что кому-то будет интересен такой скрипт — пользуйтесь.

Спасибо за снимание.

P.S. Информация, приведенная в данной статье также имеется в формате видео. И расположена по ссылке: https://dzen.ru/video/watch/64e61fc12a49b25ab7524f57

  • обсудить на форуме:
  • Quik Lua
922 | ★5

Читайте на SMART-LAB:
Пять инструментов для ленивого инвестора
Многие инвесторы хотели бы зарабатывать при минимальных усилиях на анализ рынков. Мы подобрали пять простых и надёжных инструментов, которые...
Фото
Стратегия на 2026 год
Год начался с геополитической турбулентности, но аналитики «Финама» видят возможности для роста как на российском, так и на зарубежных...
Фото
USD/CHF: фокус не удался — медведи присматриваются к уровням повыше?
Швейцарский франк попробовал было отскочить вниз, но силы «быков» в моменте оказались серьёзнее, и котировки прорвались выше. Середина коридора...
Фото
Обзор данных Росстата по выработке электроэнергии в РФ в ноябре 2025г. и по потреблению энергии в декабре 2025г.
Росстат представил данные по выработке электроэнергии в РФ в ноябре 2025г.: 👉выработка электроэнергии в РФ — 104,59 млрд кВт*ч. ( -2,69%...

теги блога Николай Антонов

....все тэги



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