Investments
Библиотека для анализа брокерских отчетов + утилиты для подготовки налоговой отчетности
Установка/обновление
$ pip3 install investments --upgrade --user
или с помощью uv
Утилита ibtax
Расчет прибыли Interactive Brokers для уплаты налогов для резидентов РФ
- расчет сделок по методу ФИФО, учет даты расчетов (settle date)
- конвертация по курсу ЦБ
- поддержка валют USD, RUB, EUR, CNH(CNY), AUD, GBP, CAD, CZK, DKK, HKD, HUF, YEN, KRW, NOK, PLN, SGD, ZAR, SEK, CHF, TRY
- раздельный результат сделок по акциям и опционам + дивиденды
- учёт начисленных процентов на остаток по счету
- учёт комисий по сделкам
- пока НЕ поддерживаются валюты ILS, MXN, NZD
- пока НЕ поддерживаются сплиты
- пока НЕ поддерживаются сделки Forex, сделка пропускается и выводится сообщение о том, что это может повлиять на итоговый отчет
Пример отчета:
Запуск
$ python3 -m investments.ibtax --activity-reports-dir /path/to/activity/dir --confirmation-reports-dir /path/to/confirmation/dir
Отчеты activity & confirmation должны:
- быть выгружены из IB в формате CSV
- лежать в разных директориях (см. Подготовка отчетов Interactive Brokers)
Просмотр неокруглённых цифр в расчётах
$ python3 -m investments.ibtax --verbose --activity-reports-dir /path/to/activity/dir --confirmation-reports-dir /path/to/confirmation/dir
Экспорт отчёта в pdf файл
$ python3 -m investments.ibtax --save-to /path/to/ibtax-report.pdf --activity-reports-dir /path/to/activity/dir --confirmation-reports-dir /path/to/confirmation/dir
Утилита ibdds
Утилита для подготовки отчёта о движении денежных средств по счетам у брокера Interactive Brokers (USA) для резидентов РФ
- выводит отчёт по каждой валюте счёта отдельно
- вывод максимально приближен к форме отчёта о ДДС
Пример отчета:
Запуск
$ python3 -m investments.ibdds --activity-report-filepath /path/to/activity/report.csv
Отчет activity должен:
- быть выгружен из IB в формате CSV
- отражать активность за один год (см. Подготовка отчетов Interactive Brokers)
Подготовка отчетов Interactive Brokers
Для работы нужно выгрузить из личного кабинета два типа отчетов: Activity statement (сделки, дивиденды, информация по инструментам и т.п.) и Trade Confirmation (settlement date, необходимая для правильной конвертации сумм по курсу ЦБ)
Отчёты должны быть названы так, чтобы сортировались естественным образом по годам начиная от старого к новому. Такого можно достичь называя файлик номером года (например 2019.csv).
Activity statement
Для загрузки нужно перейти в Reports / Tax Docs > Default Statements > Activity
Выбрать Format: CSV и скачать данные за все доступное время (Perioid: Annual для прошлых лет + Period: Year to Date для текущего года)
Обязательно выгрузите отчеты за все время существования вашего счета!
Trade Confirmation
Для загрузки нужно перейти в Reports / Tax Docs > Flex Queries > Trade Confirmation Flex Query и создать новый тип отчетов, выбрав в Sections > Trade Confirmation все пункты в группе Executions, остальные настройки - как на скриншоте:
После этого в Reports / Tax Docs > Custom Statements выгрузите отчеты за все время существования вашего счета, используя Custom date range периодами по 1 году (больше IB поставить не дает):
Разворачивание проекта для внесения изменений
- Install uv
- Clone & modify & run
$ git clone https://github.com/cdump/investments
$ cd investments
$ uv sync
$ uv run ibtax
usage: ibtax [-h] --activity-reports-dir ACTIVITY_REPORTS_DIR --confirmation-reports-dir CONFIRMATION_REPORTS_DIR [--cache-dir CACHE_DIR] [--years YEARS] [--verbose]
ibtax: error: the following arguments are required: --activity-reports-dir, --confirmation-reports-dir
$ vim investments/ibtax/ibtax.py # edit main file for example
$ uv run ibtax # run updated version
Metadata
Release files for investments 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| investments-0.3.1.tar.gz | 508.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| investments-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 538.9 kB
Release files / investments-0.3.1.tar.gz
| Download URL | investments-0.3.1.tar.gz |
|---|---|
| Size | 508.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
43f837f48bed70b57c72c5ee071f5f62fc342b6a7f21c021405ce831838c4c0f
|
|
BLAKE2b-256 checksum How to use checksums |
daf5d323345774acea928d5c5aa9892d85fb0e599bf687ea59926ac82cfe4bda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / investments-0.3.1-py3-none-any.whl
| Download URL | investments-0.3.1-py3-none-any.whl |
|---|---|
| Size | 30.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5a22bd987b8c9216cfc3d3b7eb0c0118dfa211f6d50f1603e85e07ee1731b795
|
|
BLAKE2b-256 checksum How to use checksums |
0a3507a8089ca87732faf8ac343a714a4cc630f3c0228653cbe014a83adc8b1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|