Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

GigaPack is API and calculation layer based on AlgoPack from MOEX

Notifications You must be signed in to change notification settings

arbuzovv/GigaPack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GigaPack

Сервис - победитель Хакатона «GoAlgo» от Московской Биржи
по созданию решений для инвесторов на рынке акций в 2023 году

GigaPack представляет из себя вычислительный слой над данными Алгопака и дает доступ инвесторам к агрегированной микроструктуре фондового рынка и ее альтернативной истории.

Ключевые проблемы алготрейдера

  • наличие только одной реализации процесса колебаний цен финансового актива
  • однообразие используемой информации для принятия инвестиционных решений
  • при постоянно растущем числа фичей, оверфит "стратегии" превращается в дикую головную боль

Решение проблемы: сервис GigaPack

Предлагаемый инвестиционный сервис ориентирован на аудиторию алготрейдеров и состоит из трех главных элементов, каждый из которых доступен по API:

  • Консолидатор рыночных данных и данных AlgoPack в объект, который мы назвали GigaCandles
  • Стандартные технические индикаторы для удобства пользования
  • И, ключевой элемент: синтетические рыночные данные (AlterGiga)

В базовой структуре решения имеются следующие элементы:

  • Giga Candles - это агрегированные свечи (на основе Super Candles), которые имеют более 600+ характеристик на каджую дневную свечу

  • Giga Tech - это заранее посчитанные данные по техническому анализу по 100+ индикаторам

  • Giga Fields - это список доступных характеристик свечей связанных как с техническим анализом, так и с микроструктурными данными

  • Alter Giga и AlterTeсh - это альтернативные данные основанные на технологии блок ресемплинга

  • Giga Momentum - пример алгоритмической системы, которая использует в принятии решений как технические данные, так и микроструктурные характеристики от AlgoPack (через слой GigaPack). Данная торговая система проходит все стадии проверки на out-of-sample и альтернативную историю от AlterGiga: подробное исследование. Написан скрипт исполняющий на ежедневной основе сигналы данной алгоритмической системы

  • AI bots - примеры торговых алгоритмов на основе достижений машинного обучения, которые показывают, то как легко торговые роботы могут переобучаться. Большинство AI алгоритмов легко фитят рынок на истории и показывают 5-10 коэффициент Шарпа (при большом объеме времени и параметров, точно найдем - шарп не 10, но близко). Некоторые бумаги (в силу случайности) даже способны проходить традиционный out of sample. С использованием данных, Alter Giga и AlterTeсh можно выявлять такие случайности и не пропускать такие алгоритмы в живую торговлю.

    • ML, Random Forest - торговый робот в котором мы использовали ограниченный набор известных показателей и 5 показателей из AlgoPak, загрузили все параметры в RandomForestRegressor и безжалостно зафитили in-sample до откровенно стыдного уровня и далее с использованием AlterGiga проверили, что так делать нельзя: подробное исследование
    • NN, LSTM - мы также ради любопытства зафитили LSTM нейронную сеть (число параметров перевалило за 5 миллионов, при наличии всего 900 торговых дней) с аналогичным результатом; некоторые инструменты при этом, условно успешно переживают out-of-sample период: accuracy > 50%: подробное исследование

GigaCandles - агрегированные на дни свечи SuperCandles

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

  • Вычисление средней, медианы, стандартного отклонения, skew и т.д.
  • Вычисление автокорреляционных характеристик внутри дня (ACF(1),ACF(2))
  • Вычисление прочих характеристик нормализующих данных показателей

Подробнее процесс регуляризации и преобразования данных описан в файле GigaCandles.R

Таким образом после преобразований мы получаем на каждый день количество характеристик в суперсвечах * количество преобразований (сейчас это 10 штук). На текущем этапе для каждой свечи имеется более 600+ характеристик

Alt text

AlterGiga - альтернативные свечи: суть подхода

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

Мы предлагаем воспользоваться нашим сервисом генерации синтетических данных по любому финансовому инструменту. Видео использования AlterGiga на языке R

Ключевые особенности нашего подхода:

  • Сохранение зависимостей: все темпоральные и кросс-темпоральные характеристики временных рядов полностью сохраняются, как линейные, так и любые иные;
  • Корреляция с исходным рядом: практически 100%, будет снижаться при роста числа блоков разбиения для бутстрэпа. Размер блока определяется пользователем и зависит от характеристик (памяти) стратегии;
  • Эргодическая гипотеза: сгенеренные сервисом альтернативные реализации цен, например SBER, обладают уникальным свойством - их средние показатели в точности соответствуют исходному ряду. По сути, речь идет о доступе к "параллельным вселенным", где торгуется выбранный финансовый инструмент;

Alt text

Сервис рекомендуется использовать одним из двух способов:

  • По итогам разработанной стратегии, сгенерить как минимум 10 синтетических траекторий (как аппроксимация 10 децилей), на которых как на дополнительном out of sample прогнать стратегию. При существенной разнице между исходным Шарпом и средним распределения из 10 Шарпов по синтетическим траекториям - красный флаг.
  • Использовать синтетические данные изначально - несколько разных генераций при необходимости - для разработки стратегии. По итогам такого подхода использовать настоящую реализацию цены как out of sample период в полном объеме.

Ограничения:

  • Cервис лучше всего подходит для стратегий, построенных так или иначе из цен и их производных. Фундаментальные данные требуют отдельного сервиса и решения, куда более сложного, чем то, что предлагается; требуется определенная осторожность при бутстрепе многомерных векторов, состоящих не только из цен закрытия: важно проверять полученные синтетические данные на сохранения внутри-векторных соотношений; и главное: даже безграниченый объем синтетических данных не является гарантией от оверфита! не теряйте голову!

Архитектура решения

GigaPack имеет микросервисную архитектуру и использует технологии бессерверных вычислений на Yandex Cloud. Исторические данные по Giga Candles и Giga Tech являются предрассчитаными и хранятся в ClickHouse, c обновлением данных каждые 5 минут в течение последного торгового часа на Московской Бирже. Некоторые данные, такие как Alter Giga и AlterTeсh считаются "на лету", поэтому при большом количестве симуляций могут достаточно долго выдавать результат.

Для взаимодействия с сервисом GigaPack были разработаны/доработаны:

  • REST API сервис для взаимодействия с любым языком программирования (создан)
  • rusquant библиотека для R (доработан)
  • pyrusquant библиотека для Python (создан)
  • вэб портал на Shiny - позволяющий визуализировать гигасвечи и разнообразные микроструктурные эффекты (создан)

Alt text

Giga Momentum - торговая стратегия на основе моментума и данных GigaPack

Для целей исследования была разработана хорошо изученная в академической среде торговая стратегия моментума (на основе индикатора стохастика) и в ней учтен дисбаланс потока заявок (также академически хорошо изученный): подробнее про исследование..

Для ежедневного исполнения сигналов выдаваемых торговой стратегией был разработан скрипт GigaMomenumExecutor.R, который позволяет подключиться к одному из 3 брокеров (Алор, Финам, Тинькофф) и исполнить заявки приводящие к исполнению необходимых сигналов. Кроме того, для контроля исполнения сделок, в этом скрипте есть настройка телеграмм бота, который позволяет высылать уведомления о ежедневных сигналах.

Alt text

Проверка на оверфитинг - сравнение Giga Momentum с AI алгоритмами

Проверка на оверфитинг стратегии - нормальная история, когда реальная траектория не отличается от виртуальной цены (картинка слева). Таким образом стратегия Giga Momentum проходит проверку на альтернативной истории, что свидетельствует о том, что ее можно использовать в живой торговле.

В случае когда мы сталкиваемся с оверфитингом стратегий как в уже упомянутой выше ML стратегии, мы получаем сильное отклонение характеристик на тренировочной выборке (картинка справа). Alt text

Имплементация торговой стратегии

Для ежедневного исполнения скрипта GigaMomenumExecutor.R, пользователь может:

  • разместить скрипт у себя на локальном ПК или vds и настроить расписание по вызову данного скрипта
  • разместить код в бессерверной функции на Yandex.Cloud и настроить расписание

Или для тех, кто не хочет погружаться в настройку скриптов и торговли, всего за 6% годовых подписаться на стратегию GigaMomentum на Comon

P.S. GigaPack monitor - вэб-портал для мониторинга данных GigaPack

Как дополнительной решение для тех, кто не обладает навыками программирования, с целью мониторинга данных GigaPack мы создали вебпортал позволяющий оценить динамику и структуру данных. Alt text

Структура файлов GigaPack

  • GigaMomenum.html - торговая стратегия Giga Momentum
  • AI_RF_ML.html - вычисление характеристик торговой стратегии.
  • AI_LSTM_NN.ipynb- вычисление характеристик торговой стратегии.
  • src
    • GigaMomenum.R - алгоритм исследования стратегии моментум представленной в блокноте (GigaMomenum.html)
    • GigaCandles.R - скрипт преобразующий данные AlgoPack в GigaPack
    • GigaTech.R - скрипт расчитывающий 80+ технических индикаторов для GigaTech
    • AlterGiga.R - скрипт сравнивающий: реальные и альтернативные ценовые траектории, автокорреляционные свойства и корреляции
    • webportal - веб-портал для мониторинга написанный на Shiny

Команда Rusquant

  • Вячеслав Арбузов - Team Lead, Architect, Quant,R
  • Владимир Пахомов - Quant, AlterGiga
  • Максим Петухов - Python, Development

About

GigaPack is API and calculation layer based on AlgoPack from MOEX

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published