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

примеры/help для типовых запросов #8

Open
epogrebnyak opened this issue Nov 18, 2021 · 22 comments
Open

примеры/help для типовых запросов #8

epogrebnyak opened this issue Nov 18, 2021 · 22 comments

Comments

@epogrebnyak
Copy link
Collaborator

epogrebnyak commented Nov 18, 2021

Можно идею опишу - для целей упрощения обучения (в вузе) и упрощения использования в целом?

У @WLM1ke - супербиблиотека, позволяющая вытащить, все что угодно, если знаешь, где лежит. Когда мы рассказываем что-то простое студентам - типа возьмите цену акции или облигации, скорее всего студенту / пользователю нужно:

  • получить откуда-то список тикеров
  • по этому тикеру из списка получить котировки
tickers =  get_stock_tickers()
assert "AFLT" in tickers 
 
a = Stock("AFLT")
df1 = a.get_quotes(start="2021-01-15")
df2 = a.get_quotes_ytd()

# or:
df3 = get_quotes_ytd(stock="AFLT")

Есть польза в такой обертке? Может API обертки должно быть какое-то другое?

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 18, 2021

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

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

На самом деле задач может быть миллион, и не уверен, что конкретная обертка будет востребована. Если бы у проекта было 1000+ звезд и куча активных пользователей, то можно было бы понять, что некие требования реально существуют, тогда можно было бы их реализовать.

Мне кажется практичнее в хлеп добавить страничку с некоторыми типовыми шагами использования или FAQ, как получить определенные данные.

@epogrebnyak
Copy link
Collaborator Author

Попалось на глаза: https://cran.rstudio.com/web/packages/moexer/readme/README.html

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 19, 2021

Я не знаю, что там под капотом, но на первый взгляд это примерно мой вариант, а не продвинутая обертка, как ты предлагаешь:
search_security - аналог apimoex.find_securities
get_security_info - аналог apimoex.find_security_description
get_candles - аналог apimoex.get_market_candles или apimoex.get_board_candles не знаю, как там реализовано внутри
get_candles - такого напрямую нет, но легко собрать из с помощью двух предыдущих вызовов

Можно написать подобный хелп, хотя судя по вопросам в issue в основном народ не это интересует. По памяти люди спрашивали как скачать фьючерсы, курс и котировки иностранных акций. В этом пакете не очень понятно как это сделать и можно ли сделать в принципе.

@epogrebnyak
Copy link
Collaborator Author

epogrebnyak commented Nov 19, 2021

Да, сама идея helpa практически решает вопрос как использовать apimoeх для получения базовой инфы.

Я попробую структурировать какие данные показываются на сайте биржи (типа акции - TQBR, и т.д.).

Нашел код R: https://github.com/x1o/moexer/tree/master/R

@epogrebnyak epogrebnyak changed the title простой wrapper для получения данных по тикеру примеры/help для типовых запросов Nov 19, 2021
@WLM1ke
Copy link
Owner

WLM1ke commented Nov 19, 2021

Жень - структурировать реально сложно. Сайт биржи много чего показывает. Мне кажется разумнее опираться на потребности пользователей.

У тебя, как я понимаю, есть десятки, а то и сотни учеников, которым в рамках обучения будут использовать библиотеку в рамках неких стандартных заданий. Возможно разумно описать именно стандартный путь - например они выполняют задания только для российских акций и дневных котировок. Описать этот путь, а дальше можно при желании добавить несколько пунктов в виде FAQ - как скачать курс, как иностранные акции, как фьючерсы, как скачать минутные данные и т.д., если такие вопросы будут возникать.

@epogrebnyak
Copy link
Collaborator Author

@WLM1ke, а иерархия board/market/engine - она где-то внутри документации про ISS? Как в ней побыстрее разобраться?

board: str = "TQBR",
    market: str = "shares",
    engine: str = "stock",

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 19, 2021

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

Для разработчиков есть два документа, которые приведены в readme:

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 19, 2021

И еще добавлю, эти документы тоже не полные - так реально есть возможность скачать дивиденды по некоторым бумагам, но это нигде не описано. Я случайно где-то подсмотрел такой запрос - видимо человек раньше работал разработчиком на бирже.

@epogrebnyak
Copy link
Collaborator Author

epogrebnyak commented Nov 19, 2021 via email

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 19, 2021

Раньше видимо за деньги было, так как в документации разработчика описана авторизация, но когда я этим занялся, всю нужную мне информацию можно было получить без денег и регистраций. Сделано видимо давно, потому что сейчас модно описывать подобные сервисы с помощью OpenAPI/Swagger

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 19, 2021

Тут вспомнил, что перечень всех существующих на данный момент board/market/engine и т.д. можно получить с помощью запроса apimoex.get_reference или просто открыть в браузере - их огромное количество.

board/market/engine не свободно сочетаются между собой - надо знать как. И много из них сейчас не используются, но использовались ранее. Например сейчас основной режим торгов акций идет в режими T+2 или board TQBR, а раньше велся в режиме T был другой board, а до этого были отдельные режими для отдельных групп акций. Они до сих пор есть в общем списке.

@epogrebnyak
Copy link
Collaborator Author

epogrebnyak commented Nov 19, 2021 via email

@epogrebnyak
Copy link
Collaborator Author

Жень - структурировать реально сложно. Сайт биржи много чего показывает. Мне кажется разумнее опираться на потребности пользователей.

+++

@epogrebnyak
Copy link
Collaborator Author

Поразбирался как все работает тут: https://colab.research.google.com/drive/1gJZE2NPGH6_uJG1C3BPyPYvZyZQbRJts#scrollTo=r97xL2_cpIvU

(вроде есть функционал комментировать в ноутбуке также)

Хочу дальше облигации сделать

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 19, 2021

VALUE это не волюм на клоуз, а что-то другое

VALUE считается по цене конкретных сделок, а не по цене закрытия.

@WLM1ke
Copy link
Owner

WLM1ke commented Nov 19, 2021

  • replicate any stock index

Получится только на коротком интервале - состав и веса в индексе частенько меняют

@khpvo
Copy link

khpvo commented Apr 3, 2023

И еще добавлю, эти документы тоже не полные - так реально есть возможность скачать дивиденды по некоторым бумагам, но это нигде не описано. Я случайно где-то подсмотрел такой запрос - видимо человек раньше работал разработчиком на бирже.

по сбербанку не все дивиденды показывает.

@DonRadja
Copy link

Камрады, а кто-то смог понять как получить с ISS MOEX данные по утренней сессии? Стандартные запросы типа http://iss.moex.com/iss/engines/stock/markets/shares/securities/YNDX/candles.json?from=2022-09-19&till=2022-09-19&interval=1&start=0
Возвращают только основную + вечернюю сессию. В документации ничего об этом нету. Прямо скажем, документация там не юзерфрендли чуть более, чем полностью (

@WLM1ke
Copy link
Owner

WLM1ke commented Apr 17, 2024

Утренние встречу встречал только в запросе истории котировок

https://iss.moex.com/iss/reference/813
https://iss.moex.com/iss/reference/817

@DonRadja
Copy link

Да, это я тоже нашел, а также по фьючам, индексам. По фондовому рынку нету утренних данных в виде свечей.

Если вдруг кто голову ломает, то еще одна фишечка неочевидная к тому запросу, что я привел выше. Pagesize по умолчанию 500, параметр limit его не меняет.

@Daniil-Kiriakov
Copy link

Добрый день. А есть способ получить цены для индекса IMOEX?

@WLM1ke
Copy link
Owner

WLM1ke commented Aug 23, 2024

get_market_history с параметром market="index" security="IMOEX"

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

5 participants