173 个稳定版本

6.7.1 2024 年 8 月 18 日
6.5.0 2024 年 6 月 26 日
6.3.1 2024 年 3 月 2 日
6.0.0 2023 年 12 月 31 日
1.6.2 2020 年 7 月 31 日

#6金融

Download history 1/week @ 2024-05-17 1/week @ 2024-05-24 1/week @ 2024-06-07 132/week @ 2024-06-14 323/week @ 2024-06-21 25/week @ 2024-06-28 13/week @ 2024-07-05 195/week @ 2024-07-26 26/week @ 2024-08-02 488/week @ 2024-08-16

709 每月下载量

GPL-3.0+

1.5MB
28K SLoC

Test status

Investments

帮助你管理投资

  • 投资组合再平衡:指导您提交哪些订单,以使您的投资组合与资产配置保持一致。
  • 股票销售模拟:计算收入、利润、税收以及考虑税收后的实际利润百分比。
  • 自动税务报表生成:读取经纪人报表并修改 *.dcX 文件(由名为“申报”的俄罗斯税务程序创建)以添加关于股票销售收入、支付的股息和闲置现金利息的所有必需信息。
  • 分析:通过将投资组合表现与具有相同投资的美元和卢布货币的银行存款表现以及每月资本化进行比较,计算现金投资的平均收益率。在计算投资组合表现时考虑税收、手续费、股息、税收减免以及可选的通货膨胀。
  • 银行存款控制:在一个地方查看所有已开设的银行存款,并获得即将关闭的存款通知。

针对使用 Interactive BrokersОткрытие БрокерТинькоффFirstradeБКС 的俄罗斯投资者。

安装

查看 安装说明

配置

创建 ~/.investments/config.yaml 配置文件。查看 示例,其中包含每个经纪人的典型配置、适用于账户的税收减免以及其他更多信息。不要忘记获取 FCS API 和 Finnhub 的 API 令牌(有关详细信息,请参阅 股票和外汇报价提供商)。

用法

股票

Investments 设计用于与您的经纪人报表一起工作 — 无需手动输入所有交易和交易,但需要您从开户日开始拥有所有经纪人报表。它可以是一个经纪人报表,也可以是多个 — 不重要,但重要的是,第一个报表必须是资产为零的报表,报表期间不能重叠或存在缺失的天数。

目前支持以下经纪人

Investments 存储一些数据在本地数据库中,该数据库位于 ~/.investments/db.sqlite,并支持一系列命令,可以归纳为

性能分析

investments analyse 命令通过将投资组合的表现与美元和卢布货币的银行存款表现进行比较,计算现金投资的平均回报率。考虑税收、手续费、股息、税收抵免和通货膨胀(可选)以计算投资组合的表现。

investments analyse

投资组合再平衡

请参阅投资组合再平衡说明

investments rebalance

税务申报生成

请参阅税务申报生成说明及与俄罗斯联邦税务局互动的建议

investments tax-statement

卖出模拟

investments simulate-sell 命令通过模拟当前市场价格关闭指定的持仓,并允许您估算您的利润、税收和税收豁免的适用性。

investments simulate-sell

Prometheus 指标

investments metrics 命令允许您将分析结果以 Prometheus 格式导出,以便由 Node exporter 的 Textfile Collector 收集。

以下是一个Grafana 仪表板示例,该仪表板显示了在不同经纪人处开设的多个投资组合的汇总统计和投资结果。

Investments Grafana dashboard

存款

您还可以在一个地方查看所有已开设的银行存款,并获得即将关闭的存款的通知。在配置文件中注册您的已开设存款,然后执行

$ investments deposits

                            Open deposits

 Open date   Close date    Name     Amount   Interest  Current amount
 19.06.2019  19.03.2020  Тинькофф  465,000₽         7     473,343.49₽
 21.06.2019  21.06.2020  Тинькофф  200,000₽       7.5     203,763.08₽
                                   665,000₽               677,106.57₽

此命令具有 cron 模式(investments deposits --cron),您可以使用它与 notify_deposit_closing_days 配置选项结合使用。例如,如果您创建了一个 cron 作业,并将其配置为将命令输出发送到您的电子邮件,那么在 2020 年 6 月 11 日,您将收到以下内容的电子邮件

The following deposits are about to close:
* 21.06.2020 Тинькофф: 200,000-> 215,570.51₽

The following deposits are closed:
* 19.03.2020 Тинькофф: 465,000-> 490,013.27

不支持的功能

该程序专注于被动投资用例,并且仅支持我在我的经纪人报告中看到或其他人发送给我的报告中所见的那些用例,我确保它们得到了适当的处理并为此编写了回归测试。例如,以下功能目前尚未支持

免责声明

任何自动化都不是完美的,作者是一名软件开发人员,而不是税务律师,因此请对所有程序的计算结果持批判态度。

该项目是一个个人项目,主要供我个人使用。代码以这种方式编写,如果它在经纪人报告中发现异常情况,则返回错误,并尝试避免传递错误,以防止得到误导性结果,因此可能存在许多它尚未处理的情况,我无法保证我会找到时间来支持您的特定案例。

联系方式

问题讨论 是请求和提问的首选方式。请仅出于隐私原因使用 电子邮件

依赖项

~79MB
~1.5M SLoC