在 Windows 上用绿色版 exe 装 go-stock 2026.10.21.1,双击就出界面,上证指数、涨跌停家数、融资融券余额和财联社电报一起刷新。
同时 data 目录里多出一个 431,063,272 字节的 stock.db-wal,主库 stock.db 只有 14,364,672 字节。
go-stock 2026.10.21.1 装完怎么开始看行情?
它用 Golang 加 Wails 写,整个程序只有一个 exe,不用装运行库也不用配数据库。下载下来放到 D 盘双击,界面十几秒就出来了,数据目录自动建在 exe 旁边。
go-stock-windows-amd64.exe -> 139,971,584 字节
双击后窗口标题:go-stock A股交易中 | 港股交易中 | 美股休市 开源项目,个人免费使用
界面时间戳:2026-10-21 11:14:14 星期三 第四季度
首屏的数据是实时拉的,指数横条会滚动,A 股、港股、美股按各自交易时段标状态。左边是分时与板块异动标记,中间是涨跌停家数比,右边是融资融券余额走势。
| 界面位置 | 实际显示 |
|---|---|
| 上证指数 | 3717.17 -0.49% |
| 深证成指 | 11750.06 -0.43% |
| 热度 | 41° |
| 总成交额 | 8813 亿 |
| 上涨 / 下跌 | 2476 / 2881 |
| 涨停 / 跌停 | 37 / 0 |
| 融资余额 / 融券余额 | 2.47 亿 / 9.53 亿 |
底部导航一共 9 个入口。行情相关的 4 个是首页、股票自选、市场行情和 K 线分析,往后依次是合约行情、复盘策略、研究中心、设置和关于。这些数据不用登录、不用注册、不用填 API key,装完就有。
stock.db-wal 为什么有 431 MB?
程序把 SQLite 的日志模式开成了 WAL,所有写入先落进 stock.db-wal,再定期合并回主库。问题在这个文件长得太快,而且不缩回去。
D:\wb_cache\lab\gostock\data 的目录
2026/10/21 11:20 14,364,672 stock.db
2026/10/21 11:16 622,592 stock.db-shm
2026/10/21 11:20 431,063,272 stock.db-wal
3 个文件 446,050,536 字节
启动时间是 11:13:46,第一次采样在 11:17:29,那时 WAL 已经是 431,063,272 字节。之后再采三次都是同一个值,没有继续涨,说明它停在了一个峰值上而不是一直追加。
| 指标 | 数值 | 算式 |
|---|---|---|
| 主库 stock.db | 14,364,672 字节 | — |
| WAL 文件 | 431,063,272 字节 | 431063272 ÷ 14364672 = 30.01 |
| 自动 checkpoint 阈值 | 4,096,000 字节 | 1000 × 4096 = 4096000 |
| WAL 是阈值的几倍 | 105.24 倍 | 431063272 ÷ 4096000 = 105.24 |
SQLite 的 wal_autocheckpoint 设的是 1000 页,按 4096 字节一页算就是 4,096,000 字节触发一次合并。实际文件是它的 105.24 倍,说明合并被卡住了,很可能有读事务一直持着旧快照,让 WAL 里的页回收不掉。
这些页不是新数据。把 db、wal、shm 三个文件复制一份再打开,WAL 会合并进主库并截成 0 字节,主库从 14,364,672 变成 14,258,176 字节。431 MB 的日志里真正的新增只有这么点。
复制后打开前:stock.db = 13,983,744 stock.db-wal = 431,063,272
复制后打开后:stock.db = 14,258,176 stock.db-wal = 0
go-stock 的 stock.db 里到底存了什么?
51 张表,既有 A 股、港股、美股的基础信息,也有电报、资金流和龙虎榜。
表数量: 51
行数最多的 8 张表:
28547 stock_base_info_us
17306 tushare_stock_basic
5503 all_stock_info
4855 stock_base_info_hk
3096 concept_fund_flow
768 bk_fund_flow
545 stock_change_history
55 telegraph_tags
美股基础信息 28547 行是最多的,比 A 股全表 5503 行多出 5 倍,因为美股把 ETF 和场外标的也算了进去。电报标签 55 行、电报正文 41 行,和界面上「财联社电报」那一栏对得上。
| 表 | 行数 | 用途 |
|---|---|---|
| stock_base_info_us | 28547 | 美股标的 |
| tushare_stock_basic | 17306 | Tushare 股票基础信息 |
| all_stock_info | 5503 | A 股全表 |
| stock_base_info_hk | 4855 | 港股标的 |
| concept_fund_flow | 3096 | 概念资金流 |
| bk_fund_flow | 768 | 板块资金流 |
| stock_change_history | 545 | 异动记录 |
| telegraph_list | 41 | 电报正文 |
写库的节奏由 cron_tasks 表控制,首次启动就写进 9 条任务。全球指数缓存每 5 分钟一次,异动数据每分钟一次,剩下的按工作日定时跑复盘和回测。
全球指数缓存 0 0/5 * * * *
异动数据保存 0 */1 * * * *
每日复盘 0 0 18 * * 1-5
盘前策略 0 0 9 * * 1-5
推荐回测(3日) 0 30 18 * * 1-5
推荐回测(5日) 0 40 18 * * 1-5
推荐回测(10日) 0 50 18 * * 1-5
推荐回测(20日) 0 0 19 * * 1-5
推荐回测(30日) 0 10 19 * * 1-5
一分钟一次的异动保存解释了 WAL 为什么长得快:盘中每分钟往同一批页里写一次,页版本不断堆积,checkpoint 一被卡住就会滚到几百 MB。
settings 表是另一处能看出功能边界的地方,88 个字段按前缀就能分出四块。
| 字段分组 | 字段数 | 例子 |
|---|---|---|
| okx_ 前缀 | 34 | okx_api_key、okx_signal_trade_usdt |
| feishu_ 前缀 | 12 | feishu_robot、feishu_app_secret |
| 系统字段 | 4 | id、created_at、updated_at、deleted_at |
| 其余 | 38 | tushare_token、http_proxy、browser_path |
| 合计 | 88 | 34 + 12 + 4 + 38 = 88 |
34 个 OKX 字段占了三成多,说明合约交易这条线做得比股票推送还细:杠杆、止盈止损、风控上限、每日最大单数都单独占字段。飞书那 12 个字段对应机器人推送,钉钉只留了开关和机器人地址。
报 lookup www.gov.cn: no such host 是什么原因?
界面上没报错,错误只落在 logs/error.log 里一行。抓的是政策新闻里的部门列表,DNS 解析失败。
2026-10-21 11:16:31.599 [ERROR] [data/policy_news_api.go:155]
GetGovDepartments 获取部门列表失败:
Get "https://www.gov.cn/home/2023-03/29/content_5748953.htm":
dial tcp: lookup www.gov.cn: no such host
这条不影响行情,只是政策板块少一块数据。真正值得注意的是它抓数据的方式:日志里 683 行有 611 行是同一句「检测到 Edge 浏览器」。
日志行数: 683
检测到 Edge 浏览器: 611
611 ÷ 683 = 0.8945(即 89.45%)
2026-10-21 11:15:53.001 [INFO] [data/stock_data_api_windows.go:76]
检测到 Edge 浏览器:C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
它不是纯 HTTP 接口拼出来的行情,很多字段靠驱动系统里的 Edge 打开页面再解析。机器上没装 Edge 会怎样,没有验证。
go-stock 的 AI 功能装完能用吗?
不能直接用。AI 配置表和提示词模板表都是空的,88 个设置字段里也没有任何默认模型。
settings 字段数: 88
cron_tasks: 9
ai_config: 0
prompt_templates: 0
88 个设置字段里,和 AI 有关的只有几个 model id 的引用,比如 feishu_bot_ai_config_id、long_term_memory_ai_config_id、profile_learn_ai_config_id,都指向 ai_config 表里的行。表是空的,这些 id 就都是空值。
| 表 | 行数 | 含义 |
|---|---|---|
| ai_config | 0 | 模型配置,空的 |
| prompt_templates | 0 | 提示词模板,空的 |
| settings | 0 | 首次运行不写默认值 |
| cron_tasks | 9 | 定时任务,已初始化 |
也就是说开箱只有行情和资讯,AI 选股、AI 分析、飞书机器人这些要自己在设置里填模型地址和 key。支持 DeepSeek、Ollama、LM Studio 这类 OpenAI 兼容接口,配置项里还有独立的正反向代理字段。
go-stock 在什么条件下会失败?
三种情况来自这次实际碰到的现象。
| 触发条件 | 现象(报错原文) | 对应步骤 |
|---|---|---|
| DNS 解析不了 gov.cn | lookup www.gov.cn: no such host | 启动后第一次抓政策新闻 |
| 没配 ai_config 就点 AI 分析 | ai_config 表 0 行,没有可用模型 | 打开 AI 相关入口 |
| 盯着 data 目录看体积 | stock.db-wal 涨到 431,063,272 字节 | 运行 4 分钟后采样 |
只在 Windows、单 exe 绿色版、盘中时段测过,没在收盘后和节假日跑过。
- 未验证:AI 选股的实际效果。ai_config 表是空的,没有配模型,一条推荐都没生成。
- 未验证:OKX 合约交易。settings 里有一批 okx_ 开头的字段,需要填真实 API key,没有碰。
- 未验证:钉钉和飞书推送。配置项在,但没建机器人。
- 未验证:WAL 会不会一直涨到占满磁盘。只观察到 431,063,272 字节后停住,没有跑到收盘。
如果你用的是 macOS 或 Linux 包,本文关于 data 目录和 WAL 的结论不能照搬,那两条路径没有测。











