InvesTool 部署与配置实战指南:从本地跑通到生产环境一步到位 📅 2026/8/15 17:28:36 InvesTool 部署与配置实战指南从本地跑通到生产环境一步到位【免费下载链接】investoolGolang实现财报分析、个股基本面检测、基本面选股、4433法则基金筛选与检测、基金持仓相似度、股票选基、基金经理筛选项目地址: https://gitcode.com/gh_mirrors/in/investoolInvesTool 是一款用 Golang 实现的个人投资分析工具帮你自动完成财报分析、个股基本面检测、基本面选股、4433 法则基金筛选、基金持仓相似度对比、股票选基和基金经理筛选。简单说它把过去需要人工逐股翻财报的繁琐流程压缩成一条命令或一个网页操作。这篇文章我们不按环境准备→部署→配置的流水账来讲而是跟着真实的踩坑路径从为什么需要它一路走到稳稳跑在生产环境。先想清楚你到底要解决什么问题很多人用东方财富选股器筛出一批股票后面对的是几十上百只标的每只都要手工核对 ROE 是否逐年递增、EPS 是否达标、负债率是否健康、估值是否合理……这个工作量足够劝退任何长线投资者。InvesTool 的核心价值就是把筛选 检测自动化先用基本面条件筛出候选池再对每只股票按你设定的标准逐项检测最后把结果导出成 Excel、CSV、JSON 甚至二维码图片。基金端同样自动化用 4433 法则对全市场一万多只基金做每日检测1 分 50 秒左右跑完一轮。如果你只是想手动查一只股票命令行也能搞定。理解了这个定位后面的操作就都有意义了。 十分钟跑起来最小可行路径别急着看全部配置先把服务拉起来。获取源码并编译克隆仓库后直接编译生成可执行文件git clone https://gitcode.com/gh_mirrors/in/investool cd investool go build -o investool main.go⚠️ 注意项目依赖 Go 1.20 及以上版本见根目录go.mod编译前先用go version确认环境。启动 Web 服务编译成功后执行./investool webserver默认读取当前目录下的config.toml也可以用-c显式指定./investool webserver -c config.toml打开浏览器访问http://localhost:4869你会看到 InvesTool 的 Web 界面。注意默认端口是4869不是常见的 8080这是很多人第一次启动时找不到页面的原因。启动后系统会自动拉起定时任务数据同步首次运行需要联网拉取数据源信息耐心等一两分钟即可。️ 从踩坑到精通那些没人提前告诉你的细节跑起来只是开始以下是真实使用中高频踩坑点建议边读边对着config.toml验证。坑一端口和页面加载不出来服务默认监听:4869对应的配置在[server]段[server] addr :4869 mode debug pprof true metrics true如果端口被占用把addr改成:8888之类的空闲端口即可。mode建议生产环境改成release能明显降低调试开销。坑二筛选结果不稳定、请求被限频InvesTool 会高频请求东方财富、亿牛网、新浪财经等数据源[ratelimiter]段控制请求频率限制[ratelimiter] enable true type mem个人使用建议保持enable true用进程内存限频即可团队部署且有多实例时type可以换成redis.localhost需自行补充对应 redis 配置避免多实例绕过限频把数据源打爆。坑三日志刷屏、磁盘暴涨日志配置在[logging]段默认输出到 stdout[logging] level info format json output_paths [stdout]个人排查问题时把level调到debug看细节生产环境建议info或warn并把输出定向到文件。文件轮转规则在[logging.logrotate]段默认单文件 100MB、保留 10 份并压缩基本够用。坑四定时任务的时间不对[app.cronexp]控制各数据同步任务[app.cronexp] sync_global_vars 0 6 * * 1-5默认工作日早上 6 点同步全局变量。如果你希望开盘前就有最新数据可以自行调整 cron 表达式。基金相关任务默认注释掉需要时放开并配置执行时间。️ 按场景调优个人与团队的两套配置模板不同场景对配置的要求差异很大直接给两套亲测有效的模板。场景一个人本机自用[server] addr :4869 mode release pprof false metrics true [ratelimiter] enable true type mem [logging] level warn format json output_paths [stdout]取舍逻辑个人单机跑pprof用不上可以关掉日志级别调高减少干扰限频必须开否则高频请求容易被数据源封 IP。场景二小团队共享服务在个人模板基础上增加三处改动日志落到文件并用 logrotate 轮转便于多人排查问题开启 basic_auth防止服务暴露给无关人员默认账号密码是admin/admin务必修改见[basic_auth]段反向代理超时调大因为从中报发布结束开始满足筛选条件的公司会越来越多检测耗时也会逐渐增加README 原文提醒建议proxy_read_timeout设在 300s 以上。配置文件本身的分段设计很清晰config.toml 里有完整的注释说明改任何一项之前先读它。 可靠性保障自愈、反向代理与容灾Web 服务裸跑在终端里不是长久之计生产环境需要三层保障。用 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/%(program_name)s.stdout.log stderr_logfile/srv/investool/logs/%(program_name)s.stderr.log配置好supervisorctl reload后服务挂了会自动重启日志也统一管理。用 Nginx 做反向代理反向代理的作用是把外部请求转发给 InvesTool同时隐藏后端细节。参考 misc/configs/nginx.conf注意默认后端是 4869 端口upstream pink_lady_api { server 0.0.0.0:4869; keepalive 600; } server { listen 80; server_name example.com; location / { proxy_pass http://pink_lady_api; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 300s; proxy_read_timeout 300s; } }用 Docker 做环境隔离项目自带 Dockerfile基于 Alpine 构建对外暴露 4869、4870 两个端口4870 是动态修改日志级别的调试服务。构建运行docker build -t investool:latest . docker run -d -p 4869:4869 --name investool -v $(pwd)/config.toml:/srv/investool/config.toml investool:latestDocker 方式最大的好处是环境与宿主机隔离换机器部署时不存在依赖缺失问题。 一次完整的实战演示从选股到导出报告我们把上面所有知识串起来跑一条从零到一的完整链路。第一步检测单只股票用 checker 检测比亚迪./investool -l error checker -k 比亚迪系统会输出 ROE、EPS、营收、净利润、负债率、PEG、历史波动率等逐项检测结果并给出最终判定。下图是股票基本面检测的完整界面示例第二步按自定义条件批量筛选并导出以导出 Excel 为例同时自定义 ROE 和负债率门槛./investool -l error exportor -f ./stocks.xlsx --filter.min_roe10 --checker.max_debt_asset_ratio50导出类型由文件后缀自动决定支持xlsx、csv、json、png用all后缀可一次导出全部格式。Excel 会按行业、价格、历史波动率拆分到不同工作表PNG 则是股票代码图片方便导入东方财富 App 自选列表。第三步验证导出结果生成的stocks.xlsx里每只股票都带有完整的检测结论和各项指标明细。如果想复查某只被淘汰的股票为何未入选用 checker 单独检测它即可看到具体是哪一项不达标第四步进阶玩法用index子命令分析指数成分股如./investool index -c 000905 -s查看中证 500 成分股-i 000922求两个指数的成分股交集基金 4433 筛选、基金检测、基金经理筛选目前走 Web 界面操作启动服务后在基金相关页面即可使用。 常见错误速查表把高频问题整理成一张表遇到直接对号入座。现象原因解法浏览器打不开页面端口不是 8080或端口被占用访问http://localhost:4869或修改[server].addr编译报 Go 版本错误本机 Go 低于 1.20升级 Go 环境后再go build筛选数据为空数据源请求被限频或网络波动检查网络确认[ratelimiter].enable开启稍后重试日志无限增长未配置日志轮转设置[logging].output_paths为 logrotate 路径并核对[logging.logrotate]反向代理 504 超时筛选耗时长代理等待时间不足调大proxy_read_timeout至 300s 以上界面出现 401 未授权basic_auth 默认账号密码暴露修改[basic_auth]中的 username/password导出文件为空但无报错使用了--disable_check且筛选项过严放宽筛选条件或去掉--disable_check查看检测明细下一步把工具变成你的投资工作流到这里你已经有了一套能本地跑、能上生产的 InvesTool。建议下一步做三件事第一在 config.toml 里把筛选参数调成符合自己投资标准的数值第二跑一次exportor全流程导出把输出文件保存成固定目录形成每周复盘的习惯第三如果你用 Docker把构建和启动写进一个脚本实现一条命令部署。如果你还想深入研究数据是怎么拉取和解析的源码中的数据接口都封装在datacenter包下按数据源分了eastmoney、sina、qq等子目录读一遍能帮你理解为什么某些配置会影响筛选速度。最后必须提醒InvesTool 输出的所有数据与分析仅供参考不构成任何投资建议。程序只是辅助工具最终判断请结合你自己的研究和风险承受能力投资有风险决策需谨慎。祝大家配置顺利理性投资【免费下载链接】investoolGolang实现财报分析、个股基本面检测、基本面选股、4433法则基金筛选与检测、基金持仓相似度、股票选基、基金经理筛选项目地址: https://gitcode.com/gh_mirrors/in/investool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考