From a5b23bbaa356f5e3fa428baa0961ab5808f09e4b Mon Sep 17 00:00:00 2001 From: softandiron Date: Fri, 6 Aug 2021 14:23:24 +0300 Subject: [PATCH] added comments for clarification --- excel_builder.py | 139 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) diff --git a/excel_builder.py b/excel_builder.py index 6216319..c5bf0e4 100644 --- a/excel_builder.py +++ b/excel_builder.py @@ -410,9 +410,148 @@ def print_dividends_and_coupons(): 'average monthly salary for the last 12 months:', merge_format['bold_right']) worksheet_divs.write(start_row, start_col + 3, round(sum(operations_in_last_12_months) / 12, 2), cell_format['RUB']) + def print_clarification(s_row, s_col ): + logger.info('printing clarification..') + n = 0 + worksheet_port.write(s_row + n, s_col, 'name', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n , s_col + 16, + ' - название инструмента', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'ticker', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n, s_col + 16, + ' - тикер инструмента', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'balance', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n, s_col + 16, + ' - количество бумаг в портфеле', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'currency', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n, s_col + 16, + ' - валюта', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'ave.price', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n, s_col + 16, + ' - средняя цена покупки одной бумаги', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'sum.buy', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n, s_col + 16, + ' - стоимость приобретения. = ave.price * balance', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'exp.yield', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n, s_col + 16, + ' - ожидаемый доход при полном закрытии позиции', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'market price', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n, s_col + 16, + ' - рыночная цена одной бумаги. Берётся из API,' + ' но для облигаций = market value / balance', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, '% change', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n, s_col + 16, + ' - изменение рыночной стоимости одной бумаги относительно её ave.price', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'market value', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n, s_col + 16, + ' - рыночная стоимость всей позиции в портфеле', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'market value RUB', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n , s_col + 1, s_row + n, s_col + 16, + ' - market value в рублях по рыночному курсу', + merge_format['left']) + n += 2 + worksheet_port.write(s_row + n, s_col, 'CB value RUB', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - тоже market value в рублях, но по курсу ЦБ на сегодня', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'ave.buy in RUB', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - средняя цена покупки в рублях по курсу ЦБ на день покупки. Рассчитывается сложно', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'sum.buy in RUB', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - сумма покупки всей позиции в рублях по курсу ЦБ. = ave.buy in RUB * balance', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'tax base', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - налоговая база. Разница между текущей рыночной стоимостью позиции ' + 'в рублях по курсу ЦБ и стоимостью её приобретения.' + '= CB value RUB - sum.buy in RUB', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'expected tax', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - ожидаемый налог. = tax.base * 13%. Не учитывает налоговые льготы и' + 'налог, который мог уже набежать по ранее закрытым позициям', + merge_format['left']) + n += 2 + worksheet_port.write(s_row + n, s_col, 'Investing period', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - период инвестирования. Сколько лет, месяцев, дней с даты,' + 'которая указана в my_account.txt до сегодняшнего дня', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'PayIn - PayOut', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - разница между заведёнными на счёт средствами и выведенными. ', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'Commissions payed', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - сумма всех уплаченных комиссий (За торговлю и за обслуживаение)', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'Taxes payed', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - сумма всех уплаченных налогов (Закрытие позиций, купоны и дивиденды)', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'Clean portfolio', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - стоимость портфеля, очищенная от налога, ' + 'начисляемого при закрытии всех позиций. ' + 'Не учитывает возможные льготы и те налоги,' + ' которые уже могли набежать по ранее закрытым позициям, ' + 'а также самостоятельно декларируемые налоги', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'Profit', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - почти чистая прибыль. = Clean portfolio - (PayIn - PayOut)', + merge_format['left']) + n += 1 + worksheet_port.write(s_row + n, s_col, 'XIRR', cell_format['bold_right']) + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' - the irregular internal rate of return. Показатель на основе формулы Excel, ' + 'которая рассчитывает эффективность инвестирования ' + 'с учётом всех пополнений и выводов средств', + merge_format['left']) + n += 4 + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' Разработанно @softandiron и контрибьюторами. Версия v2.x, 2021 год.', + merge_format['left']) + n += 1 + worksheet_port.merge_range(s_row + n, s_col + 1, s_row + n, s_col + 16, + ' GitHub: https://github.com/softandiron/tinkproject', + merge_format['left']) + n += 1 + last_row_pos = print_portfolio(1, 1) print_operations(1, 2) print_statistics(last_row_pos + 3, 1) + print_clarification(last_row_pos + 18, 1) print_dividends_and_coupons() # finish Excel