В прошлой статье мы разобрали способ забирать данные по дивидендам российских компаний с сервиса Доход. Сегодня на очереди иностранные акции. В качестве донора будем использовать сайт Finviz.
Ниже пример того, как это будет выглядеть в гугл-таблице. Нам нужно заполнить колонку с тикерами акций - остальное в таблицу будет подтягиваться автоматически. Конечно, если прописаны все формулы.
Итак, поехали.
Извлекаем дивиденды
Формула для получения дивидендов выглядит следующим образом:
split(index(importhtml(CONCATENATE("https://finviz.com/quote.ashx?t=",B3,""),"table",8),7,2),"*")
Вкратце объясню логику. Кому не интересно - смело пропускаем. Как всегда в конце оставлю файл-шаблон с готовыми формулами.
ШАГ 1.
На сайте Finviz у каждой ценной бумаги есть своя отдельная страница.
Так для Coca-Cola адрес страницы будет таким: https://finviz.com/quote.ashx?t=co
А например для Pepsi: https://finviz.com/quote.ashx?t=pep (в конце адреса прописывается тикер бумаги).
Используя формулу: CONCATENATE("https://finviz.com/quote.ashx?t=",B3,"") - мы создаем путь к нужной странице, где
B3 - это адрес ячейки с тикером из нашей таблицы. В данном случае B3=AAPL, B4=MSFT и так далее.
На странице каждой компании - Finviz прописывает данные с основными пузомерками. Мы будем выдергивать нужную нам инфу с нее.
ШАГ 2.
C помощью функции importhtml импортируем эту html-страницу в таблицу.
Страница состоит из нескольких блоков, нам нужен блок с таблицей. В запросе мы обращаемся к элементу 7 на html-странице (таблица с данными).
Из всей таблицы нам нужно только инфа по дивидендам. Она находится в седьмой строчке / второго столбца. Размер дивов указан за последние 12 месяцев.
Извлекаем это значение с помощью функции Index:
index(importhtml(CONCATENATE("https://finviz.com/quote.ashx?t=",B3,""),"table",7),7,2).
ШАГ 3.
Полученные значения будут в неприятном виде - со звездочками по краям.
Все бы ничего, но итоговые данные не являются числом. И с этими ячейками не получится проводить арифметические действия: вычислить дивидендную доходность, общий размер дивидендов в зависимости от количества акций в портфеле и т.д. и т.п.
Поэтому немного усовершенствуем формулу, добавив функцию SPLIT, которая убирает все звездочки (* *).
В итоге получаем следующую рабочую формулу для извлечения дивидендов:
split(index(importhtml(CONCATENATE("https://finviz.com/quote.ashx?t=",B3,""),"table",7),7,2),"*")
Получаем дивидендную доходность акций
У нас есть два варианта: первый и второй.
Первый способ - "плагиатор". По аналогии с получением размера дивидендов - используем ту же формулу, изменив в ней адрес нужной нам ячейки на 8,2 (восьмая строчка, второй столбец):
split(index(importhtml(CONCATENATE("https://finviz.com/quote.ashx?t=",B3,""),"table",7),8,2),"*")
Второй способ называется "математический гений". У нас есть данные по размеру дивидендов на акцию и текущие котировки. Делим одно на другое и получаем .... дивидендную доходность.
Другие полезные фишки
Все что есть в таблице Finviz можно выдернуть себе в Google Sheets. Коэффициенты P/E, P/B, P/S, ROE, ROA, EPS. Капитализация компании, количество акций в обращении, размер долга и даже текущее положение цены акций относительно максимума-минимума за год и скользящих средних (показывает насколько выше или ниже находится цена). И много другой полезной и бесполезной хрени.
В формуле меняем только адрес строки-столбца на нужный. Получаем что-то похожее ...
А как же ETF?
Все вышеприведенные формулы работают и для биржевых фондов (ETF). Естественно российских среди них нет. Правда Finviz предлагает довольно скудную информацию по фондам: в основном связанную с дивидендами и техническим анализом.
Вот так выглядит таблица на примере ETF VOO на индекс S&P500. Кроме дивов по фундаменталу ничего нет.
Практическое применение
Готовый инструмент по учету портфеля за пару минут. Добавляем дополнительные столбцы: сколько куплено акций и размер дивидендов. И вот мы уже видим общий размер дивидендов, который приносит наш инвестиционный портфель в год.
Мне особенно нравится, когда после очередной покупки акций (или фондов) заношу данные в таблицу и сразу вижу как увеличивается размер дивидендов по портфелю. Так сказать моментальный результат от инвестиций!
Готовый шаблон
Файл-шаблон с прописанными формулами доступен по ссылке (только просмотр). Для редактирования его нужно сохранить себе: в меню "Файл" выбираем "Сохранить копию".
Удачных инвестиций!
Вот это круто. Спасибо большое. Я тут разбирался с fxfa, дай думаю, у Максима его мнение посмотрю, а тут статья не хуже. Ну и про fxfa тоже интересно)
Завтра постараюсь «осилить» статью про FXFA
Добрый вечер! Не получается редактировать последнюю таблицу со своими данными. В меню Файл нет надписи «Сохранить копию». Есть только «Создать копию», но копию предлагает создать в какие-то чужие папки, ракетостроение, например и другие, которых у меня никогда не было.
Еще в одной из ваших статей была таблица «GoogleFinance — котировки акций», в ней я смогла внести мои акции, но после сохранения никакие новые уже не получается добавить, цена автоматически не прописывается.
Я что-то делаю не так?
«Оцените статью» — пять звёзд, без вариантов!
Спасибо, детальная проработка.
Отличный урок по Гугл-таблицам 🙂
У меня выскакивает ошибка: «Синтаксическая ошибка в формуле.»
проверил — все работает нормально
Формулы могут не работать из-за различия в локалях
Спасибо огромное. Очень интересно и понятно.
В примере в таблице no data 🙁
Похоже что-то сломалось…
Спасибо! Почини У финвиз были перестановки в отображаемых данных ….
Спасибо, все круто!!!
Снова перестали отображаться дивиденды, видимо на сайте опять структуру поменяли 🙁
и в моей, и вашей таблице выдает одну и ту же ошибку
Значение параметра Параметр 3 в функции INDEX равно 4. Оно должно входить в диапазон от 0 до 1 включительно.
Нашла в чём проблема. Нужно в формуле вместо 7 поставить 9 — изменился порядковый номер таблицы:
split(index(importhtml(CONCATENATE(«https://finviz.com/quote.ashx?t=»,B3,»»),»table»,9),7,2),»*»)
Кира, а как вы определили порядковый номер (которые типа 9, но опять не работает) на странице Финвиза?
10
=ЛЕВСИМВ(split(ИНДЕКС(importhtml(СЦЕПИТЬ(«https://finviz.com/quote.ashx?t=»,B3,»»),»table»,10),7,2),»*»),4)
в итоге правки — 10 раздел (вместо 7), п так же — в самой ячейке информация в формате число (процент), поэтому (левсимв — 4 первых символов (числа)
Благодарю за подробное описание каждой детали!!!!