apimoex

MOEX ISS API


Keywords
iss, moex
License
Unlicense
Install
pip install apimoex==1.4.0

Documentation

MOEX ISS API

РСализация части запросов ΠΊ MOEX Informational & Statistical Server.

ДокумСнтация

https://wlm1ke.github.io/apimoex/

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ-запросов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΡ€Π³ΡƒΠ΅ΠΌΡ‹Ρ… акциях ΠΈ ΠΈΡ… историчСских ΠΊΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² pandas.DataFrame.

Π Π°Π±ΠΎΡ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ базируСтся Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΌ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ запросы ΠΊ MOEX ISS, поэтому ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ доступных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ-запросов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½. ΠŸΡ€ΠΈ нСобходимости добавлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Issues Π½Π° GitHub с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ссылки Π½Π° описаниС запроса:

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹

Установка

$ pip install apimoex

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… запросов

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΎΠΊ SNGSP Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ TQBR:

import requests

import apimoex
import pandas as pd

with requests.Session() as session:
    data = apimoex.get_board_history(session, 'SNGSP')
    df = pd.DataFrame(data)
    df.set_index('TRADEDATE', inplace=True)
    print(df.head(), '\n')
    print(df.tail(), '\n')
    df.info()
           BOARDID  CLOSE    VOLUME         VALUE
TRADEDATE
2014-06-09    TQBR  27.48  12674200  3.484352e+08
2014-06-10    TQBR  27.55  14035900  3.856417e+08
2014-06-11    TQBR  28.15  27208800  7.602146e+08
2014-06-16    TQBR  28.27  68059900  1.913160e+09
2014-06-17    TQBR  28.20  22101600  6.292844e+08

           BOARDID   CLOSE     VOLUME         VALUE
TRADEDATE
2019-09-04    TQBR  38.060  243010500  9.348435e+09
2019-09-05    TQBR  36.140  129366600  4.704949e+09
2019-09-06    TQBR  35.475   62389000  2.201887e+09
2019-09-09    TQBR  34.570   54331300  1.905837e+09
2019-09-10    TQBR  35.250   45966000  1.605849e+09

<class 'pandas.core.frame.DataFrame'>
Index: 1326 entries, 2014-06-09 to 2019-09-10
Data columns (total 4 columns):
BOARDID    1326 non-null object
CLOSE      1326 non-null float64
VOLUME     1326 non-null int64
VALUE      1326 non-null float64
dtypes: float64(2), int64(1), object(1)
memory usage: 51.8+ KB

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ запроса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π°ΠΊΡ†ΠΈΠΉ, Ρ‚ΠΎΡ€Π³ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ TQBR (описаниС запроса):

import requests

import apimoex
import pandas as pd


request_url = ('https://iss.moex.com/iss/engines/stock/'
               'markets/shares/boards/TQBR/securities.json')
arguments = {'securities.columns': ('SECID,'
                                    'REGNUMBER,'
                                    'LOTSIZE,'
                                    'SHORTNAME')}
with requests.Session() as session:
    iss = apimoex.ISSClient(session, request_url, arguments)
    data = iss.get()
    df = pd.DataFrame(data['securities'])
    df.set_index('SECID', inplace=True)
    print(df.head(), '\n')
    print(df.tail(), '\n')
    df.info()
          REGNUMBER  LOTSIZE   SHORTNAME
SECID
ABRD   1-02-12500-A       10  ΠΠ±Ρ€Π°ΡƒΠ”ΡŽΡ€ΡΠΎ
AFKS   1-05-01669-A      100  БистСма Π°ΠΎ
AFLT   1-01-00010-A       10    Аэрофлот
AGRO           None        1    AGRO-Π³Π΄Ρ€
AKRN   1-03-00207-A        1       Акрон

          REGNUMBER  LOTSIZE   SHORTNAME
SECID
YNDX           None        1  Yandex clA
YRSB   1-01-50099-A       10     ВНБэнЯр
YRSBP  2-01-50099-A       10   ВНБэнЯр-ΠΏ
ZILL   1-02-00036-A        1      Π—Π˜Π› Π°ΠΎ
ZVEZ   1-01-00169-D     1000   ЗВЕЗДА Π°ΠΎ

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