Блог им. Svaroggg

Учет инвестиций с помощью Google Spreadsheet. Базовые настройки и ввод данных

В это части постараюсь описать, чего уже можно добиться с помощью документа в Google Spreadsheet, разработанного Вячеславом (пример — https://docs.google.com/spreadsheets/d/1IUxJfnRjzpqkNpuKAU83eTqxCOLyWVZmkVTI9galxZ0/edit#gid=0), а также пройтись по листам, на которых вносятся необходимые для учета данные.

А в следующей части уже посмотрим, что получаем на выходе. И станет ясно, куда можно расти и что улучшать.

Итак, Гугл таблица позволяет получать подробную информацию по портфелю:

  1. Сумма ваших инвестиций
  2. Сумма накопленных дивидендов
  3. Текущий остаток на депозите
  4. Текущую стоимость портфеля
  5. Номинальный доход и доходность (без инфляции)
  6. Реальный доход и доходность (с учетом инфляции)
  7. Структура портфеля по секторам (реальная и желаемая)
  8. По каждой акции в портфеле показывается количество лотов в наличии, дивиденды, средняя цена покупки, текущая стоимость, прибыль и многое другое. Производится расчет как текущей доли в портфеле, так и желаемой доли, а также дается рекомендация, сколько лотов нужно купить/продать, чтобы получить желаемую долю. К сожалению, данные по рыночным ценам не подтягивались автоматически, поэтому нужно было вручную их вносить, чтобы видеть актуальную версию картины. Но при относительно пассивном инвестировании это не так и важно. Если раз в месяц (или еще реже) осуществлять покупки, то можно и вручную обновить котировки.

 

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

Инвестиции. Учет проинвестированных денег. Для точного подсчета нужно регулярно записывать все суммы, попавшие на брокерский счет. Вносится как сама сумма, так и дата пополнения. Это нужно для более точного подсчета денег, участвующих в «обороте», а также дисконта на инфляцию.

Учет инвестиций с помощью Google Spreadsheet. Базовые настройки и ввод данных

Константы. Различные константы, учитываемы для корректного расчета затраченных на сделки сумм, а также влияющие на подсчет реальной доходности портфеля (с учетом инфляции).

Учет инвестиций с помощью Google Spreadsheet. Базовые настройки и ввод данных

Какую величину инфляции стоит использовать для подсчета реальной доходности портфеля? Тут все не так однозначно. Самое простое — использовать официальные данные Росстата. Но им не всегда есть доверие, поэтому можно ставить любую цифру, соответствующую вашим «ощущениям». Еще более сложный вариант — рассчитывать свою личную годовую инфляцию, но для этого нужно вести учет своих расходов. Про это как-нибудь поговорим отдельно.

Сделки. Следующая вкладка (достаточно объемная) — Сделки. Большинство колонок рассчитывается автоматически, но некоторые из них надо заполнить вручную данными по своим состоявшимся сделкам.

Учет инвестиций с помощью Google Spreadsheet. Базовые настройки и ввод данных

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

Расходы. Расходы по брокерскому счету. Сюда вносятся все суммы, списанные за обслуживание с брокерского счета (депозитарное обслуживание и т.п.). Этот лист использую достаточно редко, так как за обслуживание не плачу, а брокерские комиссии учитываются в Сделках. Правда, пару раз попадал на дополнительные комиссии (РЕПО, доступ к Web-QUIK), но это единичные случаи.


Учет инвестиций с помощью Google Spreadsheet. Базовые настройки и ввод данных

Дивиденды. Сюда записываются все поступающие дивиденды по акциям, а также купоны по облигациям.

Учет инвестиций с помощью Google Spreadsheet. Базовые настройки и ввод данных

Опять же, этот лист я немного модернизировал, добавив подсчет заплаченных сумм НДФЛ и флаг того, нужно ли самому потом платить налог. А то бывают эмитенты, зарегистрированные за рубежом (Ros Agro, Rusal PLC), которые присылают дивиденды в долларах, а брокер с таких поступлений налог не берет. Поэтому очень удобно заранее проставить нужный флаг, чтобы в следующем году мучительно не вспоминать, что нужно включить в налоговую декларацию.

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

  




21.4К | ★43
33 комментария
А для фортс работает?
avatar
andydiver, Нет, заточено под акции/облигации. Но если есть желание — можно и под фортс, все же работает внутри обычной Гугл Таблицы.
avatar
А почему бы котировки не подтянуть? Это не сложно
avatar
dimakor, Да, про это будет дальше. У меня котировки подтягиваются раз в час. Пока я просто описываю базовую функциональность, которая была изначально. Может, кому-то и этого будет достаточно.
avatar
Сергей Ветко, откуда бы дивиденды подтянуть )
avatar
dimakor, Вы про реально поступившие дивиденды или про предстоящие выплаты? Если первое, то единственный вариант — парсить отчеты брокера. Я же руками вношу, не так и часто это происходит, да и событие приятное, чего бы и не занести.
Если про будущие, то можно здесь попробовать: https://smart-lab.ru/dividends
Интересно, есть у Тимофея вывод в каком-нибудь удобном формате?
avatar
Сергей Ветко, надо будет подумать к следующему дивидендному сезону )
avatar
Знакомая таблица))) Тоже взял её за основу, немного допилил под себя и пользуюсь.
Дмитрий Александрович, приветствую сотоварища:)! А что вы допиливали, если не секрет?
avatar
Сергей Ветко, приветствую! Из основного — добавил автоматическое обновление цены последней сделки через скрипт, который там же, на roundabout был выложен. Googlefinace с префами криво работает. По крайней мере так было год назад, после этого я его больше не трогал. По облигам — НКД через тот же срипт. Вы интересные графики привели в предыдущей статье. Как их автоматизировали? Я пока не придумал ничего лучше, чем в последний день каждого месяца данные ручками вбивать и по ним строить.
Дмитрий Александрович, Я данные по котировкам забираю с сайта Московской Биржи, вроде все цифры правильные.
Я оптимизировал не графики, а подсчет стоимости портфеля на конец дня, а также всех покупок. В конце дня по триггеру запускается скрипт, который собирает данные. В результате получается примерно такая табличка, на основе которой я уже строил графики: 

По облигам — НКД через тот же срипт
А НКД облигаций вы как используете? Для определения, какие облигации покупать?
Я по облигациям больше смотрю дату следующей выплаты, экспирацию и купон.
avatar
Сергей Ветко, в стоимости портфеля учитываю стоимость облигации по цене закрытия и НКД (беру их из вкладки bonds). Для выбора облигаций, конкретно ОФЗ, делал отдельный документ, данные в который подставлялись также из листа bonds. В дальнейшем стал пользоваться для этих целей QUIK'ом и сайтом rusbonds. Было бы интересно увидеть тот скрипт, который у вас данные в конце дня собирает. И еще мучает меня такой вопрос: если вывод средств со счета делать, как его правильно будет туда занести, что думаете?
И еще мучает меня такой вопрос: если вывод средств со счета делать, как его правильно будет туда занести, что думаете?

Выводы я просто вношу со знаком минус на лист «Инвестиции», также, как и пополнения. Вроде нормально работает, уменьшает значение в «Текущий остаток на депо» на листе «Баланс».
avatar
Сергей Ветко, тоже прикидывал, что так должно работать. Меня тут больше интересовала величина годового оборота, правильно ли она будет рассчитываться в этом случае. На бумажке прикидывал, вроде правильно.
 в стоимости портфеля учитываю стоимость облигации по цене закрытия и НКД (беру их из вкладки bonds)

Кстати, отличная идея! А то сразу после покупки облигации немного грустно смотреть на минус из-за уплаченного НКД, но еще не полученного купона.

Скрипт, собирающий данные — достаточно простой. Вот он (надеюсь, не сильно порежется при отправке):

function updateAsssetsValues() {
var sheet = googleSpreadSheet.getSheetByName(«AssetsValues»);

var lastRow = sheet.getLastRow();
Logger.log(lastRow);
var oldDate = '';

if (lastRow > 1) {
//we already have some resutls
var cell = sheet.getRange('A'+lastRow);
oldDate = cell.getValue();
Logger.log('oldDate1 = ' + oldDate);
oldDate = Utilities.formatDate(oldDate, «GMT+12», «yyyy-MM-dd»);
Logger.log(oldDate);
}

//Я забираю из базы стоимость нужного портфеля на конкретную дату.
//Но думаю, что можно и просто брать с листа «Баланс» нужное значение в строке «Текущая стоимость портфеля»
var allAsssetsValues = getAssetsValuesByDate(oldDate, portfolioID);

var allData = [];
var portfolioValues = allAsssetsValues['p'+portfolioID];

//Собираем массив с данными, где один элемент массива содержит дату и сумму
if (portfolioValues != undefined) {
for (var i = 0; i < portfolioValues.length; i++) {
var date = portfolioValues[i]['date'];
var value = portfolioValues[i]['value'];

var len = allData.length;
allData[len] = [];
allData[len].push(date);
allData[len].push(value);
}
}

Logger.log(allData);
//Если собрали какие-то значения, то вставляем их на лист
if (allData.length > 0) {
var dataRange = sheet.getRange(lastRow+1, 1, allData.length, allData[0].length);
dataRange.setValues(allData);
}

return true;
}

// Don's array approach — checks first column only
// With added stopping condition & correct result.
// From answer stackoverflow.com/a/9102463/1677912
function getFirstEmptyRowByColumnArray(sheetName) {
var dataStocks = googleSpreadSheet.getSheetByName(sheetName);

var column = dataStocks.getRange('A:A');
var values = column.getValues(); // get all data in one call
var ct = 0;
while ( values[ct] && values[ct][0] != "" ) {
ct++;
}
return (ct+1);
}

avatar
Сергей Ветко, спасибо, поразбираюсь на досуге. А по учету НКД: из моей практики и брокеры, и управляющие его учитывают. Недавно попадалась статья по учету портфеля от Александра Шадрина (УК Арсагера), хочу глянуть что там они предлагают. Может и вам будет интересно. http://blogs.investfunds.ru/post/74205/
Дмитрий Александрович, за ссылку спасибо, изучу обязательно.
avatar
Дмитрий Александрович, Прочитал статью по ссылке. Как я понимаю, в «нашем» гугл документе примерно так и происходит расчет номинального дохода в %, а реализовано это за счет «суммарного годового оборота». Чем дольше деньги проинвестированы, тем больше они влияют на этот оборот.

Я в своих подсчетах добавил учет дат реальных пополнений и дивидендов с помощью функции XIRR (или ЧИСТВНДОХ в русском Excel), но очень большой разницы со значением в «Номинальный доход, % годовых» не заметил. Например, сейчас у меня «Номинальный доход, % годовых» равен 8,6%, а XIRR дает 8,4% (думаю, разница появляется из-за учета дивидендов в XIRR).

Но зато XIRR помогает точнее оценить доходность в % годовых конкретной акции. Купил на 10000 рублей, подержал два дня, продал на 100 рублей дороже. Вот и получил доходность в 100% годовых (образно говоря). Приятно.
avatar
Сергей Ветко, судя по всему вы там много чего перелопатили! Признаюсь, пока не понял как вы XIRR использовали. Файл в студию))))
Дмитрий Александрович, ну не слишком много, но какое-то время было интересно все сделать удобно и наглядно для себя. Хотя, лучше бы книжки по инвестированию читал бы, наверное:).

Пример с XIRR по конкретным акциям вот: https://docs.google.com/spreadsheets/d/1o1I3fA0RczgF9Ar7q9bnbGniYUeAVNu6tdN3I2EJdHg/edit#gid=541213349
Главное, собрать все имеющиеся данные на одном листе, чтобы удобно было считать.
avatar
Сергей Ветко, спасибо! Обязательно гляну. И про книжки в точку, особенно когда смотришь на результаты некоторых инвесторов, которые по 300% за 3 года делают))))
Кто-то может финальную таблицу дать?
avatar
Денис Охотин, вот здесь самый продвинутый вариант: smart-lab.ru/mobile/topic/644978/comments/
avatar
Сергей Ветко, Вау, вот это монстр, Вы им пользуетесь или на своей решили? Я просто пытался свою таблицу создать, но в итоге очень многое реализовать не получилось, знаний не хватает, а тут такое…
avatar
Денис Охотин, по привычке пользуюсь своим. Но сейчас, если бы только начинал, то использовал бы этот.
avatar
Приветствую!
Подскажите пожалуйста, возможно ли в разделе «константы» учитывать комиссии разных брокеров для одного портфеля?
Так уж сложилось что счета открыты у разных, но являются частью единого портфеля.
Спасибо!
avatar

K_Sloths, Да, это возможно, как раз недавно столкнулся с этой задачей, когда переоткрывал ИИС у другого брокера. Я просто на лист «Константы» забил для каждого брокера комиссии


А, для каждой сделки ввел колонку «Брокерский счет», а в колонке «Комиссия Брокера» прописал формулу: 

=$I894*VLOOKUP($B894,'Константы'!$A$15:$B$18, 2, FALSE)



И получается, что для каждой сделки считается своя правильная комиссия

avatar
Сергей Ветко, большое спасибо!
avatar
А где урок, как автоматизировать авто выгрузку таблицы из квика в гугл таблицы? например раз в сутки? Спасибо!
avatar
Andrey Karpov, нет такого урока.
avatar
Сергей Ветко, Спасибо за быстрый ответ. А где можно подобное найти?
avatar
Andrey Karpov, К сожалению, не знаю. Quik — на компьютере, Гугл таблицы — в облаках. Автоматически связать их не так-то и просто. Компьютер постоянно включенным держать? И не очень понятно, что за таблицу нужно выгружать и зачем.

Вот здесь я описывал, как автоматически получать текущие котировки: https://smart-lab.ru/blog/493737.php
avatar

Читайте на SMART-LAB:
Фото
Долгосрочное инвестирование умерло. В этот раз - без "но". Хороших новостей не будет
Увеличение капитала посредством инвестирования в доли компаний всегда основывалось на двух тезисах (1) компания сможет на длительном...
Фото
Как на самом деле используют ИИ в алготрейдинге
Если первая часть моего репортажа по конференции алготрейдеров в Москве была об инфраструктуре, то вторая часть будет про искусственный...
«Профи» из группы Займер окупил первый приобретенный портфель
Делимся новостями коллекторского агентства из группы Займер. КА «Профи» вышло на точку окупаемости по первому приобретенному портфелю. ⚡️ Для...
Фото
Ростелеком. МСФО за Q4 2025г. Всё неплохо… но всё равно печально…
Компания Ростелеком опубликовала финансовые результаты за 4 квартал 2025г.: 👉Выручка — 270,5 млрд руб. (+15,6% г/г) 👉Операционные...

теги блога Сергей Ветко

....все тэги



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