69次发布

0.1.69 2024年8月15日
0.1.68 2024年6月26日
0.1.66 2024年3月1日
0.1.64 2023年12月30日
0.1.7 2020年7月30日

#931 in 过程宏

Download history 1/week @ 2024-05-16 2/week @ 2024-05-23 1/week @ 2024-06-06 116/week @ 2024-06-13 116/week @ 2024-06-20 51/week @ 2024-06-27 7/week @ 2024-07-04 573/week @ 2024-07-25 72/week @ 2024-08-01

每月 645 次下载
用于 investments

GPL-3.0+

10KB
210

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年11月11日,如果notify_deposit_closing_days: 10,您将收到以下内容的电子邮件

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

不支持的功能

该程序专注于被动投资用例,仅支持我在我的经纪人声明中看到或其他人发送给我的声明,我保证这些声明被妥善处理,并为它们编写了回归测试。例如,以下内容尚未支持

免责声明

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

该项目是一个宠物项目,主要用于个人使用。代码编写方式是,如果它在其经纪人声明中发现异常,则返回错误,而不是尝试通过错误,以避免导致误导性结果的情况,因此可能有许多它尚无法处理的情况,并且我不能保证我会找到时间来支持您的特定情况。

联系方式

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

依赖项

~0.6–1MB
~24K SLoC