API MOEX Еще раз о том, как получать данные с MOEX в Excel. Получаем данные котировок по акциям и дивидендных отсечек.
Без глубоких повествований приведу формулы, статей на эту тему написано великое множество.
1. Получить котировку на текущую дату:
=ФИЛЬТР.XML(ВЕБСЛУЖБА(СЦЕПИТЬ("https: .moex.com/iss/engines/stock/mark ets/shares/boards/TQBR/securities/";A9;".xml?
iss.meta=off&iss.only=marketdata&securities.columns=LAST"));" document d ata rows row/@LAST")
Или можем подставлять режим торгов
=ПОДСТАВИТЬ(@ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/ markets/shares/securities/"&A2&".xml? iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,BOARDID,LAST");" document data rows row[@BOARDID='"&M22&"']/@LAST");".";",")
M22 режим торгов (например TQBR)
https: iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securiti es/sngsp.xml?
iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAS T
2. Получить наименование инструмента
ФИЛЬТР.XML ВЕБСЛУЖБА "https://iss.moex.com/iss/engines/stock/markets/sh ares/boards/TQBR/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,SECNAME");"//docume nt//data//rows//row[@SECID '"&A2&"']/ SECNAME")
3. Получить данные по выплатам дивидендов
=@ФИЛЬТР.XML(ВЕБСЛУЖБА("http: iss.moex.com/iss/securities/"&A 2&"/dividen ds.xml? iss.meta=off");" document data rows row["&СТРОКА()&"]/@registrycloseda te")
ПОДСТАВИТЬ(ВЕБСЛУЖБА("http: iss.moex.com/iss/securities/"&A 2&"/dividends .xml?
iss.meta=off");".";",");"1,0";"1.0");" document data rows row["&СТРОКА ()&"]/@value")
Получится что- то вроде этого:
4. Получить исторические данные по котировке
ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/history/engines/stock/marke ts/shares/boards/TQBR/securities.xm?
liss.meta=off&iss.only=history&history.columns=SECID,CLOSE&start=200&date= "&H2&",concatenate");" document data rows row[@SECID='"&A2&"']/@CLOSE" );".";",")
Нужно иметь в виду, что API MOEX выдает по 100 строк, и от периода к периоду ваш тикер может входить либо в первую, либо во вторую сотню выдаваемых тикеров, поскольку состав торгующихся компаний меняется с течением времени.
В PoSh мне удалось решить эту проблему, и я могу получить весь список на дату целиком, как это сделать в Excel я пока не думал.
H2 дата на которую мы получаем котировку, имеет вид ГГГГ ММ ДД. При этом надо помнить, что указанная дата должна быть торговым днем, не выходным, праздничным и пр.
CLOSE получаем котировку на закрытие.
Для браузера можно сформулировать запрос так:
https: iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/ securities.xm?
liss.meta=off&iss.only=history&history.columns=SECID,CLOSE&start=100&date=
При помощи этих простых инструментов мы можем рассчитать доходности к котировкам и стоимости покупки, и изменения выплат год к году:
Поиграться с визуализацией данных:
https://dzen.ru/a/XzE3Y6VBkHBOdNBG
https://habr.com/ru/articles/498268/
Получение данных API MOEX в PowerShell. #moex #api #powershell #posh #ps #excel