Решил заморочиться над анализом обезличенных сделок.
Зачем ?
1) Меня интересует структура объема по конкретному инструменту. Не просто общий объем на покупку и продажу, а были ли очень крупные покупки или продажи, на количество акций, которое раз в 30-100 превышает среднее количество? А каково соотношение покупка/продажа таких крупных сделок? Например: по конкретному инструменту «цену» колбасит вверх/вниз на 1% но при этом видно, что кто-то аккуратно, с учетом большого объема заявок на продажу — только выкупает акции большими лотами. Какой вывод можно сделать, если увидеть подобную ситуацию ?
2) Меня интересует скорость изменения числа сделок по каждому инструменту.
3) Анализ поведения ботов. Приведу пример: если наблюдать за лентой сделок, то периодически встречается серия сделок с разницей во времени в доли секунды, с одинаковым числом акций (часто либо «1» либо «100») и либо вообще без разницы в цене, либо цена отличается на копейку. И таких сделок, одна за другой может «пролететь» по 50-100 за раз. Это вот зачем? Понятно, что скорей всего чей-то софт «старается», но почему именно так, а не одним лотом? И опять же — какая доля данного «выдающегося» поведения в минутном объеме по инструменту ?
Надеюсь мне удалось объяснить, для чего я решил заняться анализом. А реализовать свой прототип я решил в Excel-e :) Да, кто-то улыбнется. И да, можно было придумать что-то мудреное, в духе «я создал свой сервис, с использованием современного мультиплатформенного языка программирования и современных фреймворков, с использованием искусственного интеллекта на базе обученных нейронных сетей и разместил это все в облаке». Но, во-первых я не собираюсь Вам ничего продавать, а во-вторых я по своей сути — практик. Лично мне пофиг как будет реализовано решение, главное чтобы оно было рабочим. Поэтому excel с использованием visual basic. Вот так вот просто. И, чтобы окончательно вывести Вас из себя своими выходками простолюдина, добавлю, что свой проект я назвал «stuck», т.е. «прилипала» по русски. Вспомнил про рыбку, которая плавает рядом с акулами и доедает объедки.
Как это работает. В качестве торгового терминала я использую «альфа-директ». Он мне также не нравится как и Quick, но если сравнивать с жадным и неповоротливым терминалом от Interactive Brokers — то не все так печально. Что в квике, что в альфа-директе есть возможность не только показывать ленту сделок по всем инструментам из Вашего списка, но и выгружать все в excel и в текстовый файл. У альфа-директа все сделано максимально убого: выгрузка в текстовый файл происходит не постоянно, пока запущено окно, а «одноразово». Что касается выгрузки в excel — в окне альфы отражается только 200 строк последних по времени сделок и если появляется информация о новых сделках то терминал по прежнему отражает 200 строк, опять же показывая информацию о последних сделках. Также идет и выгрузка в excel — выгружается 200 строк, при появлении новой информации — эти же строки перезаписываются поверх старых. С точки зрения автоматизации загрузки данных — очччень неудобно. Как это реализовано у меня — когда запускается макрос, он в зависимости от указанного в настройках времени, например каждые 0.5 секунды — пробегается по загруженному из альфа-директ списку и ищет те заявки, которые еще не загрузил, ну и сортирует их дальше. Если поставить время еще меньше (0.1 секунды) — система будет работать, но на слабеньких компах начнутся проблемы с отрисовкой данных (пока работает макрос), если поставить время меньше (1 секунду), есть риск не успеть подгрузить данные, т.к. альфа-директ может их затеречь очередной порцией новых данных.
Что сделано сейчас. Чуть ниже приведены изображения листов файла во время работы.
На текущий момент реализовано следующее:
1) данные из альфа-директа грузятся в excel в лист «IN». Кстати из Quicka данные также можно выгружать, я в свое время пробовал. На листе «SETTINGS» указывается соответствие колонок, например «Цена» отражается в первой колонке листа «IN», количество во второй ну и так далее.
2) при нажатии на кнопку «Старт» в вечном цикле запускает макрос, который каждые полсекунды «пробегается» по списку в листе «IN» и анализирует сделки. Что именно он делает:
2.1) Если он впервые встречает «Тикет»(инструмент, акцию), которая отсутствует в списке — он вносит ее в список и создает отдельный лист в книге для сохранения крупных сделок.
2.2) Если макрос только-только начал работать, то по первой сотне сделок по конкретному инструменту — макрос считаем только объем и среднее количество сделок. В настройках можно исправить число, поставить 1000 сделок к примеру, тогда среднее будет точнее.
2.3) После подсчета среднего количества одной сделки по каждому инструменту, макрос помимо подсчета из пункта 2.2 начинает искать большие сделки. Насколько большие — вы также можете указать в настройках (у меня стоит в 30 раз больше среднего количества). Как только попадается подобная сделка — она отражается в листе с именем тикета данного инструмента. Ну а дальше Вы смело можете рисовать красивые графики, проводить анализ и прочее.
3) Кнопкой «Стоп» можно остановить скрипт.
4) Кнопка «очистить данные» удаляет все листы с тикетами (но не листы STATUS, IN, SETTINGS и HELP) и чистит таблицу. Зачем это? Я делал так, как удобно мне — в конце каждого дня я файлик сохраняю под отдельным именем, потом беру этот же файлик, жму «очистить данные» — и вот у меня файл готов для работы в следующий торговый день.
Что хочу добавить в дальнейшем в первую очередь.
1) Соотношение крупных сделок по покупке и продаже по каждому инструменту в отдельности. Отражать это в общей таблице в листе STATUS
2) пока не придумал как, но хочу показывать изменение скорости числа сделок по каждому инструменту. Говоря по простому, я хочу замечать, что по какому-то инструменту начинается «крупный движняк» :)
3) Хочу видеть изменение объема на покупку/продажу по конкреному инструменту, причем как по всему объему сделок по данному инструменту так и по «большим» сделкам данного инструмента
Файл с макросом можно скачать вот здесь: https://github.com/BazDen/Stuck/blob/master/stuck.xlsm
Все открыто, Вы можете посмотреть на код макроса, исправить его или дописать под свои нужны. Да, бесплатно. С чего такая щедрость, возможно спросите Вы? Отвечаю: во-первых это прототип для проверки моих идей и не факт, что мой анализ приведет к открытию закономерности, которая позволит мне стабильно зарабатывать деньги, ну а если это все же случится — то зачем тогда продавать софт, который и так приносит деньги, правда? :) Тогда почему я все же написал этот пост и выложил свой прототип? Потому как ищу единомышленников, например тех у кого есть идеи, но в силу отсутствия базовой квалификации программиста — нет возможности их проверить. Мой адрес электронной почты есть в файлике, пишите, постараюсь ответить всем.
А так бы можно вообще через UserForm в ListBox показывать только те инструменты, по которым идет отклонение.
Прикольная у тебя логика, тудой же пешком топаю, удачи!
Подробнее на БКС Экспресс:
bcs-express.ru/novosti-i-analitika/o-chem-mogut-rasskazat-birzhevoi-stakan-i-lenta-sdelok
По ссылке ничего нет. Не выручите?
Подскажите, а в таблице анализа ленты сделок, что является критерием формирования сигнала на сделку?