Home

Awesome

InvesTool

Open Source Love made-with-Go visitors GitHub release Github all releases

InvesTool 项目是使用 Golang 实现的个人投资分析工具,主要是为了提高按基本面选股和基金筛选的效率工具。最初是本地的脚本,后来使用 Golang 实现提供命令行版本,目前主要以 Web 网页版为主实现相关功能。数据来源于东方财富网、亿牛网、新浪财经、天天基金。

郑重声明

免责声明:程序代码仅供本人学习研究使用,如作他用所承受的法律责任一概与作者无关(下载使用即代表你同意上述观点)。使用者不得干扰或破坏数据来源网站的服务或与服务相连的服务器和网络,且本程序不对您构成任何投资建议,据此操作,风险自担。

InvesTool 解决什么问题?

InvesTool 要解决的问题是,在使用东方财富选股器按设置的条件筛选出股票后,通常筛选出的股票数量较多,需要人工对每一支股票的财报指标进行分析以判断是否可以长期持有。

需要分析的指标较多,并且有一些指标无法直接获取,需要进行计算或根据历史财务数据进行计算,在大量股票需要分析的时候这是一个繁琐的工作,因此开发了 InvesTool 来让这个过程自动化。

功能

当前已实现的功能:

我的选股规则

根据各种指标筛选值得长期持有其股票进行投资的优质公司。(优质公司不代表当前股价在涨,长线存股)

1. 财务优质

2. 估值优质

3. 配置均衡

银行股选择标准

银行股由于盈利模式不同,因此选择标准略有不同。

  1. ROE 高于 8%
  2. ROA 高于 0.5%
  3. 资本充足率高于 8%
  4. 不良贷款率低于 3%
  5. 不良贷款拨备覆盖率高于 100%

低价股选择标准

低价股定义:价格范围 10 - 30 元

  1. 市净率不低于 1%
  2. ROE 不低于 8%
  3. 配发股利

个人长线存股的买卖条件

个人对长线存股的理解,股|票分为股和票。短线买的是票,追涨杀跌也好,高抛低吸也好,就是需要去炒它赚短期的价差;长线想买的是手里的持股数,尽量以相对较低的价格买到较多的股数成为该公司的一个股东,目标并不是立刻盈利,主要是作为退休养老金进行存股,买好公司的股票,做公司股东。

关于买,基本面检测符合要求时,选择自己相信的股票,参考计算出的合理股价在低估值时期进行买入,注意了解其行业的宏观周期处于什么阶段,再结合技术分析在相对底部进行买入。一定要买相信的,只有相信才能拿住。

关于卖,基本面不变不卖,当初买入的理由不变不卖,获利卖股的原则:

关于 ETF 的选择标准

基金经理筛选标准

基金可以按收益率进行 4433 法则选择外,可以按基金经理进行筛选,毕竟买基金实质是买基金经理,基金经理的选择参考标准为:

基金 4433 筛选方法

基金筛选使用简单的 4433 法则进行筛选,即:

基金 WEB 页面的 4433 基金列表是通过定时任务每个工作日对市场上的超过 1 万多只全部类型的基金(包括债券基金)进行 4433 法则检测,只要收益率满足条件的所有类型的基金都会进入 4433 基金列表。整个过程约 1 分 50 秒可以完成,结果保存在 json 文件中(可通过单元测试中的方法进行数据拉取)。

同时支持4433 严选

当前基金筛选、检测等操作目前只支持 WEB 界面操作,命令行暂未支持。

使用方法

数据接口封装在 datacenter 包中,相关 API 文档地址:https://pkg.go.dev/github.com/axiaoxin-com/investool/datacenter

点击下载对应系统最新版本解压得到可执行文件

查看使用说明:

$ ./investool -h
NAME:
   investool - axiaoxin 的股票工具程序

USAGE:
   该程序不构成任何投资建议,程序只是个人辅助工具,具体分析仍然需要自己判断。

官网地址: http://axiaoxin.com/investool

VERSION:
   0.0.7

AUTHOR:
   axiaoxin <254606826@qq.com>

COMMANDS:
   exportor  股票筛选导出器
   checker   股票检测器
   help, h   Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --loglevel value, -l value  日志级别 [debug|info|warn|error] (default: info) [$XSTOCK_LOGLEVEL]
   --help, -h                  show help (default: false)
   --version, -v               show the version (default: false)

COPYRIGHT:
   (c) 2021 axiaoxin

exportor

exportor 是数据导出器,不使用参数默认导出 EXCEL 文件。

查看使用说明:

./investool exportor -h
NAME:
   investool exportor - 股票筛选导出器

USAGE:
   将按条件筛选出的股票导出到文件,根据文件后缀名自动判断导出类型。支持的后缀名:[xlsx|csv|json|png|all],all 表示导出全部支持的类型。

OPTIONS:
   --filename value, -f value                      指定导出文件名 (default: ./dist/investool.20210509.xlsx) [$XSTOCK_EXPORTOR_FILENAME]
   --disable_check, -C                             关闭基本面检测,导出所有原始筛选结果 (default: false) [$XSTOCK_EXPORTOR_DISABLE_CHECK]
   --filter.min_roe value                          最低净资产收益率 (%) (default: 8.0)
   --filter.min_netprofit_yoy_ratio value          最低净利润增长率 (%) (default: 0.0)
   --filter.min_toi_yoy_ratio value                最低营收增长率 (%) (default: 0.0)
   --filter.min_zxgxl value                        最低最新股息率 (%) (default: 0.0)
   --filter.min_netprofit_growthrate_3_y value     最低净利润 3 年复合增长率(%) (default: 0.0)
   --filter.min_income_growthrate_3_y value        最低营收 3 年复合增长率(%) (default: 0.0)
   --filter.min_listing_yield_year value           最低上市以来年化收益率(%) (default: 0.0)
   --filter.min_pb_new_mrq value                   最低市净率 (default: 1.0)
   --filter.max_debt_asset_ratio value             最大资产负债率 (%) (default: 0.0)
   --filter.min_predict_netprofit_ratio value      最低预测净利润同比增长(%) (default: 0.0)
   --filter.min_predict_income_ratio value         最低预测营收同比增长(%) (default: 0.0)
   --filter.min_total_market_cap value             最低总市值(亿) (default: 100.0)
   --filter.industry_list value                    行业名
   --filter.min_price value                        股价范围最小值(元) (default: 0.0)
   --filter.max_price value                        股价范围最大值(元) (default: 0.0)
   --filter.listing_over_5_y                       上市时间是否超过 5 年 (default: false)
   --filter.min_listing_volatility_year value      最低上市以来年化波动率 (default: 0.0)
   --filter.exclude_cyb                            排除创业板 (default: true)
   --filter.exclude_kcb                            排除科创板 (default: true)
   --filter.special_security_name_abbr_list value  查询指定名称
   --filter.special_security_code_list value       查询指定代码
   --filter.min_roa value                          最小总资产收益率 ROA (default: 0.0)
   --checker.min_roe value                         最新一期 ROE 不低于该值 (default: 8.0)
   --checker.check_years value                     连续增长年数 (default: 3)
   --checker.no_check_years_roe value              ROE 高于该值时不做连续增长检查 (default: 20.0)
   --checker.max_debt_asset_ratio value            最大资产负债率百分比(%) (default: 60.0)
   --checker.max_hv value                          最大历史波动率 (default: 1.0)
   --checker.min_total_market_cap value            最小市值(亿) (default: 100.0)
   --checker.bank_min_roa value                    银行股最小 ROA (default: 0.5)
   --checker.bank_min_zbczl value                  银行股最小资本充足率 (default: 8.0)
   --checker.bank_max_bldkl value                  银行股最大不良贷款率 (default: 3.0)
   --checker.bank_min_bldkbbfgl value              银行股最低不良贷款拨备覆盖率 (default: 100.0)
   --checker.is_check_mll_stability                是否检测毛利率稳定性 (default: true)
   --checker.is_check_jll_stability                是否检测净利率稳定性 (default: true)
   --checker.is_check_price_by_calc                是否使用估算合理价进行检测,高于估算价将被过滤 (default: false)
   --checker.max_peg value                         最大 PEG (default: 1.5)
   --checker.min_byys_ratio value                  最小本业营收比 (default: 0.9)
   --checker.max_byys_ratio value                  最大本业营收比 (default: 1.1)
   --help, -h                                      show help (default: false)

命令行使用示例:

./investool -l error exportor -f ./stocks.json
./investool -l error exportor -f ./stocks.csv
./investool -l error exportor -f ./stocks.xlsx
./investool -l error exportor -f ./stocks.png
./investool -l error exportor -f ./stocks.all
./investool -l error exportor -f ./stocks.xlsx --filter.min_roe=6 --checker.min_roe=6
./investool -l error exportor -f ./stocks.xlsx --filter.special_security_name_abbr_list 福莱特 --filter.special_security_name_abbr_list 旗滨集团 --disable_check

checker

给定关键词/股票代码搜索股票进行评估检测

查看使用说明:

./investool checker -h
NAME:
   investool checker - 股票检测器

USAGE:
   investool checker [command options] [arguments...]

OPTIONS:
   --keyword value, -k value             检给定股票名称或代码,多个股票批量检测使用/分割。如: 招商银行/中国平安/600519
   --checker.min_roe value               最新一期 ROE 不低于该值 (default: 8.0)
   --checker.check_years value           连续增长年数 (default: 3)
   --checker.no_check_years_roe value    ROE 高于该值时不做连续增长检查 (default: 20.0)
   --checker.max_debt_asset_ratio value  最大资产负债率百分比(%) (default: 60.0)
   --checker.max_hv value                最大历史波动率 (default: 1.0)
   --checker.min_total_market_cap value  最小市值(亿) (default: 100.0)
   --checker.bank_min_roa value          银行股最小 ROA (default: 0.5)
   --checker.bank_min_zbczl value        银行股最小资本充足率 (default: 8.0)
   --checker.bank_max_bldkl value        银行股最大不良贷款率 (default: 3.0)
   --checker.bank_min_bldkbbfgl value    银行股最低不良贷款拨备覆盖率 (default: 100.0)
   --checker.is_check_mll_stability      是否检测毛利率稳定性 (default: true)
   --checker.is_check_jll_stability      是否检测净利率稳定性 (default: true)
   --checker.is_check_price_by_calc      是否使用估算合理价进行检测,高于估算价将被过滤 (default: false)
   --checker.max_peg value               最大 PEG (default: 1.5)
   --checker.min_byys_ratio value        最小本业营收比 (default: 0.9)
   --checker.max_byys_ratio value        最大本业营收比 (default: 1.1)
   --help, -h                            show help (default: false)

命令行使用示例:

./investool -l error checker -k 比亚迪

webserver

启动 WEB 服务:

Web 服务使用的是pink-lady 项目模板

./investool webserver

可通过 ---config 指定配置文件,默认读取当前目录下的 ./config.toml

随着时间的推移,从中报发布结束开始,满足默认筛选条件的公司会越来越多,筛选并检测的耗时也会逐渐增加,服务部署时反向代理的超时时间需调大。

index

获取指数代码 000905 信息

./investool index -c 000905 -d

获取指数代码 000905 的成分股:

./investool index -c 000905 -s

获取指数代码 000905 和指数代码 000922 的成分股交集:

./investool index -c 000905 -i 000922

最后

程序输出的所有数据与信息仅供参考,不构成投资建议。再次强调,本程序代码仅供本人学习研究使用,如作他用所承受的法律责任一概与作者无关(下载使用即代表你同意上述观点)。

祝大家投资顺利。

Stargazers over time