Обезличенные сделки в 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 млн записей на один торговый день. Что с ними делать — совсем непонятно.
2) Еще вариант получения обезличенных сделок — через терминал Metatrader.
А СПб биржа поставляет ОС?