Блог им. vkcoda982

Пишу MarketScanner. 09.04.2016

Прошло уже три месяца, как я начал писать свой собственный сканер рынка. Недавно купил лицензию на Windows 10 и тестирую программу уже на этой ОС. Пишу в свободное от основной работы время — мне понравилось писать код для новой сферы деятельности, никак не связанной с основной профессией. В последнее время код уже не меняется сколь-нибудь кардинально, а это значит, что разработка фетчера подходит к логическому концу.

Фетчер данных — это консольное приложение, написанное на С++11, которое является клиентом платформы TWS и общается с ней через IB API. Предполагается, что оно может работать непрерывно, а в случае разрыва связи или закрытия — ждать восстановления соединения или перезапускаться и продолжать работу с того места, где остановилось в прошлый раз. Перезапуск осуществляется через отдельную программу-монитор, которая следит за процессом в памяти, и если необходимо, запускает его заново.

На данный момент программа успешно вытянула дневные данные по всем бумагам, торгуемым на NASDAQ, по которым у IB есть доступ. Если начинать с пустой базы данных, то предполагается что сначала вытягиваются свечи за прошедший годовой период, а в повторных циклах просто сравнивается текущая дата с последней записанной и отсутствующие свечи докачиваются. Таким образом базу данных можно содержать в актуальном состоянии.

В последнее время перестали выскакивать pacing violation, я заметил что мне удаётся сделать 60 запросов в 10-минутный период (раньше PV наступал после 57 запросов). Что это — моя ошибка или IB что-то подправили на сервере — сложно сказать, но пока работает как указано в Historical Data Limitations. Также я внедрил разные проверки, которые делают программу стабильнее: например, если при ответе на запрос «словлена» ошибка или наступил timeout, то он изымается из очереди. В общем IB позволяют вполне себе тянуть актуальные рыночные данные, если у вас в аккаунте есть соответствующая подписка, а для физиков она стоит недорого. Единственное ограничение — время: при 60 запросах в течении 10 минут понадобится около 9 часов чтобы обновить дневные свечи по всем бумагам. При стабильном интернете это можно сделать за ночь.

Вывод в консоль я сделал цветным — так легче просматривать лог на предмет ошибок или предупреждений:

Пишу MarketScanner. 09.04.2016

Программу ждут мелкие доработки, такие как управление из командной строки и возможность фетчить данные с разными таймфреймами: дневки, часы, минуты. Параллельно я планирую заняться написанием визуализатора графиков с UI, который будет читать базу данных и отображать любой тикер. А после этого проект вступит в финальную фазу — написание алгоритмов поиска заданных паттернов на рынке на разных таймфреймах и алерты на потенциально интересные ситуации.

P. S. Проект надо было как-то назвать — я выбрал женское имя Эбигейл :)
138 | ★1
1 комментарий
ЭЖена Скриба начитался?

Читайте на SMART-LAB:
Фото
Конвертируемые облигации: как работает новый для рынка инструмент
Конвертируемые облигации — редкий инструмент для российского рынка. Он сочетает в себе привычную логику облигационного займа и возможность...
Фото
Скрипт сегодняшнего размещения БИЗНЕС АЛЬЯНС (BBB-|ru|, 500 млн р., YTM 26,22%)
📳  Сегодня, 25 марта, стартует  размещение облигаций АО БИЗНЕС АЛЬЯНС 📳  BBB-|ru|  // 500 млн р. // 3 года //  купон / доходность: 23,5%...
Фото
«Ренессанс страхование» и Группа компаний «Союз Регион» заключили соглашение о сотрудничестве
Группа компаний «Союз» -  это официальный дилер ПАО «КАМАЗ». Соглашение рассчитано на пять лет и определяет общие рамки совместной работы. Стороны...
Фото
Россети Ленэнерго. Отчет МСФО. Считаем дивидендную базу
Компания Россети Ленэнерго опубликовала финансовый отчет за 2025г. по МСФО. Отчет МСФО и РСБУ у сетевых компаний очень похожи, а так...

теги блога 🗝Багатенький Буратина

....все тэги



UPDONW
Новый дизайн