从多家券商获取投资组合和其他数据,并对其进行分析
bankroll的Python项目详细描述
银行账户
命令行界面和笔记本实用程序,用于接收来自多家经纪公司的投资组合和其他数据,并对其进行分析
这是bankroll项目的前端,该项目由几个库组成,这些库也可以单独使用。
目录:
- 安装
- 连接到代理
- 互动经纪人
- 查尔斯·施瓦布
- 忠实度
- 先锋
- (您的经纪人在这里) < > >
- 保存配置
- 扩展资金 < > >
- 要导出持仓数据,请从"持仓组合"页面下载
- 要导出交易数据,请从"历史记录"页下载。
安装
要安装bankroll
命令行实用程序,请从可用经纪插件的列表,并运行pip install
,这些经纪插件列为附加组件
例如,安装bankroll
并支持交互式代理和charles schwab:
pip3 install bankroll[ibkr,schwab]
或者从存储库根目录中复制代码:
pip3 install .[ibkr,schwab,fidelity]
一旦安装(并假定正确设置了python路径),就可以直接调用命令行工具:
bankroll --help
连接到代理
设置好后,可以从命令行使用资金卷
将多家经纪公司的数据汇集在一起。
例如,显示Interactive Brokers和Charles Schwab的所有职位:
bankroll \
--ibkr-tws-port 7496 \
--schwab-positions ~/Positions-2019-01-01.CSV \
--schwab-transactions ~/Transactions_20190101.CSV \
positions
使用--help
运行以查看所有选项:
bankroll --help
交互式代理
交互式代理(有时缩写为ib或ibkr)提供了受良好支持的API,这使得加载最新的投资组合数据和请求有关特定证券的实时信息成为可能。
对于bankroll
,此功能通过bankroll-broker-ibkr插件实现:
pip3 install bankroll[ibkr]
要从交互代理加载数据,必须运行并登录IB的一个交易应用程序来接受API连接。您可能希望使用ibc来自动启动和登录这些应用程序。
一次交易者工作站或者IB网关正在运行,并且启用了API连接,并提供本地端口号给bankroll
,如下所示:
bankroll \
--ibkr-tws-port 7496 \
[command]
查询交易历史
IB的交易员工作站API不支持检索有关帐户历史交易的信息,因此bankroll
必须使用他们的flex web服务
要设置此设置,请登录帐户管理,然后浏览侧边栏中的设置–帐户设置。
单击齿轮以配置自定义flex查询
创建新的交易确认灵活查询模板:
保存查询后,在列表中展开查询,查看并复制查询id以在命令行上使用。
使用您帐户中的令牌和查询ID,可以下载历史交易:
bankroll \
--ibkr-flex-token [token] \
--ibkr-trades [query ID] \
activity
查询股息历史记录
今后,这一工作流程将得到简化。
要将股息支付的历史记录合并到您的投资组合中,请对交易确认弹性查询遵循相同的步骤,但应创建活动弹性查询。
唯一需要启用的部分是应计股息的变化:
charles schwab不提供api,但它确实提供了用于导出的csv文件,然后可以导入这些文件。此功能通过bankroll-broker-schwab插件实现:
pip3 install bankroll[ibkr,schwab]
0
浏览到"职位"和/或"交易"屏幕:
单击右上角的"导出"链接:
然后提供这些下载文件中的一个或两个到资金帐户的路径
:
pip3 install bankroll[ibkr,schwab]
1
保真度
此功能通过bankroll-broker fidelity插件实现
更详细的说明还没有写好——欢迎投稿! 先锋是一家正在进行的工作,可能不像这里列出的其他经纪公司那样功能齐全。支持正在开发禁令Kroll Broker Vanguard插件: 若要添加新的代理,请创建 如果经纪公司提供加载市场数据的工具,请考虑扩展bankroll-marketdata接口(尽管这是可选的)。 为了在运行过程中保留设置,上面演示的所有命令行参数也可以保存到ini文件中。配置文件对于存储默认值特别有用,因为当在配置文件中以及在命令行上指定设置时,命令行参数将优先。 要创建配置,请将 如果要将配置存储在其他地方,也可以通过命令行上的 尽管命令行接口公开了一组基本功能,但它永远无法捕获所有可能的用例。为了获得更大的灵活性,您可以编写python代码来直接使用 有关一些示例,请参见附带的笔记本
2
pip3 install bankroll[ibkr,schwab]
先锋
(您的经纪人在这里)
bankroll
打算尽可能抽象出经纪人的具体细节,以尽量减少支持每个细节所需的工作,因此如果你的经纪人没有在上面列出,请考虑构建一个新的经纪插件!我们希望列表随着时间的推移而增长,因为能够同时跨多个代理聚合和分析数据非常有用。accountdata
的新子类,然后根据接口的要求实现方法。只要在运行时加载新的子类,它就会自动包含在诸如数据聚合等功能中保存配置
bankroll.default.ini
复制到~/.bankroll.ini
,或将其保留在工作目录中作为bankroll.ini
,然后编辑该文件以应用所需设置。--config
参数提供自定义路径。扩展
bankroll
bankroll
,并在其api之上构建用于您自己的目的。