Блог им. 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
935 | ★5

Читайте на SMART-LAB:
Фото
S&P 500: Нефтяная паника разбилась о железный молот — быки перехватывают инициативу
Индекс S&P 500 протестировал медиану, проведенную через ключевые точки коррекции (1-2-3), оформив при этом выразительный «молот» с очень длинной...
Фото
«Почему одни угадывают, а другие зарабатывают»: главное из разговора с Сэмом Шариповым
У нас в гостях на Трейдер ТВ побывал Сэм Шарипов, управляющий хедж-фондом, опционный трейдер с более чем 20-летним опытом на рынке и более 10 лет...
Сумма исков к ЕвроТрансу достигла 3,5 млрд рублей
ЕвроТранс в последние дни получил несколько исков на общую сумму около 3,5 млрд руб. Требования поступили от контрагентов и кредиторов и связаны с...
Сделки по портфелю, оперативный комментарий
Доброго дня. Сегодня я совершал сделки по портфелю.Оперативно сообщаю о ситуации.

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

....все тэги



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