Справочник API¶
Функции-запросы¶
При необходимости сделать множество запросов для реального ускорения следует осуществлять их асинхронный вызов с
помощью функции стандартной библиотеки
asyncio.gather() или ее аналогов, а
не использовать последовательные вызовы с помощью await aiomoex.get_something()
.
Справочная информация¶
Функции из данного раздела носят вспомогательный характер и нужны для получения данных для построения остальных запросов.
- async aiomoex.get_reference(session: ClientSession, placeholder: str = 'boards') list[dict[str, str | int | float]] ¶
Получить перечень доступных значений плейсхолдера в адресе запроса.
Например в описание запроса https://iss.moex.com/iss/reference/32 присутствует следующий адрес /iss/engines/[engine]/markets/[market]/boards/[board]/securities с плейсхолдерами engines, markets и boards.
Описание запроса - https://iss.moex.com/iss/reference/28
- Параметры:
session – Сессия http соединения.
placeholder – Наименование плейсхолдера в адресе запроса: engines, markets, boards, boardgroups, durations, securitytypes, securitygroups, securitycollections.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- async aiomoex.find_securities(session: ClientSession, string: str, columns: Iterable[str] | None = ('secid', 'regnumber')) list[dict[str, str | int | float]] ¶
Найти инструменты по части Кода, Названию, ISIN, Идентификатору Эмитента, Номеру гос.регистрации.
Один из вариантов использования - по регистрационному номеру узнать предыдущие тикеры эмитента, и с помощью нескольких запросов об истории котировок собрать длинную историю с использованием всех предыдущих тикеров.
Описание запроса - https://iss.moex.com/iss/reference/5
- Параметры:
session – Сессия http соединения.
string – Часть Кода, Названия, ISIN, Идентификатора Эмитента, Номера гос.регистрации.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию тикер и номер государственно регистрации. Если пустой или None, то загружаются все столбцы.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
Исторические данные по свечкам¶
MOEX ISS формирует свечки в формате HLOCV, при этом используются следующие условные числовые коды:
1 - 1 минута
10 - 10 минут
60 - 1 час
24 - 1 день
7 - 1 неделя
31 - 1 месяц
4 - 1 квартал
Для разных свечек и инструментов доступна информация за разные интервалы дат, уточнить которые можно с помощью функции get_market_candle_borders() или get_board_candle_borders(), а получить исторические значения свечек с помощью get_market_candles() или get_board_candles(), используя числовой код размера свечки.
- async aiomoex.get_market_candle_borders(session: ClientSession, security: str, market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить таблицу интервалов доступных дат для всех режимов торгов.
Описание запроса - https://iss.moex.com/iss/reference/156
- Параметры:
session – Сессия http соединения.
security – Тикер ценной бумаги.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- async aiomoex.get_board_candle_borders(session: ClientSession, security: str, board: str = 'TQBR', market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить таблицу интервалов доступных дат для указанного режиме торгов.
Описание запроса - https://iss.moex.com/iss/reference/48
- Параметры:
session – Сессия http соединения.
security – Тикер ценной бумаги
board – Режим торгов - по умолчанию основной режим торгов T+2.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame
- async aiomoex.get_market_candles(session: ClientSession, security: str, interval: int = 24, start: str | None = None, end: str | None = None, market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить свечи в формате HLOCV указанного инструмента на рынке для основного режима торгов.
Если торговля идет в нескольких основных режимах, то на один интервал времени может быть выдано несколько свечек - по свечке на каждый режим. Предположительно такая ситуация может произойти для свечек длиннее 1 дня.
Описание запроса - https://iss.moex.com/iss/reference/155
- Параметры:
session – Сессия http соединения.
security – Тикер ценной бумаги.
interval – Размер свечки - целое число 1 (1 минута), 10 (10 минут), 60 (1 час), 24 (1 день), 7 (1 неделя), 31 (1 месяц) или 4 (1 квартал). По умолчанию дневные данные.
start – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены с начала истории.
end – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены до конца истории.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- async aiomoex.get_board_candles(session: ClientSession, security: str, interval: int = 24, start: str | None = None, end: str | None = None, board: str = 'TQBR', market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить свечи в формате HLOCV указанного инструмента в указанном режиме торгов за интервал дат.
Описание запроса - https://iss.moex.com/iss/reference/46
- Параметры:
session – Сессия http соединения.
security – Тикер ценной бумаги.
interval – Размер свечки - целое число 1 (1 минута), 10 (10 минут), 60 (1 час), 24 (1 день), 7 (1 неделя), 31 (1 месяц) или 4 (1 квартал). По умолчанию дневные данные.
start – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены с начала истории.
end – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены до конца истории.
board – Режим торгов - по умолчанию основной режим торгов T+2.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
Исторические данные по дневным котировкам¶
В отличие от свечек, функции данного раздела предоставляют много вспомогательной информации и имеют более глубокую историю. Функция get_board_dates() позволяет проверить для каких дат имеются исторические котировки. Функция get_board_securities() позволяет получить данные о размере лотов и прочей информации по всем торгуемым бумагам в конкретном режиме торгов. Функции get_market_history() и get_board_history() позволяют запросить исторические дневные котировки с различной вспомогательной информацией для конкретной бумаги для всех режимов торгов рынка или для конкретного режима торгов, соответственно.
- async aiomoex.get_board_dates(session: ClientSession, board: str = 'TQBR', market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить интервал дат, доступных в истории для рынка по заданному режиму торгов.
Описание запроса - https://iss.moex.com/iss/reference/26
- Параметры:
session – Сессия http соединения.
board – Режим торгов - по умолчанию основной режим торгов T+2.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список из одного элемента - словаря с ключами „from“ и „till“.
- async aiomoex.get_board_securities(session: ClientSession, table: str = 'securities', columns: Iterable[str] | None = ('SECID', 'REGNUMBER', 'LOTSIZE', 'SHORTNAME'), board: str = 'TQBR', market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить таблицу инструментов по режиму торгов со вспомогательной информацией.
Описание запроса - https://iss.moex.com/iss/reference/32
- Параметры:
session – Сессия http соединения.
table – Таблица с данными, которую нужно вернуть: securities - справочник торгуемых ценных бумаг, marketdata - данные с результатами торгов текущего дня.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию тикер, номер государственно регистрации, размер лота и краткое название. Если пустой или None, то загружаются все столбцы.
board – Режим торгов - по умолчанию основной режим торгов T+2.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame
- async aiomoex.get_market_history(session: ClientSession, security: str, start: str | None = None, end: str | None = None, columns: Iterable[str] | None = ('BOARDID', 'TRADEDATE', 'CLOSE', 'VOLUME', 'VALUE'), market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить историю по одной бумаге на рынке для всех режимов торгов за интервал дат.
На одну дату может приходиться несколько значений, если торги шли в нескольких режимах.
Описание запроса - https://iss.moex.com/iss/reference/63
- Параметры:
session – Сессия http соединения.
security – Тикер ценной бумаги.
start – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены с начала истории.
end – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены до конца истории.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию режим торгов, дата торгов, цена закрытия и объем в штуках и стоимости. Если пустой или None, то загружаются все столбцы.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- async aiomoex.get_board_history(session: ClientSession, security: str, start: str | None = None, end: str | None = None, columns: Iterable[str] | None = ('BOARDID', 'TRADEDATE', 'CLOSE', 'VOLUME', 'VALUE'), board: str = 'TQBR', market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить историю торгов для указанной бумаги в указанном режиме торгов за указанный интервал дат.
Описание запроса - https://iss.moex.com/iss/reference/65
- Параметры:
session – Сессия http соединения.
security – Тикер ценной бумаги.
start – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены с начала истории.
end – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены до конца истории.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию режим торгов, дата торгов, цена закрытия и объем в штуках и стоимости. Если пустой или None, то загружаются все столбцы.
board – Режим торгов - по умолчанию основной режим торгов T+2.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
Реализация произвольного запроса¶
Для осуществления запроса необходимо начать сессию соединений с MOEX ISS и передать клиенту корректный url и дополнительные параметры:
Полный перечень возможных запросов к MOEX ISS
Официальное Руководство разработчика с дополнительной информацией
- class aiomoex.ISSClient(session: ClientSession, url: str, query: dict[str, str | int] | None = None)¶
Базовые классы:
AsyncIterable
[dict
[str
,list
[dict
[str
,str
|int
|float
]]]]Асинхронный клиент для MOEX ISS - может быть использован с async for.
Загружает данные для простых ответов с помощью метода get. Для ответов состоящих из нескольких блоков поддерживается протокол асинхронного генератора отдельных блоков или метод get_all для их автоматического сбора.
- async get(start: int | None = None) dict[str, list[dict[str, str | int | float]]] ¶
Загрузка данных.
- Параметры:
start – Номер элемента с которого нужно загрузить данные. Используется для дозагрузки данных, состоящих из нескольких блоков. При отсутствии данные загружаются с начального элемента.
- Результат:
Блок данных с отброшенной вспомогательной информацией - словарь, каждый ключ которого соответствует одной из таблиц с данными. Таблицы являются списками словарей, которые напрямую конвертируются в pandas.DataFrame.
- Исключение:
ISSMoexError – Ошибка при обращении к ISS Moex.
- async get_all() dict[str, list[dict[str, str | int | float]]] ¶
Собирает все блоки данных для запросов.
- Результат:
Объединенные из всех блоков данные с отброшенной вспомогательной информацией - словарь, каждый ключ которого соответствует одной из таблиц с данными. Таблицы являются списками словарей, которые напрямую конвертируются в pandas.DataFrame.