Справочник 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 и дополнительные параметры:

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.