Блог им. ArtemKuznecov_45f

Получение котировок акций в Excel

До недавнего времени получал котировки в таблицы Google с помощью формулы
=IMPORTxml(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,PREVADMITTEDQUOTE», concatenate("//row[@SECID='",A2,"']/@PREVADMITTEDQUOTE"))

Сейчас она перестала работать.

Кто-нибудь может подсказать, как исправить формулу, чтобы она работала сейчас?
★10
38 комментариев
Какое отношение Excel имеет к таблице Google?
Где все-таки расположена неработающая формула? В каком табличном редакторе?
Что творится в ячейке А2?

Много, в общем, вопросов.
Алексей Федоров, а в Excel такие же формулы, если не ошибаюсь.

В A2 находится название тикера.
avatar
они в iss какую то трансформацию провели, что на днях все перестало работать. Надо ссылки перестраивать. Еще не разбирался
avatar
Андрей К,  в (бондовом, по крайней мере) споте все по-старому (в части структуры url-ов), и все старые баги с расчетными параметрами, увы, на своих местах
avatar
flextrader, у нас все послетало нафиг из специфичной инфы. Но свечи работают стабильно ) решил уже на выхах позаниматься.
avatar
iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST
avatar
Доктор Ливси, не работает или что-то не туда пишу
avatar
Доктор Ливси, Замените в своей формуле URL на мой и поменяйте парсинг в формуле concatenate("//row[@SECID='",A2,"']/@PREVADMITTEDQUOTE" на concatenate("//row[@SECID='",A2,"']/@LAST" И имейте ввиду, что мосбиржа выдает котировки с задержкой примерно 15 мин. для запросов без платной подписки.
avatar
Доктор Ливси, так и делал. Только Loading пишет и всё.
avatar
Доктор Ливси, а можете файл на гугл диск выложить с примером?
avatar
Доктор Ливси, =importxml("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST";"//document//data//rows//row[@SECID='AFKS']/@LAST")
avatar
Доктор Ливси, друзья, выложите файл с примером плс а ?  уже неск человек просят.
avatar
Доктор Ливси, Здесь для проверки указан тикер AFKS, работает. Поменяйте у себя на подстановку тикера из требуемой ячейки.
avatar
Доктор Ливси, хмм… Работает только в новой таблице.
avatar
Доктор Ливси, Спасибо большое, очень помогли.
avatar
hdd, а можете файл на гугл диск выложить с примером?
avatar
тупо, конечно, но вставлю свои пять копеек. у меня excel после обновы перестал адрес показывать как «A2». Вместо этого теперь красуется «R2C1», может дело в названии?
avatar
Akreg, я читал, что надо PREVADMITTEDQUOTE заменить на PREVLEGALCLOSEPRICE. Но у меня не срабатывает.
avatar
Akreg, стиль ссылок в параметрах поменяйте. Галку снять надо
avatar
Заметил, что у вас в ссылке https, а у меня http. Я менял в свое время, помогало, попробуйте
avatar
=IMPORTxml(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST», СЦЕПИТЬ("//row[@SECID='",B15,"']/@LAST"))

у меня все работает!
у меня тоже через раз грузятся данные. 
Если кому нужно, могу выложить вечером пример для LibreOffice Calc — у меня все работает — получение котировок с Мосбиржи по API бесплатному.
avatar
Alexide, скажите, а можно как-то автоматом выгружать данные по открытым позициям юров/физов в ексель, те, которые ещё каждые 5 минут обновляются? Что надо вообще прописать?
avatar
Xomyak147, это вроде платный сервис Мосбиржи. Бесплатно они только вчерашние данные показывают. Я не умею извлекать такие данные.
avatar
Alexide, не, это бесплатные данные, просто проходите регистрацию и они доступны будут
avatar
Alexide, Конечно выкладывайте! У меня Либре Офис на линуксе 
avatar
можно попросить код для получения котировки золота? 
=IMPORTXML(«iss.moex.com/iss/engines/currency/markets/selt/securities/GLDRUB_TOM.xml», "/document/data[@id="«marketdata»"]/rows/row[@BOARDID=«CETS»]/@LAST")
Так пробовал не получается
avatar
Дмитрий Sh, =ПОДСТАВИТЬ(@ ФИЛЬТР.XML(ВЕБСЛУЖБА(«iss.moex.com/iss/engines/currency/markets/selt/securities/GLDRUB_TOM.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=LAST»);"//document//data//rows//row/@LAST");".";",")
Алексей Заказников, Подскажи, пожалуйста, код для получения курса евро и доллара.
в приведенном выше коде пробовал менять GLDRUB_TOM на USDRUB_TOM, не получается
avatar
=ПОДСТАВИТЬ( ФИЛЬТР.XML(ВЕБСЛУЖБА(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST»);"//document//data//rows//row[@SECID='SBER']/@LAST");".";",")

Вот этот код для ячейки LibreOffice Calc возвращает котировку для Сбербанка например.

! Только двойные кавычки елочкой (вокруг URL внутри( замените на обычные двойные кавычки, иначе работать не будет

avatar

Да что за WTF? Ежедневно вношу какие-то изменения в ссылки в Google Sheets. Начинает работать, на след день открываешь рабочий файл, — опять ошибки. Че происходит-то
 

 

avatar
Гугл таблицы: ранее работало =importxml(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST»,"//document//data//rows//row[@SECID='",C5,"']/@LAST")
где С5 это Тикер.
Коллеги, перепробовал, что выше написали — не получается!
Выложите пожалуйста рабочую гугл таблицу, с рабочей формулой!
avatar

Для таблиц Google:
=ImportXML(CONCATENATE("https://www.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities/",C5,".xml?iss.meta=off&iss.only=marketdata&securities.columns=LAST"),"/document/data/rows/row/@LAST")

где С5 — это тикер.

Для Excel:
=ФИЛЬТР.XML(ВЕБСЛУЖБА(СЦЕПИТЬ("https://www.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities/";C5;".xml?iss.meta=off&iss.only=marketdata&securities.columns=LAST"));"//document//data//rows//row/@LAST")

avatar

теги блога Артём Кузнецов

....все тэги



UPDONW
Новый дизайн