从多家券商获取投资组合和其他数据,并对其进行分析

bankroll的Python项目详细描述


银行账户pypi versioncircleci

命令行界面和笔记本实用程序,用于接收来自多家经纪公司的投资组合和其他数据,并对其进行分析

这是bankroll项目的前端,该项目由几个库组成,这些库也可以单独使用。

目录:

  1. 安装
  2. 连接到代理
    1. 互动经纪人
    2. 查尔斯·施瓦布
    3. 忠实度
    4. 先锋
    5. (您的经纪人在这里)
    6. < > >
    7. 保存配置
    8. 扩展资金
    9. < > >

      安装

      要安装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查询 自定义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

      保真度

      通过与schwab类似的工具支持保真度

      此功能通过bankroll-broker fidelity插件实现

      pip3 install bankroll[ibkr,schwab]
      
      2
      • 要导出持仓数据,请从"持仓组合"页面下载
      • 要导出交易数据,请从"历史记录"页下载。

      更详细的说明还没有写好——欢迎投稿!

      先锋

      先锋是一家正在进行的工作,可能不像这里列出的其他经纪公司那样功能齐全。支持正在开发禁令Kroll Broker Vanguard插件:

      (您的经纪人在这里)

      bankroll打算尽可能抽象出经纪人的具体细节,以尽量减少支持每个细节所需的工作,因此如果你的经纪人没有在上面列出,请考虑构建一个新的经纪插件!我们希望列表随着时间的推移而增长,因为能够同时跨多个代理聚合和分析数据非常有用。

      若要添加新的代理,请创建accountdata的新子类,然后根据接口的要求实现方法。只要在运行时加载新的子类,它就会自动包含在诸如数据聚合等功能中

      如果经纪公司提供加载市场数据的工具,请考虑扩展bankroll-marketdata接口(尽管这是可选的)。

      保存配置

      为了在运行过程中保留设置,上面演示的所有命令行参数也可以保存到ini文件中。配置文件对于存储默认值特别有用,因为当在配置文件中以及在命令行上指定设置时,命令行参数将优先。

      要创建配置,请将bankroll.default.ini复制到~/.bankroll.ini,或将其保留在工作目录中作为bankroll.ini,然后编辑该文件以应用所需设置。

      如果要将配置存储在其他地方,也可以通过命令行上的--config参数提供自定义路径。

      扩展bankroll

      尽管命令行接口公开了一组基本功能,但它永远无法捕获所有可能的用例。为了获得更大的灵活性,您可以编写python代码来直接使用bankroll,并在其api之上构建用于您自己的目的。

      有关一些示例,请参见附带的笔记本

      欢迎加入QQ群-->: 979659372 Python中文网_新手群

      推荐PyPI第三方库


热门话题
具有x86javapath的x64机器上x86java上的java JNI未满足链接错误   java将Pixmap的一部分上传到GPU   图像Java位图RLE8格式   java Android studio谷歌广告崩溃应用程序   java如何创建包含未知数量对象的变量?   Java计算给定int数组的所有可能组合   java JDBC classnotfound异常   httpclient中的java将HttpEntity转换为字符串的最优雅/正确的方法是什么?   如何从Java程序运行nano?   java在安卓中调用自定义类/方法   调用方法和JOptionPane后,允许代码继续执行所需的java计时器或其他想法   关于侦听器的向量Java并发问题   线程池执行器Java线程池   java配置DTO上的Swagger javax验证约束   Java中用于按钮功能的swing操作命令   ServletOutputStream中的java设置状态代码   java打印输入数组的平均值