Справочник API¶
Функции-запросы¶
Справочная информация¶
Функции из данного раздела носят вспомогательный характер и нужны для получения данных для построения остальных запросов.
- apimoex.get_reference(session: Session, 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 – Сессия интернет соединения.
placeholder – Наименование плейсхолдера в адресе запроса: engines, markets, boards, boardgroups, durations, securitytypes, securitygroups, securitycollections
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- apimoex.find_securities(session: Session, string: str, columns: tuple[str, ...] | None = ('secid', 'regnumber')) list[dict[str, str | int | float]] ¶
Найти инструменты по части Кода, Названию, ISIN, Идентификатору Эмитента, Номеру гос.регистрации.
Один из вариантов использования - по регистрационному номеру узнать предыдущие тикеры эмитента, и с помощью нескольких запросов об истории котировок собрать длинную историю с использованием всех предыдущих тикеров.
Описание запроса - https://iss.moex.com/iss/reference/5
- Параметры:
session – Сессия интернет соединения.
string – Часть Кода, Названия, ISIN, Идентификатора Эмитента, Номера гос.регистрации.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию тикер и номер государственно регистрации. Если пустой или None, то загружаются все столбцы.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- apimoex.find_security_description(session: Session, security: str, columns: tuple[str, ...] | None = ('name', 'title', 'value')) list[dict[str, str | int | float]] ¶
Получить спецификацию инструмента.
Один из вариантов использования - по тикеру узнать дату начала торгов.
Описание запроса - https://iss.moex.com/iss/reference/13
- Параметры:
session – Сессия интернет соединения.
security – Тикер ценной бумаги.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию краткое название, длинное название на русском и значение показателя.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- apimoex.get_index_tickers(session: Session, index: str, date: str | None = None, columns: tuple[str, ...] | None = ('ticker', 'from', 'till', 'tradingsession'), market: str = 'index', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить информацию по составу указанного индекса за указанную дату.
Описание запроса - https://iss.moex.com/iss/reference/148
Список индексов - https://iss.moex.com/iss/statistics/engines/stock/markets/index/analytics
- Параметры:
session – Сессия интернет соединения.
index – Название индекса. Например, IMOEX.
date – Дата вида ГГГГ-ММ-ДД. Если указано, то будут показаны только активные инструменты, по которым тогда рассчитывалось значение индекса. Если в указанный день не было торгов, то вернёт пустой список! При отсутствии данные будут загружены с начала истории.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию режим торгов, дата торгов, цена закрытия и объем в штуках и стоимости. Если пустой или None, то загружаются все столбцы.
market – Рынок - по умолчанию индексы.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в 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(), используя числовой код размера свечки.
- apimoex.get_market_candle_borders(session: Session, security: str, market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить таблицу интервалов доступных дат для свечей различного размера на рынке для всех режимов торгов.
Описание запроса - https://iss.moex.com/iss/reference/156
- Параметры:
session – Сессия интернет соединения.
security – Тикер ценной бумаги.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- apimoex.get_board_candle_borders(session: Session, 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 – Сессия интернет соединения.
security – Тикер ценной бумаги.
board – Режим торгов - по умолчанию основной режим торгов T+2.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- apimoex.get_market_candles(session: Session, security: str, interval: int = 24, start: str | None = None, end: str | None = None, columns: tuple[str, ...] | None = ('begin', 'open', 'close', 'high', 'low', 'value', 'volume'), market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить свечи в формате HLOCV указанного инструмента на рынке для основного режима торгов за интервал дат.
Если торговля идет в нескольких основных режимах, то на один интервал времени может быть выдано несколько свечек - по свечке на каждый режим. Предположительно такая ситуация может произойти для свечек длиннее 1 дня в периоды, когда менялся режим торгов.
Описание запроса - https://iss.moex.com/iss/reference/155
- Параметры:
session – Сессия интернет соединения.
security – Тикер ценной бумаги.
interval – Размер свечки - целое число 1 (1 минута), 10 (10 минут), 60 (1 час), 24 (1 день), 7 (1 неделя), 31 (1 месяц) или 4 (1 квартал). По умолчанию дневные данные.
start – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены с начала истории.
end – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены до конца истории. Для текущего дня будут загружены не окончательные данные, если торги продолжаются.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию момент начала свечки и HLOCV. Если пустой или None, то загружаются все столбцы.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- apimoex.get_board_candles(session: Session, security: str, interval: int = 24, start: str | None = None, end: str | None = None, columns: tuple[str, ...] | None = ('begin', 'open', 'close', 'high', 'low', 'value', 'volume'), board: str = 'TQBR', market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить свечи в формате HLOCV указанного инструмента в указанном режиме торгов за интервал дат.
Описание запроса - https://iss.moex.com/iss/reference/46
- Параметры:
session – Сессия интернет соединения.
security – Тикер ценной бумаги.
interval – Размер свечки - целое число 1 (1 минута), 10 (10 минут), 60 (1 час), 24 (1 день), 7 (1 неделя), 31 (1 месяц) или 4 (1 квартал). По умолчанию дневные данные.
start – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены с начала истории.
end – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены до конца истории. Для текущего дня будут загружены не окончательные данные, если торги продолжаются.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию момент начала свечки и HLOCV. Если пустой или None, то загружаются все столбцы.
board – Режим торгов - по умолчанию основной режим торгов T+2.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
Исторические данные по дневным котировкам¶
В отличие от свечек, функции данного раздела предоставляют много вспомогательной информации и имеют более глубокую историю. Функция get_board_dates() позволяет проверить для каких дат имеются исторические котировки. Функция get_board_securities() позволяет получить данные о размере лотов и прочей информации по всем торгуемым бумагам в конкретном режиме торгов. Функции get_market_history() и get_board_history() позволяют запросить исторические дневные котировки с различной вспомогательной информацией для конкретной бумаги для всех режимов торгов рынка или для конкретного режима торгов, соответственно.
- apimoex.get_board_dates(session: Session, board: str = 'TQBR', market: str = 'shares', engine: str = 'stock') list[dict[str, str | int | float]] ¶
Получить интервал дат, доступных в истории для рынка по заданному режиму торгов.
Описание запроса - https://iss.moex.com/iss/reference/26
- Параметры:
session – Сессия интернет соединения.
board – Режим торгов - по умолчанию основной режим торгов T+2.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список из одного элемента - словаря с ключами „from“ и „till“.
- apimoex.get_board_securities(session: Session, table: str = 'securities', columns: tuple[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 – Сессия интернет соединения.
table – Таблица с данными, которую нужно вернуть: securities - справочник торгуемых ценных бумаг, marketdata - данные с результатами торгов текущего дня.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию тикер, номер государственно регистрации, размер лота и краткое название. Если пустой или None, то загружаются все столбцы.
board – Режим торгов - по умолчанию основной режим торгов T+2.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- apimoex.get_market_history(session: Session, security: str, start: str | None = None, end: str | None = None, columns: tuple[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 – Сессия интернет соединения.
security – Тикер ценной бумаги.
start – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены с начала истории.
end – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены до конца истории.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию режим торгов, дата торгов, цена закрытия и объем в штуках и стоимости. Если пустой или None, то загружаются все столбцы.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
- apimoex.get_board_history(session: Session, security: str, start: str | None = None, end: str | None = None, columns: tuple[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 – Сессия интернет соединения.
security – Тикер ценной бумаги.
start – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены с начала истории.
end – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены до конца истории.
columns – Кортеж столбцов, которые нужно загрузить - по умолчанию режим торгов, дата торгов, цена закрытия и объем в штуках и стоимости. Если пустой или None, то загружаются все столбцы.
board – Режим торгов - по умолчанию основной режим торгов T+2.
market – Рынок - по умолчанию акции.
engine – Движок - по умолчанию акции.
- Результат:
Список словарей, которые напрямую конвертируется в pandas.DataFrame.
Реализация произвольного запроса¶
Для осуществления запроса необходимо начать сессию соединений с MOEX ISS и передать клиенту корректный url и дополнительные параметры:
Полный перечень возможных запросов к MOEX ISS
Официальное Руководство разработчика с дополнительной информацией
- class apimoex.ISSClient(session: Session, url: str, query: dict[str, str | int] | None = None)¶
Базовые классы:
Iterable
[dict
[str
,list
[dict
[str
,str
|int
|float
]]]]Клиент для MOEX ISS.
Для работы клиента необходимо передать requests.Session.
Загружает данные для простых ответов с помощью метода get. Для ответов состоящих из нескольких блоков данных поддерживается протокол итерируемого для отдельных блоков или метод get_all для их автоматического сбора.
- get(start: int | None = None) dict[str, list[dict[str, str | int | float]]] ¶
Загрузка данных.
- Параметры:
start – Номер элемента с которого нужно загрузить данные. Используется для дозагрузки данных, состоящих из нескольких блоков. При отсутствии данные загружаются с начального элемента.
- Результат:
Блок данных с отброшенной вспомогательной информацией - словарь, каждый ключ которого соответствует одной из таблиц с данными. Таблицы являются списками словарей, которые напрямую конвертируются в pandas.DataFrame.
- get_all() dict[str, list[dict[str, str | int | float]]] ¶
Собирает все блоки данных для запросов, ответы на которые выдаются по частям отдельными блоками.
- Результат:
Объединенные из всех блоков данные с отброшенной вспомогательной информацией - словарь, каждый ключ которого соответствует одной из таблиц с данными. Таблицы являются списками словарей, которые напрямую конвертируются в pandas.DataFrame.