Блог им. WLMike

Библиотечка для MOEX ISS

Написал библиотечку для асинхронной загрузки данных с MOEX ISS на Python. Большой выигрыш по скорости, когда нужно данные по десяткам или сотням бумаг загрузить. 

Пока реализованы запросы по перечню торгуемых бумаг и историческим котировкам. На следующей неделе собираюсь добавить загрузку свечек, информации по доступным свечкам и общего справочника MOEX ISS.
★24
30 комментариев
Минутки фьючей с ОИ с 2009-го года скачать сможете?
avatar
bocha, с фьчерсами дело не имел. Подскажите, что такое ОИ? Какой у них SECID?
avatar
Михаил,  ОИ — это Открытый Интерес.  Он же «Количество открытых позиций по инструменту». 
SECID не знаю, но в знаю, что в квике текущий ОИ можно смотреть в отдельной табличке наряду с кучей других параметров «заявки» «сделки» «ГО покупателя» и прочее.
По идее должна быть на бирже эта информация. Поищете?





avatar
bocha, насколько я понял открытого интереса нет в минутках — только HLOCV. Для RIZ8 данные [«2017-01-19 11:30:00», «2018-11-23 23:59:59»]. 

 

avatar

Та ведь однажды халява закончится.

И будет это стоить около 2700 в месяц.

Тарас Громницкий, возможно. Деньги они, насколько я понял, берут за текущие котировки — историю можно скачать бесплатно. Я уже год качаю — пока ничего не просили.
avatar
А pandas datareader не к этому источнику же обращается? Если к этому, то странно, что есть возможность только дневки скачать
avatar
fireburned, я посмотрел код — данные берут с MOEX ISS.
Я попробовал:

rd = moex.MoexReader('AKRN')

data = rd.read()

print(rd.url)

print(data.head())

print(data.tail())

data.info()

 
Получил дневные котировки с 2010г. В коде и описании не видно, как получить не дневные. Не подскажите как?
avatar
Михаил, В том то и дело, что другой ТФ как будто выкачать нельзя. 
avatar
fireburned, datareader использует всего один из запросов к ISS — получение истории дневных котировок для рынка насколько я понял из их кода.

В справочнике запросов к ISS грубо сотня разных запросов. Они просто их не стали реализовывать: https://iss.moex.com/iss/reference/

Дневную историю я уже сделал и собираюсь сделать запрос https://iss.moex.com/iss/reference/155 — выдает с свечки от минутных до квартальных
avatar
За доку спасибо
avatar
Есть уникальность в данных по сравнению с FINAM?
avatar
Sergey, в данных уникальности нет — все берут с моех в том числе FINAM. Тут скачивание асинхронное, что позволяет быстро много данных скачать. И данные забирается из первоисточника — что там Финам с ними делает перед выдачей вы никогда не узнаете. Я, например, не рискнул брать данные с Финама
avatar
Михаил, скорость скачивания сомнительный момент. Можно и подождать, это же история.

Понял насчет преимуществ. Видимо пока FINAM вне конкуренции за счет множества написанных программ и скриптов.
avatar
Михаил, Скачайте историю SBER, у меня с финама и MFD вот такая хрень.
Что у вас при скачивании с moex?



avatar
Борис Литвинов, какие конкретно данные по SBER вас интересуют — период времени и частота?
avatar
У вас вертикальная шкала не видна, но подозреваю в этих данных некорректно обрабатывается переход на новый регистрационный номер и сплит в 1000 раз
avatar
Михаил, минутки вся глубина,  где взять пересозданную для тестов?
avatar
Борис Литвинов, минутки в ИСС начинаются с 2011 года. Вы можете причесать свои данные поделив первый кусок на 1000, а объём в штуках умножить на 1000. Или просто отбросить, так как Акции с ценой 100000 рублей за штуку торгуются несколько по другому и не очень показательны в текущих условиях. 
avatar
впечатляет 
avatar
На мою убунту не ставится:

sudo pip install aiomoex
Downloading/unpacking aiomoex
Downloading aiomoex-1.2.0.tar.gz
Running setup.py (path:/tmp/pip_build_root/aiomoex/setup.py) egg_info for package aiomoex
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/tmp/pip_build_root/aiomoex/setup.py", line 8, in <module>
with open(pathlib.Path(__file__).parent / «aiomoex» / "__init__.py") as file:
TypeError: coercing to Unicode: need string or buffer, PosixPath found
Complete output from command python setup.py egg_info:
Traceback (most recent call last):

File "<string>", line 17, in <module>

File "/tmp/pip_build_root/aiomoex/setup.py", line 8, in <module>

with open(pathlib.Path(__file__).parent / «aiomoex» / "__init__.py") as file:

TypeError: coercing to Unicode: need string or buffer, PosixPath found

avatar
У вас питон и pip какой версии?
avatar
MadQuant, похоже проблема в старой версии питона — нужен 3.6 и выше. Поменял инсталятор, чтобы он падал с более понятным сообщением
avatar
Михаил, 3.6 — это что за зверь? «aptitute search python3» выдает только 3.5
avatar
MadQuant, 3.6 вышел в 2016 году — уже 3.7 вышел www.python.org/downloads/release/python-371/
avatar
Михаил, не подскажете, каким запросом получить текущие цены (пусть с задержкой 15 мин) по всем акциям TQBR?

Я смог найти только через запрос свечных данных по каждой бумаге отдельно.
Либо все бумаги, но за вчерашний день.

Спасибо!
avatar
sn1, https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.json?iss.only=marketdata
avatar
Спасибо!
avatar

теги блога Михаил

....все тэги



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