API MOEX Еще раз о том, как получать данные с MOEX в Excel. Получаем данные по ОФЗ, купон, НКД, дату погашения.
Опишу формулы, которые вы можете использовать в excel:
Получить наименование ОФЗ и дату экспирации:
=@ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/markets/bon ds/boards/TQOB/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,SECNAME,COUPONPE RCENT,MATDATE");" document data rows row[@SECID='"&B3&"']/@SECNAME")
Можно получить короткое наименование:
=ПОДСТАВИТЬ(@ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/ markets/bonds/boards/TQOB/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,ACCRU EDINT,PREVPRICE,COUPONVALUE,SHORTNAME,MATDATE");" document data rows r ow[@SECID='"&A2&"']/@SHORTNAME");".";",")
=ПОДСТАВИТЬ(@ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/ markets/bonds/boards/TQOB/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,ACCRU EDINT,PREVPRICE,COUPONVALUE,SHORTNAME,MATDATE");" document data rows r ow[@SECID='"&A2&"']/@ACCRUEDINT");".";",")
Дата выплаты следующего купона:
=@ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/markets/bon ds/boards/TQOB/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,COUPO NVALUE");" document data rows row[@SECID='"&A2&"']/@NEXTCOUPON")
=ПОДСТАВИТЬ(@ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/ markets/bonds/boards/TQOB/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,ACCRU EDINT,PREVPRICE,COUPONVALUE,SHORTNAME,MATDATE");" document data rows r ow[@SECID='"&A2&"']/@COUPONVALUE");".";",")
=@ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/markets/bon ds/boards/TQOB/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,COUPO NVALUE,ACCRUEDINT,MATDATE");" document data rows row[@SECID='"&A2&"']/ @MATDATE")
=ПОДСТАВИТЬ(@ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/ markets/bonds/boards/TQOB/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,ACCRU EDINT,PREVPRICE,COUPONVALUE,SHORTNAME,MATDATE");" document data rows r ow[@SECID='"&A2&"']/@PREVPRICE");".";",")
ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/markets/bonds /boards/TQOB/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,PREVADMITTEDQUOT E");" document data rows row[@SECID='"&B3&"']/@PREVADMITTEDQUOTE");"." ;",")
Но по какой то причине не всегда отображается..
Если вы сталкиваетесь с такой ситуацией, когда при подстановке такой формулы получаете кривые данные вида:
=@ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/markets/bon ds/boards/TQOB/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,COUPO NVALUE,ACCRUEDINT");" document data rows row[@SECID='"&B2&"']/@ACCRUED
То лучше использовать либо формулу из примера выше
=ПОДСТАВИТЬ(@ФИЛЬТР.XML(ВЕБСЛУЖБА("https: iss.moex.com/iss/engines/stock/ markets/bonds/boards/TQOB/securities.xml?
iss.meta=off&iss.only=securities&securities.columns=SECID,NEXTCOUPON,ACCRU EDINT,PREVPRICE,COUPONVALUE,SHORTNAME,MATDATE");" document data rows r ow[@SECID='"&A2&"']/@ACCRUEDINT");".";",")
Либо изменить параметры разделителей excel, заменив запятую, на точку
Получение данных API MOEX в PowerShell. #moex #api #powershell #posh #ps #excel