Skip to main content

Asyncio MOEX ISS API

Project description

Asyncio MOEX ISS API

Build Status Codacy Badge Codacy Badge

Реализация на основе asyncio части запросов к MOEX Informational & Statistical Server

Основные возможности

Реализовано несколько функций-запросов информации о торгуемых акциях и их исторических котировках, результаты которых напрямую конвертируются в pandas.DataFrame.

Работа функций базируется на универсальном клиенте, позволяющем осуществлять произвольные запросы к MOEX ISS, поэтому перечень доступных функций-запросов может быть легко расширен. При необходимости добавления функций воспользуйтесь Issues на GitHub с указанием ссылки на описание запроса:

Начало работы

Установка

pip install aiomoex

Пример использования реализованных запросов

История котировок SNGSP в режиме TQBR

import asyncio

import aiomoex
import pandas as pd


async def main():
    async with aiomoex.ISSClientSession():
        data = await aiomoex.get_board_history('SNGSP')
        df = pd.DataFrame(data)
        df.set_index('TRADEDATE', inplace=True)
        print(df.head(), '\n')
        print(df.tail(), '\n')
        df.info()


asyncio.run(main())
            CLOSE    VOLUME
TRADEDATE                  
2014-06-09  27.48  12674200
2014-06-10  27.55  14035900
2014-06-11  28.15  27208800
2014-06-16  28.27  68059900
2014-06-17  28.20  22101600 

             CLOSE    VOLUME
TRADEDATE                   
2018-11-16  37.860   9660800
2018-11-19  37.315  28765600
2018-11-20  36.790  19853500
2018-11-21  36.930  14583000
2018-11-22  37.480   9656600 

<class 'pandas.core.frame.DataFrame'>
Index: 1125 entries, 2014-06-09 to 2018-11-22
Data columns (total 2 columns):
CLOSE     1125 non-null float64
VOLUME    1125 non-null int64
dtypes: float64(1), int64(1)
memory usage: 26.4+ KB

Пример реализации запроса с помощью клиента

Перечень акций, торгующихся в режиме TQBR - описание запроса

import asyncio

import aiomoex
import pandas as pd


async def main():
    request_url = 'https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.json'
    arguments = {'securities.columns': 'SECID,REGNUMBER,LOTSIZE,SHORTNAME'}
    iss = aiomoex.ISSClient(request_url, arguments)
    iss.start_session()
    data = await iss.get()
    df = pd.DataFrame(data['securities'])
    df.set_index('SECID', inplace=True)
    print(df.head(), '\n')
    print(df.tail(), '\n')
    df.info()
    await iss.close_session()


asyncio.run(main())
       LOTSIZE     REGNUMBER   SHORTNAME
SECID                                   
ABRD        10  1-02-12500-A  АбрауДюрсо
AFKS       100  1-05-01669-A  Система ао
AFLT        10  1-01-00010-A    Аэрофлот
AGRO         1          None    AGRO-гдр
AKRN         1  1-03-00207-A       Акрон 

       LOTSIZE     REGNUMBER  SHORTNAME
SECID                                  
YRSBP      100  2-01-50099-A  ТНСэнЯр-п
ZILL         1  1-02-00036-A     ЗИЛ ао
ZMZN        10  1-01-00230-A     ЗМЗ-ао
ZMZNP      100  2-01-00230-A     ЗМЗ-ап
ZVEZ      1000  1-01-00169-D  ЗВЕЗДА ао 

<class 'pandas.core.frame.DataFrame'>
Index: 277 entries, ABRD to ZVEZ
Data columns (total 3 columns):
LOTSIZE      277 non-null int64
REGNUMBER    268 non-null object
SHORTNAME    277 non-null object
dtypes: int64(1), object(2)
memory usage: 8.7+ KB

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiomoex-1.0.0.tar.gz (8.6 kB view hashes)

Uploaded Source

Built Distribution

aiomoex-1.0.0-py3-none-any.whl (9.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page