Получение данных с Мосбиржи

Автор Mak, 26 августа 2021, 08:56

0 Пользователи и 1 гость просматривают эту тему.

Mak

Добрый день,
Хочу сделать скрипты для вытягивания данных с Мосбиржи.
Может быть кто-то уже делал или знает где есть?
(чтобы свой велосипед не изобретать)

sokol92

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

Mak

Интерфейс ISS
Описание - https://iss.moex.com/iss/reference/

Получение состава индекса Мосбиржи:
https://iss.moex.com/iss/statistics/engines/stock/markets/index/analytics/IMOEX.json?iss.meta=off&limitt=100

Запрос данных по нескольким бумагам, типа:
https://iss.moex.com/iss/securities/GMKN.json?iss.meta=off
https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.json?iss.meta=off&iss.only=securities
https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.json?iss.meta=off&iss.only=marketdata
https://iss.moex.com/iss/engines/stock/markets/shares/securities/GMKN/candles.json?iss.meta=off&iss.reverse=true&interval=4&from=2021-01-01
(json в запросах можно заменить на xml)

В общем описания и данные за вчера по разным бумагам.
Можно и текущие данные (они идут с задержкой), но это уже не особо актуально.
Исторические данные по кварталам или месяцам за последний год.

Цель - отслеживать состояние своего портфеля.

Можно это делать формулами в ячейках, но это неудобно, громоздко, и сайт Мосбиржи не любит, когда его сильно нагружают запросами. Поэтому хотелось бы это сделать в виде скриптов - несколько функций для вывода отдельных параметров бумаги, у функций параметр - тикер бумаги (типа "GMKN").

sokol92

Это, вероятно, к герпетологам. На форуме есть большие любители Python.  :)
Владимир.

Mak

Хорошо,
а как хотя бы импортировать данные с сайта без скриптов, например такие
https://iss.moex.com/iss/statistics/engines/stock/markets/index/analytics/IMOEX.xml?iss.meta=off&limitt=100

Как-то можно вроде бы, но порылся по менюшкам и не нашел.

Mak

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

rami

Цитата: sokol92 от 26 августа 2021, 15:24
Это, вероятно, к герпетологам. На форуме есть большие любители Python.  :)
С помощью Basic можно делать почти что всё, а с Python всё остальное.


Данные с "причудами" (пробелы в именах), но обработать можно, смотрите:

sokol92

@rami, здравствуйте, спасибо за содержательный пример.
XML можно обрабатывать и "честно". :)
В условиях примера @rami:
Sub GetValuta2
  Dim xDoc, xRows, xAttribs, xAttrib, i As Long, j As Long
  xDoc=GetXDocByUri(URL)
 
  ' Разбираем XML стандартными средствами
  xRows=xDoc.getElementsByTagName("row")  ' список тегов row
  For i=0 To xRows.Length-1
    xAttribs=xRows.item(i).Attributes
    For j=0 To xAttribs.Length-1
      xAttrib=xAttribs.item(j)
      Select Case xAttrib.Name
        ' Обработка атрибутов как в функции GetValuta
        Case "tradedate"   ' получаем Дату. Значение: xAttrib.Value
        ' Обработка других атрибутов
      End Select
    Next j
  Next i
  ' Обработка XDoc завершена.
End Sub

' Returns XDocument by Uri
Function GetXDocByUri(ByVal Uri As String) As Object
  GetXDocByUri=createUnoService("com.sun.star.xml.dom.DocumentBuilder").parseURI(Uri)
End Function
Владимир.

rami

@sokol92, здравствуйте. Ваш вариант лучше подходит для работы с XML и для данного случая. Мой вариант более универсальный для любого текста.

economist

У Мосбиржи есть API и обертка под Python https://pypi.org/project/apimoex/

Большие данные логично обрабатывать в Pandas и возвращать в Calc, тонны кода есть в Сети.

Pandas  дружится с LibreOffice Calc по данному мануалу: https://forumooo.ru/index.php/topic,8696.0.html
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Mak

Спасибо!
Почитаю, попробую разобраться.

Mak

Пока остановился просто на формулах, без скриптов.
Разделил обработку на две фазы - запрос данных с Мосбиржи и отдельно парсинг по полям.
Полей много, а запросов немного.

Если кому интересно будет, см. вложение.

BradfordDD12

In the realm of sex dolls USA, celebrity-inspired companions have gained popularity due to their ability to capture the essence and allure of well-known figures. From movie stars to musicians, these dolls meticulously replicate the physical features and attributes of celebrities, allowing users to fulfill their fantasies with lifelike replicas of their favorite icons. This rise of the celebrity-inspired life size sex doll speaks to the cultural fascination with celebrity culture and the desire for intimate connections with beloved personalities.