Api котировки акций excel

39 комментариев

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

Много, в общем, вопросов.

avatar

  • 08 февраля 2023, 14:47
  • Ответить

    Еще

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

В A2 находится название тикера.

avatar

  • 08 февраля 2023, 14:55
  • Ответить

    Еще

они в iss какую то трансформацию провели, что на днях все перестало работать. Надо ссылки перестраивать. Еще не разбирался

avatar

  • 08 февраля 2023, 14:52
  • Ответить

    Еще

Андрей К,  в (бондовом, по крайней мере) споте все по-старому (в части структуры url-ов), и все старые баги с расчетными параметрами, увы, на своих местах

avatar

  • 09 февраля 2023, 07:56
  • Ответить

    Еще

flextrader, у нас все послетало нафиг из специфичной инфы. Но свечи работают стабильно ) решил уже на выхах позаниматься.

avatar

  • 09 февраля 2023, 15:09
  • Ответить

    Еще

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

  • 08 февраля 2023, 14:57
  • Ответить

    Еще

Доктор Ливси, не работает или что-то не туда пишу

avatar

  • 08 февраля 2023, 15:01
  • Ответить

    Еще

Доктор Ливси, Замените в своей формуле URL на мой и поменяйте парсинг в формуле concatenate(«//row[@SECID='»,A2,»‘]/@PREVADMITTEDQUOTE» на concatenate(«//row[@SECID='»,A2,»‘]/@LAST»

И имейте ввиду, что мосбиржа выдает котировки с задержкой примерно 15 мин. для запросов без платной подписки.

avatar

  • 08 февраля 2023, 15:07
  • Ответить

    Еще

Доктор Ливси, так и делал. Только Loading пишет и всё.

avatar

  • 08 февраля 2023, 15:15
  • Ответить

    Еще

Доктор Ливси, а можете файл на гугл диск выложить с примером?

avatar

  • 08 февраля 2023, 15:31
  • Ответить

    Еще

Доктор Ливси, =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

  • 08 февраля 2023, 15:49
  • Ответить

    Еще

Доктор Ливси, друзья, выложите файл с примером плс а ?  уже неск человек просят.

avatar

  • 08 февраля 2023, 18:19
  • Ответить

    Еще

Доктор Ливси, Здесь для проверки указан тикер AFKS, работает. Поменяйте у себя на подстановку тикера из требуемой ячейки.

avatar

  • 08 февраля 2023, 15:51
  • Ответить

    Еще

Доктор Ливси, хмм… Работает только в новой таблице.

avatar

  • 08 февраля 2023, 16:10
  • Ответить

    Еще

Доктор Ливси, Спасибо большое, очень помогли.

avatar

  • 08 февраля 2023, 16:52
  • Ответить

    Еще

avatar

  • 08 февраля 2023, 15:24
  • Ответить

    Еще

hdd, а можете файл на гугл диск выложить с примером?

avatar

  • 08 февраля 2023, 15:31
  • Ответить

    Еще

тупо, конечно, но вставлю свои пять копеек. у меня excel после обновы перестал адрес показывать как «A2». Вместо этого теперь красуется «R2C1», может дело в названии?

avatar

  • 08 февраля 2023, 15:26
  • Ответить

    Еще

Akreg, я читал, что надо PREVADMITTEDQUOTE заменить на PREVLEGALCLOSEPRICE. Но у меня не срабатывает.

avatar

  • 08 февраля 2023, 15:30
  • Ответить

    Еще

Akreg, стиль ссылок в параметрах поменяйте. Галку снять надо

avatar

  • 08 февраля 2023, 17:13
  • Ответить

    Еще

Заметил, что у вас в ссылке https, а у меня http. Я менял в свое время, помогало, попробуйте

avatar

  • 08 февраля 2023, 15:46
  • Ответить

    Еще

avatar

  • 08 февраля 2023, 16:16
  • Ответить

    Еще

у меня тоже через раз грузятся данные. 

avatar

  • 08 февраля 2023, 16:47
  • Ответить

    Еще

Если кому нужно, могу выложить вечером пример для LibreOffice Calc — у меня все работает — получение котировок с Мосбиржи по API бесплатному.

avatar

  • 08 февраля 2023, 17:35
  • Ответить

    Еще

Alexide, скажите, а можно как-то автоматом выгружать данные по открытым позициям юров/физов в ексель, те, которые ещё каждые 5 минут обновляются? Что надо вообще прописать?

avatar

  • 08 февраля 2023, 17:47
  • Ответить

    Еще

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

avatar

  • 08 февраля 2023, 18:06
  • Ответить

    Еще

Alexide, не, это бесплатные данные, просто проходите регистрацию и они доступны будут

avatar

  • 08 февраля 2023, 18:22
  • Ответить

    Еще

Alexide, Конечно выкладывайте! У меня Либре Офис на линуксе 

avatar

  • 08 февраля 2023, 18:09
  • Ответить

    Еще

можно попросить код для получения котировки золота? 
=IMPORTXML(«iss.moex.com/iss/engines/currency/markets/selt/securities/GLDRUB_TOM.xml», «/document/data[@id=»«marketdata»»]/rows/row[@BOARDID=«CETS»]/@LAST»)
Так пробовал не получается

avatar

  • 08 февраля 2023, 17:51
  • Ответить

    Еще

avatar

  • 24 февраля 2023, 16:53
  • Ответить

    Еще

Алексей Заказников, Подскажи, пожалуйста, код для получения курса евро и доллара.
в приведенном выше коде пробовал менять GLDRUB_TOM на USDRUB_TOM, не получается

avatar

  • 12 марта 2023, 12:14
  • Ответить

    Еще

avatar

  • 08 февраля 2023, 19:18
  • Ответить

    Еще

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

avatar

  • 09 февраля 2023, 20:16
  • Ответить

    Еще

avatar

  • 28 февраля 2023, 09:38
  • Ответить

    Еще

Для таблиц 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

  • 17 марта 2023, 17:33
  • Ответить

    Еще

Дайте совет, как сделать, чтобы котировки в экселе обновлялись автоматически? Приходится нажимать F2+Enter. Параметр автоматического расчета для формул включен.
Значение в ячейке такое: =ПОДСТАВИТЬ( ФИЛЬТР.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»);».»;»,»)

avatar

  • 04 апреля 2023, 21:10
  • Ответить

    Еще

Файлы к уроку:

  • Для спонсоров Boosty
  • Для спонсоров VK

Ссылки:

  • Страница курса
  • Плейлист YouTube
  • Плейлист ВК

Описание

В этом уроке мы научимся получать прямо в Excel котировки разных ценных бумаг с сайта Московской биржи.

Решение

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

Если мы введем такую ссылку в Power Query, создав запрос из интернета, то получим интересующие нас котировки прямо в Excel.

Вот ссылка на сайте Московской биржи https://iss.moex.com/iss/reference/ На этой странице вы можете увидеть какую именно информацию вы можете получить с сайта Московской биржи. Котировками дело не ограничивается.

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

Наша ссылка будет выглядеть так — https://iss.moex.com/iss/history/engines/stock/markets/shares/securities/SBER/securities.xml

В том месте, где написано SBER нужно вставить тикер интересующей вас ценной бумаги. Далее, развернув таблицу, вы получите таблицу с котировками, но только 100 строк. Это максимальное количество, которое позволено выгружать. Нам нужно что-то придумать, чтобы выгружать больше строк.

Что делать, чтобы получить много строк? Нужно использовать параметр start. Мы создадим столбец с числами с инкрементом 100 и в каждой строке будем запрашивать информация по ссылке.

Примененные функции

  • Xml.Tables
  • Web.Contents
  • List.Numbers
  • Table.FromList
  • Splitter.SplitByNothing
  • ExtraValues.Error
  • Table.AddColumn
  • Text.From
  • Table.SelectColumns
  • Table.ExpandTableColumn
  • Table.TransformColumnNames
  • Text.AfterDelimiter

Код

Пример получения 100 строк:

let
   source = Xml.Tables(
      Web.Contents(
         "http://iss.moex.com/iss/history/engines/stock/markets/shares/securities/SBER/securities.xml?start=300"
      )
   ){0}[Table]{0}[rows]{0}[row]
in
   source

Пример получения 4000 строк:

let
   source = List.Numbers(1, 40, 100),
   to_table = Table.FromList(
      source,
      Splitter.SplitByNothing(),
      null,
      null,
      ExtraValues.Error
   ),
   table_add_col = Table.AddColumn(
      to_table,
      "Пользовательская",
      each Xml.Tables(
         Web.Contents(
            "http://iss.moex.com/iss/history/engines/stock/markets/shares/securities/SBER/securities.xml?start="
               & Text.From([Column1])
         )
      ){0}[Table]{0}[rows]{0}[row]
   ),
   cols_select = Table.SelectColumns(table_add_col, {"Пользовательская"}),
   col_expand_table = Table.ExpandTableColumn(
      cols_select,
      "Пользовательская",
      {
         "Attribute:BOARDID",
         "Attribute:TRADEDATE",
         "Attribute:SHORTNAME",
         "Attribute:SECID",
         "Attribute:NUMTRADES",
         "Attribute:VALUE",
         "Attribute:OPEN",
         "Attribute:LOW",
         "Attribute:HIGH",
         "Attribute:LEGALCLOSEPRICE",
         "Attribute:WAPRICE",
         "Attribute:CLOSE",
         "Attribute:VOLUME",
         "Attribute:MARKETPRICE2",
         "Attribute:MARKETPRICE3",
         "Attribute:ADMITTEDQUOTE",
         "Attribute:MP2VALTRD",
         "Attribute:MARKETPRICE3TRADESVALUE",
         "Attribute:ADMITTEDVALUE",
         "Attribute:WAVAL"
      },
      {
         "Attribute:BOARDID",
         "Attribute:TRADEDATE",
         "Attribute:SHORTNAME",
         "Attribute:SECID",
         "Attribute:NUMTRADES",
         "Attribute:VALUE",
         "Attribute:OPEN",
         "Attribute:LOW",
         "Attribute:HIGH",
         "Attribute:LEGALCLOSEPRICE",
         "Attribute:WAPRICE",
         "Attribute:CLOSE",
         "Attribute:VOLUME",
         "Attribute:MARKETPRICE2",
         "Attribute:MARKETPRICE3",
         "Attribute:ADMITTEDQUOTE",
         "Attribute:MP2VALTRD",
         "Attribute:MARKETPRICE3TRADESVALUE",
         "Attribute:ADMITTEDVALUE",
         "Attribute:WAVAL"
      }
   ),
   types = Table.TransformColumnNames(
      col_expand_table,
      each Text.AfterDelimiter(_, ":")
   )
in
   types

Этот урок входит в курс Веб-запросы в Power Query

Номер урока Урок Описание
1 Котировки Yahoo Finance Вы хотите получить историю котировок акций MCD с 2000 года по текущий день с сайта Yahoo Finance. Вы копируете ссылку на раздел с историческими данными, вставляете ссылку в Power Query и получаете только 100 строк.
2 HTML, получение данных по облигациям Мы хотим получить данные по всем облигациям со страницы bonds.finam.ru
3 Многостраничное извлечение На разных страницах находятся сайта находятся котировки золота на каждый год. Нужно соединить все данные в одну таблицу.
4 JSON, Котировки Yahoo Finance 2 В этом уроке мы разберем еще один способ скачивания котировок с Yahoo Finance. Этот способ намного удобнее и быстрее. Здесь мы научимся обрабатывать формат JSON.
5 Котировки Московской биржи В этом уроке мы научимся получать прямо в Excel котировки разных ценных бумаг с сайта Московской биржи.
Московская биржа предоставляет возможность скачивать котировки и другую информацию по ценным бумагам при помощи специальных ссылок.
Если мы введем такую ссылку в Power Query, создав запрос из интернета, то получим интересующие нас котировки прямо в Excel.
6 Неразмеченный текст Вы делаете запрос к Web-странице и сталкиваетесь с неразмеченным текстом. Вы хотите при помощи Power Query этот неразмеченный текст преобразовать в нормальную красивую таблицу.
7 Текстовый документ, веб-страница, List.Zip В этом запросе мы научимся получать нужную информацию из текста веб-страницы.
8 Youtube Data API В этом уроке мы научимся получать данные из Youtube Data API. Узнаем как получить данные о Youtube канале: список видео и плейлистов, названия, описания, длительность, тэги, количество лайков, дизлайков, просмотров и комментариев.
9 Личный OneDrive — подключаемся напрямую к файлам и папкам В этом уроке мы разберем как напрямую подключиться к файлам и папкам на личном OneDrive.
10 Подключение Google Spreadsheets, Google Drive (Excel.Workbook, Web.Contents) В этом уроке мы научимся подключаться к xlsx файлам, которые находятся в вашем Google Drive.
11 Получить все станции метро Получим таблицу с перечнем станций метрополитена даже с координатами широты и долготы.
12 Получить ссылки с веб-страницы (Html.Table) Получить URL с веб-страницы. Сделать запрос к каждому URL, получить таблицы и объединить их всех по вертикали.
13 Получить все URL с веб-страницы Получим нужные URL с веб-страницы в Excel. Сделать запрос к каждому URL, получить таблицы и объединить их по вертикали.
14 Ищем работу через API Head Hunter (hh.ru) Получим таблицу с перечнем вакансий с сайте HH. Получим вакансии, в названии или описании которых встречаются слова SQL, Pandas, Power Query, Power Pivot, Power BI.
15 Запрос к XML Sitemap Сделаем запрос к sitemap.xml, чтобы извлечь список всех веб-страниц сайта.

Время прочтения: 4 мин.

Довольно часто, при аудите сервисов, работающих с внешними финансовыми потоками, возникает необходимость оценки корректности получения, обработки и хранения внешней информации в СУБД компании. Одним из таких примеров является аудит системы биржевой торговли Quik. Для анализа необходима информация о котировках ценных бумаг за продолжительный период времени с различной детализацией (от минуты до дня). Разумеется, требуется информация не об одной или двух котировках, а о десятках или сотнях. В решении данной проблемы поможет python библиотека apimoex, предоставляемая непосредственно Московской биржей, которая доступна по следующей ссылке.

Данные о необходимых котировках и временных интервалах предоставляются в виде excel файла, состоящего из трех колонок: название бумаги, дата, время.

Для начала скачаем необходимые библиотеки, для этого запустим команду:

pip install apimoex requests pandas

После установки необходимых библиотек, импортируем их внутри нашего проекта:

import requests
import apimoex
import pandas as pd
import sys

Далее задаем режим торгов:

board = 'TQBR'

Откроем наш файл с помощью модуля pandas и производим препроцессинг данных:

df_excel = pd.read_excel(“path to excel file”)
column_name = [i for i in df_excel]
df_excel[column_name[1]] = df_excel[column_name[1]].map(str).map(lambda x: x[:10])
df_cotir = df_excel.drop_duplicates(subset=[column_name[0], column_name[1]])
df_cotir[column_name[0]] = df_cotir[column_name[0]].map(str)
ticks = [line.rstrip() for line in df_cotir[column_name[0]]]
dates = [line.rstrip() for line in df_cotir[column_name[1]]]

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

Скачивать сами данные будем с помощью функции get_board_candles с параметрами:

  • session – Сессия интернет соединения
  • security – Тикер ценной бумаги
  • interval – Размер свечки — целое число 1 (1 минута), 10 (10 минут), 60 (1 час), 24 (1 день), 7 (1 неделя), 31 (1 месяц) или 4 (1 квартал). По умолчанию дневные данные
  • start – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены с начала истории
  • end – Дата вида ГГГГ-ММ-ДД. При отсутствии данные будут загружены до конца истории. Для текущего дня будут загружены не окончательные данные, если торги продолжаются
  • columns – Кортеж столбцов, которые нужно загрузить — по умолчанию момент начала свечки и HLOCV. Если пустой или None, то загружаются все столбцы
  • board – Режим торгов — по умолчанию основной режим торгов T+2
  • market – Рынок — по умолчанию акции
  • engine – Движок — по умолчанию акции

Далее открываем сессию для экспорта котировок сохраняем полученные результаты в список из pandas DataFrame:

tick_history, process = list(), 0
with requests.Session() as session:
    for i in range(len(ticks)):
        process = process + 1
        print((process / len(ticks)) * 100, '%', process)
        data = apimoex.get_board_candles(session, security=ticks[i], interval=1, start=dates[i], end=dates[i], board=board, market=market_type)
        if data == []:
            continue
        df = pd.DataFrame(data)
        df['TICKER'] = ticks[i]
        cols = df.columns.tolist()
        cols = cols[-1:] + cols[:-1]
        df = df[cols]
        tick_history.append(df)

Далее объединяем список котировок в pandas DataFrame и преобразовываем колонку с временем и датой в две:

df_finale = pd.concat(tick_history)
df_finale['begin'] = pd.DataFrame(df_finale['begin'])
df_finale['date'] = df_finale['begin'].map(lambda x: x[:10])
df_finale['time'] = df_finale['begin'].map(lambda x: x[11:])

Остается выбрать данные с необходимым нам временем:

cols = df_finale.columns.tolist()
cols = cols[:1] + cols[-2:] + cols[1:-2]
df_finale = df_finale[cols]
df_finale.drop('begin', 1)
df_finale['date'] = df_finale['date'].map(str)
df_finale["time"] = df_finale["time"].map(str).map(lambda x: x[:5])
df_excel = df_excel.rename({column_name[2]: "time", column_name[1]: 'date', column_name[0]: 'TICKER'}, axis=1)
df_finale = pd.merge(df_finale, df_excel[['TICKER', 'date', "time"]], on=['TICKER', 'date', "time"], how='inner')

В конце, сохраняем результат в csv файл:

df_finale.drop_duplicates().to_csv("result.csv", index=False, sep='|')

Загруженные данные можно агрегировать до нужных таймфреймов:

import datetime
def add_delta(tme, delta=1):
    if tme != None:
        tme =list(map(int, tme.split(':')))
        tme = datetime.time(tme[0],tme[1],0)
        return (datetime.datetime.combine(datetime.date.today(), tme) + datetime.timedelta(minutes=delta)).time()

timewindow = datatime.time (hours = 13, minutes = 43)
df_hour_frame = df_finale[(df_finale ['time'] >= timewindow) & (df_finale['time'] <= add_delta(timewindow, datatime.timedelta(minutes = 60))]
df_hour_frame['low in range'] = df_hour_frame['low'].min()
df_hour_frame['high in range'] = df_hour_frame['high'].max()
df_hour_frame['max value in range'] = df_hour_frame['value'].max()
df_hour_frame['min value in range'] = df_hour_frame['value'].min()

Представленный подход позволяет произвести независимую оценку корректности работы автоматизированных систем компании с использованием данных первоисточника и выявить проблемы с некорректным реплицированием данных в СУБД либо задержки в получении данных.

В прошлой статье мы разобрали способ получения котировок акций ( и ETF) с помощью функции GoogleFinance. Правда по некоторым российским бумагам получении инфы таким образом невозможно. Речь идет о привилегированных акциях (типа Сбера, Татнефти, Сургута) и практически всех российских биржевых фондах (FXIT, VTBX, SBSP и так далее).

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

Итак, поехали!

Содержание

  1. Котировки российских акций
  2. Получаем цену ETF и БПИФ в рублях / долларах и евро
  3. Цена иностранных акций на Мосбирже
  4. Настройка таблицы или возможные проблемы
  5. Нужно знать
  6. Готовый шаблон

Котировки российских акций

Для вызова котировок привилегированных акций (впрочем как и обыкновенных) используем формулу следующего вида (все пишется слитно, без пробелов):

=IMPORTxml(«https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST», concatenate(«//row[@SECID='»,B5,«‘]/@LAST»))

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

Вот как это выглядит в таблице:

Префы РФ - котировки

Получение котировок для российских привилегированных акций

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

Для вывода названия акций (компании) используем формулу:

=IMPORTxml(«https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,SECNAME», concatenate(«//row[@SECID='»,B5,«‘]/@SECNAME»))

Также при необходимости меняем только адрес ячейки с тикером (в моей формуле — это B5).

Получаем цену ETF и БПИФ в рублях / долларах и евро

Если мы захотим получить котировки российских биржевых фондов по вышеописанной формуле, просто заменив тикер акции на тикер ETF (или БПИФ), то нас постигнет фиаско. Формула будет выдавать ошибку.

В чем дело?

Для биржевых фондов нужна формула следующего вида:

=IMPORTxml(«https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQTF/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST», concatenate(«//row[@SECID='»,B14,«‘]/@LAST»))

Как всегда, при необходимости меняем адрес ячейки с тикером.

Котировки ETF

Получаем название и котировки российских биржевых фондах в Гугл-таблицах

На первый взгляд формулы для акций и ETF абсолютно идентичны. Правда есть небольшое отличие всего в четыре буквы. Для вызова акций мы использовали в формуле TQBR, а для ETF — заменили на TQTF.

Что это за зверь такой?

TQBR или TQTF — это идентификатор режима торгов. Узнать его можно на сайте Мосбирже. Идентификатор прописывается в карточку каждого инструмента. Для примера возьмем ETF FXRU. Находим его через поиск на сайте бирже. И видим TQTF. 

Соответственно прописываем в формулу нужный идентификатор.

Идентификатор торгов

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

  • для акций — TQBR;
  • для рублевых ETF — TQTF;
  • для ETF с расчетам в евро — TQTE;
  • для ETF с расчетам в долларах — TQTD.

Для автоматического получения названия фонда по тикеру, в формуле соответственно также нужно поменять идентификатор.

В таблице накидал несколько примеров вызова цен по валютным фондам.

Цены ETF в долларах и евро

Выводим котировки биржевых фондов РФ в долларах и евро

Цена иностранных акций на Мосбирже

На Московской бирже обращаются иностранные акции, номинированные в рублях.

В отличии от оригинала, они имеют тикер дополненный «-RM». То есть для Apple, рублевый тикер будет AAPL-RM, для Facebook вместо FB — пишем FB-RM и так далее.

Формула вызова котировок имеет следующий вид:

=IMPORTxml(«https://iss.moex.com/iss/engines/stock/markets/foreignshares/boards/FQBR/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST», concatenate(«//row[@SECID='»,B47,«‘]/@LAST»))

Красным пометил отличия от предыдущих формул:

  • Как обычно — меняем адрес ячейки с тикером под себя.
  • Рублевые иностранные акции имеют идентификатор торгов — FQBR
  • Вместо shares ставим foreignshares (иностранные ценные бумаги).

Настройка таблицы или возможные проблемы

Иногда про получении данных о котировках по API (по вышеописанным формулам) может выходить ошибка. Часто причина ошибки — неправильные настройки таблицы. Данные передаются в формате дробных чисел с точкой (например — 0.55). В настройках вашей таблицы может по умолчанию стоит отображение чисел с запятой (0,55).

Для исправлении ошибки выбираем в  меню «Файл->Настройки таблицы». 

На вкладке «Общие» в поле Региональные настройки» нужно выбрать Соединенные Штаты. Настройки таблицы

Нужно знать

Не забываем про задержку во времени. Так же как и ГуглФинанс, котировки по API Мосбиржи подгружаются примерно с 20 минутным опозданием.

На открытии торгов Мосбиржи (в 10 утра по МСК) — некоторое время все (или многие) котировки могут быть недоступны и формула будет выдавать ошибку.

В приоритете (там где это возможно) лучше использовать функцию GoogleFinfnce. Если в таблице много инструментов, то загрузка по API может быть очень долгой. В этом плане Гуглфинанс работает пошустрее. Поэтому используем API Мосбиржи только там, где Гугл бессилен: префы российских компаний и биржевые фонды.

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

Как пример, акции ВТБ. Текущие котировки — 0.04244. GoogleFinance округлит цену до 0.04.

Из подобного есть еще Русал, ИнтерРао, Русгидро, АФК Система, Россети, ФСК ЕЭС и много чего еще.

Готовый шаблон

Как всегда прикладывают файл-шаблон со всеми прописанными формулами. Таблица только для просмотра. Для использования сохраните себе копию (в верхнем меню: «Файл — > Создать копию»).

Комментарии, замечания, пожелания приветствуются!

В третьей части будем автоматически выдергивать информацию по дивидендам российских акций.

Как оказалось после публикации статьи — при копировании формул вызова котировок выходила ошибка. Проблема заключалась в неправильном отображении блогом кавычек. Вместо двойных кавычек (сверху и снизу по две запятых » … текст… » система отображала французские (или кавычки-елочки). А для гугл-таблиц — это ошибка. Сейчас настроил правильное отображение и все работает. 

Всем огромное спасибо за замечания! 

Удачных инвестиций!

Download PC Repair Tool to quickly find & fix Windows errors automatically

Microsoft Excel makes it really simple to retrieve stock market prices. Its Stock data type is connected to an online data source that allows you to access rich, interesting information that you can work with and refresh. Let’s see how to get Stock Quote in Excel.

You can retrieve stock quotes in Excel by using the MSN MoneyCentral web query – but things have changed a lot now. The new system provides rich, interesting information that you can work with and refresh in an instant! The way to do it is like this:

  1. Create a table
  2. Enter a ticker symbol
  3. Let Excel find the match for your entries
  4. Add a column to extract more information
  5. Space the entries in the table

Since data like the share price is constantly changing, you can always get the latest data by refreshing the connection.

1] Create a table

For this, go to ‘Insert’ tab and select ‘Table’.

To add a stock price to your Excel worksheet, convert text into the ‘Stocks’ data type. Following that, you can choose another column to extract relevant details, like the stock price, change in price, and so on.

Enter the text that describes the company name or fund name into each cell. Alternatively, you can enter a ticker symbol.

Fetch real-time Stock Prices in Excel

Select the cells and go to the ‘Data’ tab. Then click ‘Stocks’.

If Excel finds a match between the entries you’ve made in the cells, and its online sources, it will readily convert the text to the Stocks data type. This can be verified by when ‘Linked record icon for stock’ becomes visible to you.

2] Add column to extract more information

Now, choose one or more cells with the data type. The ‘Add Column’ button should appear.

When seen, click that button, and then click a field name to extract more information. For example, for stocks, you might be interested in picking up the most important determinant – Price.

Click the ‘Add Column’ button again to add more fields. For instance, you can track the performance of a stock over a period of weeks, months, or years.

To space the entries in the table, select all columns and go to ‘Home’ tab.

Then, go to the ‘Cells’ section and hit the ‘Format’ down-arrow button.

Select ‘Auto-fit column width’ and you are done!

So cool!

Ezoic

A post-graduate in Biotechnology, Hemant switched gears to writing about Microsoft technologies and has been a contributor to TheWindowsClub since then. When he is not working, you can usually find him out traveling to different places or indulging himself in binge-watching.

Большинство из нас используют Microsoft Excel в повседневной жизни по-разному. Мы используем его для отслеживания задач, которые должны быть выполнены с использованием цветовой кодировки и людей, занимающихся бизнесом, используем его для отслеживания продуктов, которые были привезены и проданы, и каждый использует их тем или иным способом. Функции Excel облегчают нашу работу по минимизации выполняемой нами задачи. Существует множество встроенных формул, и вы даже можете создавать свои собственные пользовательские функции для расширения функциональности. Помимо использования его для обычных вещей, вы даже можете получить или получить котировки акций в Excel. Итак, давайте посмотрим, как получить котировки акций в Excel .

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

Чтобы получить котировки акций в Excel, вам не нужно устанавливать какие-либо дополнительные дополнения к вашему листу Excel. Вы можете использовать MSN MoneyCentral Investor Stock Quotes, встроенное соединение с Excel и получить котировки акций. Я проведу вас через шаги, которым нужно следовать, чтобы достичь этого.

Откройте лист Excel и нажмите на вкладку «Данные». Затем нажмите «Соединения», после чего откроется «Соединения с книгой» и нажмите кнопку «Добавить».

Выберите «Котировки акций MSN MoneyCentral Investor» и дважды щелкните по нему.

Нажмите «Свойства», чтобы открыть всплывающее окно «Свойства подключения». Установите флажок «Включить фоновое обновление» и любые другие параметры, которые вам требуются. Нажмите «ОК» и «Закрыть».

Нажмите на вкладку «Данные» еще раз и нажмите «Существующие подключения». Выберите соединение, которое вы только что добавили, и нажмите кнопку «Открыть», или вы можете дважды щелкнуть по соединению.

Он открывает всплывающее окно «Импорт данных» и спрашивает вас, куда поместить данные. По умолчанию в качестве начальной ячейки отображается $ A $ 1 (ячейка as A1 ’). Вы даже можете выбрать диапазон ячеек, просто перетаскивая мышь над ячейками и нажимая кнопку «ОК».

Он попросит вас «ввести значение параметра» и добавить котировки акций, разделенные запятой. Установите флажки «Использовать это значение/ссылку для будущих ссылок» и «Обновлять автоматически при изменении значения ячейки».

Чтобы обновить данные, выберите ячейку с данными и нажмите на вкладку «Данные». Выберите «Обновить все», а затем «Обновить».

Он работает с Microsoft Excel 2007 и более поздними версиями, включая Excel 2013. Это простой способ получить котировки акций в Excel с помощью MSN Money. Вы даже можете просматривать и график и новости, касающиеся каждой котировки акций. Нет необходимости создавать какие-либо макросы или добавлять сторонние надстройки. Просто добавьте встроенное соединение, и оно просто тянет котировки акций в Excel.

Известно ли вам об этом методе получения биржевых котировок в Excel?

Теперь посмотрим, как можно добавить калькулятор Windows на панель быстрого доступа Excel.

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

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

Для этого я комбинирую три бесплатных сервиса, которые подтягивают данные с разных бирж с помощью API. В статье расскажу, как настроить их под свои нужды.

Что за АПИ

В большинстве случаев данные с бирж передаются через программный интерфейс, называемый API — application programming interface. Грубо говоря, это инструмент, благодаря которому одна программа начинает говорить на одном языке с другой. В нашем случае мы используем API финансовых бирж для «дружбы» с гугл-таблицами.

API Московской биржи

Для чего. Получить информацию о российских акциях и облигациях.

Как это работает. У Московской биржи есть API, который позволяет видеть любую информацию с российской биржи внутри гугл-таблиц. Например, можно получать имена инструментов, цены закрытий, даты оферт и другие параметры.

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

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

Еще таблица пригодится, если вас не устраивают существующие сервисы учета — Intelinvest и Investing.com.

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

  • подтягивать название бумаги по идентификатору — столбец «Названия акций и облигаций»;
  • показывать текущие курсы — столбец «Цены акций и облигаций»;
  • получать даты выплат облигаций — столбец «Даты купона и значения для облигаций»;
  • получать дивиденды — столбец «Даты и значения дивиденда для акций»;
  • видеть возможность досрочного погашения облигаций — столбец «Даты оферт».

Список далеко не полный, ведь на Мосбирже огромное количество параметров, включая срочный рынок и валюты.

Формула для получения цены корпоративной облигации
Когда в первом столбце вы меняете идентификаторы бумаг, получаете актуальные цены, названия, даты и величины купонов

Я везде старался использовать формулы в понятной записи с разбивкой на несколько строк — чтобы каждый смог воспроизвести эту конструкцию в своей таблице.

Попробовать таблицу

Googlefinance внутри гугл-таблиц

Для чего. Получить информацию об американских акциях, которые торгуются на Санкт-Петербургской бирже.

Как это работает. Googlefinance — это встроенная функция гугл-таблиц. Она помогает получить текущие или архивные данные о ценных бумагах из сервиса «Гугл-финансы».

Российские акции в сервисе тоже есть. Чтобы их увидеть, надо указывать тикер — то есть код из нескольких букв, который принадлежит определенному финансовому инструменту, — с приставкой «MCX:» так, чтобы получилось «MCX:SBER».

Эта функция позволяет получать название, текущую цену акций и еще 18 параметров — например, максимальную и минимальную цену за 52 недели, количество акций в обращении. Все это есть в моем шаблоне.

Параметры бумаг, которые подтягиваются в режиме реального времени

Главное преимущество в том, что формулы для получения этих параметров предельно просты: например, имя бумаги — name, самая высокая цена на текущий день — high. Описание всех формул и атрибутов есть в инструкции от Гугла.

Формула для получения имени бумаги

В первом столбце я оставил идентификаторы двух акций — Сбербанка (MCX;SBER) и «Нетфликс» (NFLX) — и фонда Van Eck (RSX). При изменении тикеров во втором столбце будет подтягиваться название акций и актуальные цены.

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

Например, вы хотите отслеживать акции американского производителя сетевого оборудования Ubiquiti Inc (UI) и высокодивидендного фонда Highland Small-Cap Equity Y (HSZYX). В ячейку В13 заносите тикер акции UI, а в ячейку В35 — тикер фонда HSZYX. Получите 19 параметров каждой бумаги.

Смотрите, как это работает:

Попробовать таблицу

«Яху-финанс»

Для чего. Отслеживать любые финансовые данные со всего мира.

Как это работает. «Яху-финанс» передает данные с рынков 79 стран, включая Россию.

Чтобы подружить «Яху» и таблицы, можно пойти двумя путями: написать скрипт, который будет импортировать выдачу API в специальном текстовом формате JSON в гугл-таблицу, или воспользоваться формулой IMPORTHTML — еще есть вариант с IMPORTXML, — которая импортирует таблицы и списки с сайтов.

Я остановился на втором варианте — получение данных через формулу IMPORTHTML. Важно: эта формула подтягивает данные только из таблиц или списков, другую информацию через нее не получить.

Формула работает так: сервис Гугла обращается по адресу страницы, указанному в формуле, и ищет все таблицы, которые обозначены в разметке этой страницы. Таблиц может быть несколько, но у каждой свой порядковый номер. Поэтому в формуле нужно указать конкретный номер таблицы — данные из нее и появятся в гугл-таблице.

Данные с «Яху-финанс» в гугл-таблице

Моя формула обращается к тикеру, который нужно прописать самостоятельно, и ищет данные по этой акции на «Яху». К написанию некоторых тикеров есть требования:

  • для российских акций после тикера нужно добавить приставку «.ME», чтобы получилось LKOH.ME;
  • для бумаг, торгующихся на немецкой бирже, нужно добавить «.DE». Например, чтобы посмотреть подробности по Bayerische Motoren Werke Aktiengesellschaft (BMW), надо написать BMW.DE;
  • для итальянской фондовой биржи Borsa Italiana S.p. A., ISE, расположенной в Милане, после тикера надо дописывать приставку «.MI», чтобы получилось UBI.MI.

Попробовать таблицу

Запомнить

  1. API Московской биржи в гугл-таблицах — практически самый быстрый способ получить данные с Мосбиржи.
  2. Встроенная функция Googlefinance внутри гугл-таблиц пригодится, если нет времени разбираться с формулами, но хочется видеть курсы акций.
  3. Любые финансовые данные со всего мира получайте в API «Яху-финанс» с помощью простой функции IMPORTHTML.
  4. Если вы только начинаете инвестировать, пройдите бесплатный курс от Т—Ж: на сайте или в приложении для iOS.

Понравилась статья? Поделить с друзьями:
  • Api в таблице excel
  • Api биржи для excel
  • Api javascript для word
  • Api javascript для excel
  • Api java for excel