Open darkcorpd opened 2 years ago
Не очень понимаю вашу идею.
У функций загрузки котировок и так есть дефолтные параметры для загрузки котировок акций в основном режиме торгов.
Для каких-то других задач/бумаг не нужен какой-то развесистый справочник - обычно достаточно один раз узнать набор плейсхолдеров и потом грузишь нужные бумаги. Как-то это автоматизировать достаточно сложно, так как в указанной вами таблице обычно несколько десятков доступных вариантов, и угадать, что вам нужно априори невозможно.
Поясню. Я загружаю динамику котировок списком, пробегаясь функцией apimoex.get_board_history по списку тикеров. В списке как акции, так и фьючерсы. Соответственно, для них нужно отдельно определить и указать engine, market. Хотелось бы автоматизировать эти действия, т.к. пока для акций и фьючерсов у меня отдельные функции получаются.
У меня была идея сделать библиотеку максимально близкую к API, а все остальное делает каждый конкретный человек под свою задачу.
В вашем случае нужен справочник всего из двух вариантов - один набор для фьючерсов, а другой для акций. Какой-то сложности с помощью одно if это сделать я не вижу. И у вас конкретная частная задача и мне кажется, ее стоит решать в отдельном порядке.
Что бы вы поняли, таких частных задач очень много и под все пилить какие-то решения в рамках этой библиотеки ИМХО нет большого смысла - текущий код могут использовать многие, а вашу или другую задачу решает один человек.
У других людей другие задачи - я например склеиваю котировки акций из нескольких режимов, чтобы получить максимально глубокую историю котировок, так как текущий режим TQBR не существовал до 2014 года, а мне нужны котировки с начала 2000. Тут совсем другой принцип выбора "правильных плейсходеров".
Кто-то берет курсы, а там есть несколько режимов расчета работающих сейчас и они все нужны. И т.д.
Как вариант других задач - одному пользователю хотелось это все в классы обернуть, при этом его интересовал ограниченный перечень инструментов, и он написал целую библиотеку поверх этой https://github.com/epogrebnyak/finec
Один пользователь подтверждает:
from finec.moex import whoami, traded_boards
# General information about ticker
whoami("YNDX")
# What boards does a security trade at?
traded_boards("MTSS")
Поясню. Я загружаю динамику котировок списком, пробегаясь функцией apimoex.get_board_history по списку тикеров. В списке как акции, так и фьючерсы. Соответственно, для них нужно отдельно определить и указать engine, market. Хотелось бы автоматизировать эти действия, т.к. пока для акций и фьючерсов у меня отдельные функции получаются.
В библиотеке finec для акций есть класс Stock
, в котором записаны engine и дефолтная борда, можно добавить фьючерсы, если дадите код как вы сейчас информацию по ним достаете. Можно открыть ишью тут: https://github.com/epogrebnyak/finec/issues
apimoex
- более низкоуровневая библиотека с клиентом для доступа к данным Мосбиржи, finec
- библиотека для более высокоуровневого доступа, использует apimoex
как клиент.
Добрый день!
Можно ли подправить функционал, чтобы можно было по ISIN/тикеру автоматически определять плейсхолдеры [engine], [market], чтобы затем их использовать для загрузки котировок?
Не хочется городить справочники. Насколько понимаю, стоит ограничение в requests.py -> def find_security_description -> table = "description". Там есть вторая таблица "boards".