Rostislav Kudryashov
Rostislav Kudryashov личный блог
22 июля 2022, 10:53

Алготрейдинг с обезличенными сделками. С чего начать

Обезличенные сделки в Quik'е содержат информацию о направлении сделок — Buy и Sell. Теоретически, это даёт дополнительные возможности прогноза движения цены. На практике дело сразу упирается в громадный объём этих тиковых данных и недоступность их во всех широко известных источниках.
Запрос «smart-lab Обезличенные сделки» в Яндексе даёт подборку
smart-lab.ru/blog/583818.php?ysclid=l5rmqam0or156053926
smart-lab.ru/tag/%D0%BE%D0%B1%D0%B5%D0%B7%D0%BB%D0%B8%D1%87%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B8/?ysclid=l5rmr8efkg459101185
Разговоры сводятся к откачивание данных из Quik'а с помощью QLua и манипуляциям в Excel. Подход беспомощный и бесперспективный.

Во-первых, держать Quik включённым целый день только для получения данных по обезличенным сделкам впрок, для дальнейшего анализа — испытание терпения, немногим по силам. Ведь для реалистичности тестирования нужны данные за много дней.
Во-вторых,  объёмы данных за один торговый день — сотни тысяч записей, до полутора миллиона и более. Никакой Excel или Python не справятся. Выход в использовании источника с готовыми данными и эффективного средства программирования вроде C++, C# или Java.

Бесплатный источник полных тиковых данных с MOEX — на страницах www.qscalp.ru/download и erinrv.qscalp.ru
Однако, ожидать толку в игре от реакции на каждый тик — нереально.
Во-первых, типовое TrueRange между соседними тиками менее 0.01% от текущей цены. Это сопоставимо с комиссией биржа+брокер.
Во-вторых, у моего брокера БКС прохождение заявки с терминала до биржи занимает время от 0.1 до 0.5 сек.
Примерно на такое же время запаздывают данные о сделках на бирже. За это время Quik получит сотни тиков — с таким запаздыванием. Заявка по этим запоздавшим данным придёт на биржу с таким же запаздыванием. Реакция на тик — всегда игра невпопад.

Так что если C++, C# или Java при тестировании стратегии справятся с громадными тиковыми объёмами, в торговом терминале Quik с использованием QLua польза от реакции на каждый тик не очевидна. При том, что в главном Windows-потоке Quik'а не рекомендуется размещение трудоёмких вычислений. Только регистрация событий в соответствущей таблице из обработчика событий обезличеных сделок OnAllTrade(). Обработка этой таблицы возможна в подчиненном потоке main() через регулярные промежутки времени.

Чтобы использовать в торговой стратегии тиковые данные с обезличенными сделками, я предлагаю агрегировать их в секундный или минутный тайм-фрейм с обычным форматом данных .csv
Ticker,Period,Date,Time,Open,High,Low,Close,Volume.
Значения Volume в каждой обезличенной тиковой сделке в пределах тайм-фрейма суммируются: для Buy — со знаком плюс, для Sell — со знаком минус. Таким образом, поле Volume агрегированных данных даёт направление сделок в пределах секунды или минуты.

На меня пока не сошло озарение, как использовать эти данные для беспроигрышной стратегии. Я вообще невысоко оцениваю свой дар предвидеть будущее.
Возможно, кому-то эти данные принесут больше пользы. Или хотя бы развлекут. Они выложены на странице
disk.yandex.ru/d/T5NEjT2P5sh4ow
Яндекс даёт дерево каталогов одним zip-файлом.
Там же выложен мой код Java для JDK 11 Liberica. "… это рекомендованный отечественный софт, который включен в реестр российского ПО"
www.cnews.ru/news/top/2020-09-21_platezhnaya_sistema_mir?ysclid=l5w5c13jpe323300702

Данные в формате .sqh переведены программой qsh2txt.exe (с сайта qscalp.ru) в .txt и из-за их громоздкости упакованы в формат .7z — для самых рьяных энтузиастов. Например, кому-то захочется отфильтровать тики, прежде чем их суммировать.
Для тех, кого заинтересует, выложены  агрегированные данные в формате .csv с разделителями полей ";". Excel читает как родную таблицу. Для проверки результатов суммирования тиков к формату .csv добавлено поле Index, относящее начало бара ко смещению (номер-1) первой тиковой записи бара в исходном файле .txt.

PS если кто захочет ловить удачу на тиках, могу подсказать, как вычислять скользящие среднюю и средне-квадратичное отклонение в «один проход». Задав период N, для средней, вычисляете сумму SUM первых N чисел. Для следующего числа прибавляете его к SUM и вычитаете из неё первое число. Среднее всегда равно
AVR = SUM / N.
Для скользящего средне-квадратичного надо вычислять ещё текущую сумму квадратов чисел SQRSUM. Средне-квадратичное отклонение всегда равно
SIGMA = SQRT ((SQRSUM — SUM * SUM / N) / (N-1))

PPS Также на erinrv.qscalp.ru лежат и данные по очереди заявок. Но это объёмы ещё большие — по 50 уровней вверх и вниз от лучших цен на каждый тик, более 20 млн записей на один торговый день. Что с ними делать — совсем непонятно.

8 Комментариев
  • Jame Bonds
    22 июля 2022, 11:14
    1) Можно считать экспоненциальную среднюю (EMA), для нее даже вычитать первое число не нужно.
    2) Еще вариант получения обезличенных сделок — через терминал Metatrader.
      • Активный Инвестор
        11 сентября 2022, 11:18
        Rostislav Kudryashov, есть интересная идея для использования таблицы ОС. Но не для торговли, а для создания платного облачного сервиса. Если интересно, пишите в личку.
  • Илья Нечаев
    22 июля 2022, 15:33
    Ростислав, а задача то в итоге какая? HFT?
  • tranquility
    07 августа 2022, 22:31
    Я как-то тоже с тиками плотно работал и возлагал определенный надежды на поле «направление сделки». В итоге пришел к выводу, что по крайней мере на срочном рынке (для него доступен полный ордерлог в формате qsh) это просто шум ( smart-lab.ru/blog/541587.php ), и лучше всего его определять по тому выше или ниже середины спреда была цена сделки. А питону вполне реально скормить таблицу размером в гигабайты и работать с ней, если это реально нужно вам, конечно. Так что если не знаете с++, то нечего горевать или начинать учить с нуля. Питона вполне достаточно.
  • Rustam Rust
    22 августа 2022, 00:12
    Добрый день!
    А СПб биржа поставляет ОС?
    • Активный Инвестор
      11 сентября 2022, 11:17
      Rustam Rust, СПб это не биржа, это даркпул или вовсе кухня. Сделки на этой бирже просто неинформативны.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн