InvesTool 部署与配置上手指南5步把财报分析与基金筛选工具跑起来【免费下载链接】investoolGolang实现财报分析、个股基本面检测、基本面选股、4433法则基金筛选与检测、基金持仓相似度、股票选基、基金经理筛选项目地址: https://gitcode.com/gh_mirrors/in/investoolInvesTool 是一款用 Go 语言实现的个人投资分析工具帮你把按基本面选股和4433 法则基金筛选这两件原本要手动翻财报、算指标的苦差事自动化。读完这篇 InvesTool 部署与配置上手指南你不需要懂 Go 编程只要照着敲命令就能在十几分钟内把 Web 界面跑起来、用命令行检测一只股票、把筛选结果导出成 Excel最后还能把它稳稳部署到一台服务器上长期运行。全文围绕先跑起来、再调教、再上生产这条主线展开每一步都附成功标志方便你对照自查。第一章 先说清楚装好 InvesTool你立刻能得到什么很多选股工具只负责把一堆股票扔给你剩下的大量工作还是得自己做打开一只股票的财报看 ROE 高不高、净利润是不是连续几年增长、负债率有没有超标……股票一多这套动作能把人累垮。InvesTool 的价值恰恰是把这段反复打开财报页面、人工核对指标的过程变成一条命令。它替你完成了三件事自动筛按你设定的条件ROE、营收增长、负债率、市值、股价区间等从全市场挑出候选股票再逐只做基本面检测不合格的直接过滤掉。自动查输入股票名称或代码马上给出 ROE、EPS、营收、利润、估值、合理价、历史波动率等一串检测结果并给出整体判定。自动存把筛选结果导出为 Excel、CSV、JSON 甚至二维码图片方便你导入行情软件或存档。除此之外它还内置了基金 4433 筛选、基金持仓相似度分析、股票选基和基金经理筛选这些功能目前主要在 Web 界面里操作。所以接下来的旅程分两条线先用命令行快速尝鲜再打开 Web 界面体验完整功能。第二章 15 分钟快速体验先看到结果再谈配置这一章的目标只有一个让你在最短时间内亲眼看到 InvesTool 在工作。别急着研究配置先跑起来。第 1 步拿到源码找个目录把项目克隆下来然后进入项目目录git clone https://gitcode.com/gh_mirrors/in/investool cd investool# 确认 Go 环境已安装版本 1.16 及以上即可 go version如果提示找不到go命令先按 Go 官方文档装好环境再回来。✅ 当终端里出现类似go version go1.20 linux/amd64的输出说明环境就绪。第 2 步编译出可执行文件项目本身就是 Go 源码编译一条命令搞定go build -o investool main.go# 确认编译产物已经生成 ls -l investool✅ 看到当前目录多出一个名为investool的可执行文件就说明编译成功。这也是接下来所有操作的主角。第 3 步用命令行检测一只股票先走最短路径用checker子命令检测一只股票输入名称或代码都行./investool checker -k 比亚迪如果想一次检测多只用/把关键词连起来./investool checker -k 招商银行/中国平安/600519运行后程序会去数据源拉取财报数据然后逐项打印检测结论。你会看到类似下面的界面——它把每项检测的标准和你的股票实际表现并排展示一目了然上图是股票检测器的运行结果左侧列检测维度右侧列实际数值红色标签标注重点结论比如 EPS 是否逐年递增、股价与合理价的差距。再往下滚动还会看到对 ROE、负债率、PEG 等指标的最终判定上图是检测的收尾部分整体质地、ROE 趋势、负债率、PEG 逐项给出结论最后一行是整只股票的最终判定符合/不符合。如果你输入的不是它认为达标的标的结尾就会像图里这样显示 FAILED——别慌这只是说明这只股票没通过它的筛选标准。✅ 只要能看到这一串检测输出InvesTool 的核心能力就算验证通过了一半。第 4 步启动 Web 界面体验完整功能命令行只是开胃菜基金筛选、持仓相似度这些功能都在网页里。启动 Web 服务同样简单./investool webserver默认会读取当前目录下的config.toml配置文件。启动成功后日志里会出现一行类似Server is running on :4869的提示。这时打开浏览器访问http://localhost:4869✅ 看到网页加载出来就说明 Web 服务正常。页面登录账号默认是admin密码也是admin后面会教你怎么改。逛一逛基金筛选、股票检测这些页面先对功能有个印象下一章我们再把它调教成顺手的样子。第三章 配置魔法把工具调教成你想要的样子跑起来只是第一步真正让它合你的口味靠两样东西config.toml 配置文件管 Web 服务的行为和命令行参数管每次筛选检测的标准。你可以把前者想象成遥控器上的总开关后者是每次出发前设定的目的地。3.1 Web 服务总开关config.toml文件位于项目根目录启动时用-c参数可以指定别的配置文件./investool webserver -c ./config.prod.toml先看最常用的几个开关按功能分组给你讲① 服务参数端口、运行模式[server] addr :4869 mode debugaddr服务监听地址和端口:4869表示监听所有网卡的 4869 端口。端口被占用时改成:8888之类即可。mode运行模式开发时用debug日志更详细正式对外服务建议改成release。② 安全与访问控制[basic_auth] username admin password admin [ratelimiter] enable truebasic_auth是网页的登录账号密码部署到公网前务必改掉默认的 admin/admin。ratelimiter.enable控制是否开启请求频率限制开启后能防止有人高频刷接口自己单机玩也可以关掉。③ 日志行为[logging] level info format json output_paths [stdout]level日志级别调试时用debug日常用info嫌吵就warn或error。output_paths日志输出到哪里[stdout]是打印到终端想落盘改成[logrotate://./logs/investool.log]程序会自动按天/按大小轮转。改完配置后直接重启./investool webserver就能生效因为程序启动时会重新读取整个文件。3.2 每次筛选检测的标准命令行参数Web 界面能点出默认规则的筛选结果但命令行才是自定义条件的主场。exportor的筛选参数分两组filter.*管从全市场捞出哪些候选checker.*管对候选逐只做哪些基本面检查。场景一我想要负债率更低、ROE 要求更高的股票./investool -l error exportor -f ./mystocks.xlsx --filter.min_roe10 --filter.max_debt_asset_ratio40 --checker.min_roe10 --checker.max_debt_asset_ratio40说明filter.min_roe10要求候选股最新 ROE 不低于 10%filter.max_debt_asset_ratio40要求资产负债率不高于 40%checker.*两个参数把检测阶段的标准提到同样水平。-l error是让日志只报错误屏幕干净一点。✅ 跑完后在./mystocks.xlsx找到导出文件即成功。场景二我只关心某几只股票不想要全市场筛选./investool -l error exportor -f ./watch.xlsx --filter.special_security_name_abbr_list 福莱特 --filter.special_security_name_abbr_list 旗滨集团 --disable_check说明--filter.special_security_name_abbr_list可以重复传指定只处理这些名称的股票--disable_check跳过基本面检测只导出原始筛选结果适合先快速看一眼数据。场景三导出格式由文件后缀自动决定./investool -l error exportor -f ./stocks.json # 导出 JSON ./investool -l error exportor -f ./stocks.csv # 导出 CSV ./investool -l error exportor -f ./stocks.xlsx # 导出 Excel按行业、价格、历史波动率分工作表 ./investool -l error exportor -f ./stocks.png # 导出成代码图片方便导入行情 APP ./investool -l error exportor -f ./stocks.all # 一次导出上面所有格式说明它不看你写什么参数只看文件后缀名后缀是.xlsx就出 Excel是.png就出二维码图片all表示全都要。是不是很像看菜下锅想要了解全部可用参数随时查看帮助./investool exportor -h ./investool checker -h第四章 进阶提速让它更快、更稳、更省心用了一段时间后你可能会遇到两个感受一是筛选全市场时等得有点久二是想回头排查某个报错却找不到日志。这一章就是针对这些用着不够顺手的时刻。什么时候该动哪些开关给你一张判断小抄觉得请求太慢、怕被数据源限流打开[ratelimiter]的enable true让请求频率更温和。想排查问题但日志太少把[logging]的level调到debug重启后再复现一次问题日志会详细得多。嫌日志太多刷屏level调到warn或error只看异常。想让日志落盘、方便翻历史把output_paths从[stdout]改成日志文件路径并按需调整[logging.logrotate]里的max_size单个文件多大触发轮转和max_age备份保留几天。筛选任务耗时变长README 里特别提醒过从中报发布季开始满足条件的公司会越来越多筛选耗时随之增加如果服务挂在 Nginx 后面记得把反向代理的超时时间调大下一章会讲。并发拉数据卡顿[app]里的chan_size控制并发拉取数据时通道的大小默认 1 比较保守网络好的机器可以试着调大一点观察效果。定时任务别去动它但你要知道它在干什么[app.cronexp]里配置了定时任务的 cron 表达式比如sync_global_vars 0 6 * * 1-5表示每个工作日早上 6 点自动同步全局变量。基金 4433 列表也是靠定时任务每个工作日全市场跑一遍大约 1 分 50 秒生成的结果保存在 JSON 文件里。没有特殊需求保持默认即可。第五章 上生产当一个人扛不住时怎么办到这一步你可能已经离不开它了开始想让它在服务器上 7×24 小时跑着哪怕电脑关机、进程崩了也能自动恢复。这时候单靠./investool webserver就不够了——你需要三件套Docker环境打包、Nginx对外接待、Supervisor进程守护。先说个比喻帮你理解如果 InvesTool 是你要开的一家店Docker 是标准化的厨房设备Nginx 是站在门口的前台接待员来访的客人都先找它再由它把客人领到厨房Supervisor 则是店长盯着店员进程有没有偷懒倒下了就喊起来继续干。5.1 用 Docker 把环境打包项目根目录自带Dockerfile它会从发布包解压出可执行文件并运行。构建和启动docker build -t investool:latest .docker run -d -p 4869:4869 --name investool -v $(pwd)/config.toml:/srv/investool/config.toml investool:latest说明-p 4869:4869把容器内的 4869 端口映射到宿主机-v把宿主机当前目录的config.toml挂载进容器这样你改配置只需重启容器不用重新构建镜像。✅ 执行后docker ps能看到名为investool的容器在运行就成功了。5.2 用 Nginx 做前台接待Docker 只是把服务跑起来了它直接暴露端口对外既不好看也不安全。Nginx 的作用是统一入口用户访问 80 端口Nginx 把请求转给 4869 端口的 InvesTool。项目里给你留了示例见misc/configs/nginx.conf核心就这一段server { listen 80; server_name example.com; location / { proxy_pass http://pink_lady_api; } }配套的负载均衡池也要保留示例文件里的upstream段指向0.0.0.0:4869对应 InvesTool 的监听端口。把server_name改成你自己的域名保存后重载 Nginxnginx -s reload⚠️ 别忘了前面说的随着筛选耗时变长建议在location块里加长proxy_read_timeout和proxy_connect_timeout避免长任务被 Nginx 掐断。5.3 用 Supervisor 当店长进程偶尔会崩崩了谁来拉Supervisor 就是干这个的。项目给的示例在misc/configs/supervisor.conf要点是[program:investool] directory/srv/investool command/srv/investool/investool webserver -c ./config.prod.toml autorestarttrue stdout_logfile/srv/investool/logs/investool.stdout.log stderr_logfile/srv/investool/logs/investool.stderr.log把directory和command改成你服务器上实际的路径与配置文件autorestarttrue表示进程异常退出后自动拉起。用supervisorctl管理supervisorctl reread supervisorctl update supervisorctl status investool✅ 状态显示为RUNNING说明进程被守护住了。5.4 认识一下整体架构当你把 Docker、Nginx、Supervisor 都串起来后整个调用链大致长这样项目里的架构图可以帮你建立全局观上图是 InvesTool 基于 Gin 框架的整体架构设计从前端页面、路由层、核心业务逻辑到数据源适配一应俱全。看这张图时你只需要关注自己部署涉及的那条链路——请求怎么进来、数据从哪个数据源拉取即可其余细节不用深究。第六章 部署完成自检清单三步确认它真的在干活服务部署完了别急着欢呼用下面三步快速自检确认它真的在为你工作① 网页能打开且能登录浏览器访问你的地址用改过的账号密码登录。如果还停留在默认的 admin/admin请立刻回去改掉。✅ 页面正常渲染基金筛选页能看到数据。② 命令行能出结果在服务器上跑一次检测确认数据链路通畅./investool checker -k 贵州茅台✅ 能打印出完整的检测结果而不是报网络错误。③ 导出文件真实可用跑一次导出然后打开文件抽查内容./investool -l error exportor -f ./check.xlsx✅ 生成的 Excel 用 WPS 或 Excel 打开能看到按行业、价格、历史波动率分好的工作表说明从筛选—检测—导出整条流水线是通的。第七章 踩坑速查最常见的 5 个坑与一句话解法Q1启动 webserver 时报端口被占用改config.toml里[server] addr的端口号或先找出占用进程并停掉。Q2登录页面进不去 / 密码不对默认账号密码是admin/admin确认是不是被改过改完配置要重启服务才生效。Q3checker或exportor提示数据获取失败大概率是网络问题或数据源临时调整。先检查服务器能否正常访问外网再把日志级别调到debug复现一次看具体报错。Q4筛选很慢Nginx 老是返回超时在 Nginx 的location里调大proxy_read_timeout和proxy_connect_timeout建议 300 秒以上给长任务留足时间。Q5导出文件后缀写错了格式不对exportor按后缀名决定格式只支持xlsx、csv、json、png、all别的后缀会报错或不识别。写在最后到这里你已经走完了 InvesTool 从只会看到跑得起来、用得顺手的全过程先命令行快速验证再通过配置文件和参数把它调教成自己的标准然后按需提速最后用 Docker、Nginx、Supervisor 三件套把它送上生产。剩下的就是让定时任务每天帮你跑一遍 4433 基金筛选让它在后台安静地当你的投资分析助手。最后必须提醒一句InvesTool 输出的所有数据与分析结果仅供学习研究参考不构成任何投资建议。程序会基于财务数据自动判断但它不懂市场情绪也不对任何决策负责据此操作风险自担。祝使用顺利。【免费下载链接】investoolGolang实现财报分析、个股基本面检测、基本面选股、4433法则基金筛选与检测、基金持仓相似度、股票选基、基金经理筛选项目地址: https://gitcode.com/gh_mirrors/in/investool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考