Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавить определение [engine], [market]... #14

Open
darkcorpd opened this issue May 26, 2022 · 6 comments
Open

Добавить определение [engine], [market]... #14

darkcorpd opened this issue May 26, 2022 · 6 comments

Comments

@darkcorpd
Copy link

Добрый день!

Можно ли подправить функционал, чтобы можно было по ISIN/тикеру автоматически определять плейсхолдеры [engine], [market], чтобы затем их использовать для загрузки котировок?

Не хочется городить справочники. Насколько понимаю, стоит ограничение в requests.py -> def find_security_description -> table = "description". Там есть вторая таблица "boards".

@WLM1ke
Copy link
Owner

WLM1ke commented May 26, 2022

Не очень понимаю вашу идею.

У функций загрузки котировок и так есть дефолтные параметры для загрузки котировок акций в основном режиме торгов.

Для каких-то других задач/бумаг не нужен какой-то развесистый справочник - обычно достаточно один раз узнать набор плейсхолдеров и потом грузишь нужные бумаги. Как-то это автоматизировать достаточно сложно, так как в указанной вами таблице обычно несколько десятков доступных вариантов, и угадать, что вам нужно априори невозможно.

@darkcorpd
Copy link
Author

Поясню.
Я загружаю динамику котировок списком, пробегаясь функцией apimoex.get_board_history по списку тикеров.
В списке как акции, так и фьючерсы. Соответственно, для них нужно отдельно определить и указать engine, market.
Хотелось бы автоматизировать эти действия, т.к. пока для акций и фьючерсов у меня отдельные функции получаются.

@WLM1ke
Copy link
Owner

WLM1ke commented May 26, 2022

У меня была идея сделать библиотеку максимально близкую к API, а все остальное делает каждый конкретный человек под свою задачу.

В вашем случае нужен справочник всего из двух вариантов - один набор для фьючерсов, а другой для акций. Какой-то сложности с помощью одно if это сделать я не вижу. И у вас конкретная частная задача и мне кажется, ее стоит решать в отдельном порядке.

Что бы вы поняли, таких частных задач очень много и под все пилить какие-то решения в рамках этой библиотеки ИМХО нет большого смысла - текущий код могут использовать многие, а вашу или другую задачу решает один человек.

У других людей другие задачи - я например склеиваю котировки акций из нескольких режимов, чтобы получить максимально глубокую историю котировок, так как текущий режим TQBR не существовал до 2014 года, а мне нужны котировки с начала 2000. Тут совсем другой принцип выбора "правильных плейсходеров".

Кто-то берет курсы, а там есть несколько режимов расчета работающих сейчас и они все нужны. И т.д.

@WLM1ke
Copy link
Owner

WLM1ke commented May 26, 2022

Как вариант других задач - одному пользователю хотелось это все в классы обернуть, при этом его интересовал ограниченный перечень инструментов, и он написал целую библиотеку поверх этой https://github.com/epogrebnyak/finec

@epogrebnyak
Copy link
Collaborator

epogrebnyak commented May 27, 2022

Один пользователь подтверждает:

from finec.moex import whoami, traded_boards

# General information about ticker
whoami("YNDX")

# What boards does a security trade at?
traded_boards("MTSS")

@epogrebnyak
Copy link
Collaborator

epogrebnyak commented May 27, 2022

Поясню. Я загружаю динамику котировок списком, пробегаясь функцией apimoex.get_board_history по списку тикеров. В списке как акции, так и фьючерсы. Соответственно, для них нужно отдельно определить и указать engine, market. Хотелось бы автоматизировать эти действия, т.к. пока для акций и фьючерсов у меня отдельные функции получаются.

В библиотеке finec для акций есть класс Stock , в котором записаны engine и дефолтная борда, можно добавить фьючерсы, если дадите код как вы сейчас информацию по ним достаете. Можно открыть ишью тут: https://github.com/epogrebnyak/finec/issues

apimoex - более низкоуровневая библиотека с клиентом для доступа к данным Мосбиржи, finec - библиотека для более высокоуровневого доступа, использует apimoex как клиент.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants