Всем привет. В своих прошлых постах я писал, что увлекся анализом обезличенных сделок.
Вот что описывал:
https://smart-lab.ru/blog/583818.php
https://smart-lab.ru/blog/584792.php
В комментариях и личных сообщениях меня активно просили разработать аналог «Прилипалы» для Квика (Quik). Ну не прошло и полгода, как сделал. Забрать можно вот отсюда:
https://кбс.онлайн/soft.html
На странице есть бесплатная версия, полностью аналогичная таблице в Excel, пользуйтесь на здоровье.
Но… ну или как говорил Джобс «Ах да, забыл сказать… » — в своих поисках я ушел дальше, а именно:
1) Реализовал индикацию изменения скорости сделок. Как сделал и зачем? Как: считаю каждую минут число сделок, через минуту с момента запуска скрипта начинаю делить общее число сделок на количество прошедших минут. Так получаем среднюю скорость. Чем больше прошло времени, тем объективнее средняя скорость. Ну а резкое изменение скорости фиксируется когда текущая скорость вдвое выше средней. Зачем: на момент осуществления больших сделок резко вырастает скорость. Почему? Представьте «боковое» движение: цена меняется не сильно, кто-то «немного» покупает, кто-то продает. И тут приходят «ребята с большими деньгами» и выкупают большой объем акций, тем самым закрывая большой объем выставленных заявок. Поэтому и скорость резко увеличивается.
2) Подгружаю весь архив обезличенных сделок с начала торгового дня. Предидущая версия Прилипалы (та которая в Excel-е) — работала в режиме реального времени.
3) Начал экспериментировать с Телеграммом — создал канал kbs.online (
Всем привет. Увлекаюсь алготрейдингом, иногда пишу сюда. Придумал, реализовал и протестировал простую стратегию. Решил поделится своим личным достижением, чтобы продемонстрировать Вам как многокритериальный анализ и подбор коэффициентов индивидуально для каждого инструмента (акции) может отражаться на результате.
Суть, философия и детальное описание стратегии
Суть банальна и проста «Покупаем дешевле продаем дороже». Да, только лонг с усреднением при падении, у меня аллергия на шорты. Без учета сигналов индикаторов, фундаменталки, бреда нейронных сетей и прочего. Задумка создать простой инструмент, а как/когда/где его использовать — решает пользователь.
Философия: считаю что каждая акция индивидуальна и зависит от стоимости лота, ликвидности, волатильности. Задача скрипта — за счет подстройки коэффициентов — максимально эффективно зарабатывать на любых движениях акции.
Описание стратегии:
Про свою разработку под кодовым названием «Прилипала» писал вот здесь:
https://smart-lab.ru/blog/583818.php
https://smart-lab.ru/blog/584792.php
Потом давал прогнозы, вот они:
https://smart-lab.ru/blog/586262.php
https://smart-lab.ru/blog/588260.php
Потом мне надоело экспериментировать с «общественной оценкой» своих достижений и я тупо продолжил пользоваться своим инструментом. Успешно кстати. В очередной раз вангую, помимо золота — до конца марта вверх пойдут аэрофлот и аптечки (APTK).
Зачем я пишу сейчас? Потому что, понимаю, что предстоящий период всеобщего падения и пессимизма — это почти идеальное время для моей «прилипалы», которая была придумана на зимних каникулах в качестве развлечения. Почему я так считаю: потому что рынки будут сильно падать и народ будет заниматься всеобщей забавой под названием «ловля падающих ножей», т.е. скупка сильно падающих акций в расчете на быстрый отскок. Но вот только как понять, продолжит ли акция свое яркое пике, или вот-вот начнет расти? По объемам, крупным сделкам и отчасти смене скорости совершения сделок по конкретному инструменту. Ну т.е. вот акция падает, объемы показывают что 90% всех совершаемых сделок — это продажа. А вот мы видим интересную крупную сделку на покупку. А вот еще. Чем не сигнал для кратковременной покупки? Но, все индивидуально конечно. На газпроме, сбербанке с их огромными объемами — такие крупные сделки вообще никакой роли не играют, ну или они должны быть реально крупными (более 15% от всего объема покупок/продаж, но такое происходит крайне редко). Вообщем приходится наблюдать и «знать свой инструмент»
Доработал программу до рабочего прототипа. Чтобы Вам было интересно читать дальше, возьму на себя смелость высказать предположение о следующем паттерне, который я заметил в процессе разработки и тестирования:
— в течение торгового дня направление больших сделок (покупка/продажа) является маркером того, куда пойдет цена (вверх/вниз) опять же в течение дня. На «Полюс-золоте» и «Распадской» с утра 03.01.2020 общий объем сделок на покупку превышал объем сделок на продажу, при этом по «большим сделкам» была видна обратная ситуация(больше продавали, чем покупали). К концу дня, по «Полюс-золоту» объемы всех (в том числе и «больших») сделок на продажу превысили покупку, а по «Распадской» эта ситуация осталась прежней.
Отмечу, что это было лишь наблюдение в процессе работы, без документирования доли сделок (в %-ах) в общем объеме и прочее.
Все по прежнему скачать можно вот здесь: https://github.com/BazDen/Stuck
Все по прежнему открыто для редактирования, весь исходный код открыт, можете дорабатывать проект «под себя»
Решил заморочиться над анализом обезличенных сделок.
Зачем ?
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 секунду), есть риск не успеть подгрузить данные, т.к. альфа-директ может их затеречь очередной порцией новых данных.