赛博大富翁 🎰
A-share market tool hidden in your editor. Perfect for... coding.
把 A 股行情藏进你的编辑器,摸鱼不被发现。
✨ 功能特性
📊 自选股管理
- 添加/移除自选股,支持按代码或名称搜索
- 支持指数(上证指数 / 深证成指 / 创业板指 / 沪深300 等),同号代码用市场前缀区分
- 自选股分组:新建 / 重命名 / 删除分组,右键「移动到分组」或用鼠标直接拖拽归类;
分组本身也能拖拽排序(或右键上移 / 下移);没建分组时界面与以前完全一致,
删除分组只是解散、组内股票退回「未分组」不会被删除
- 实时行情刷新,涨跌一目了然
- 自选股排序(按代码、名称、价格、涨跌幅)
- 状态栏同时显示多只自选股行情(默认 5 只,固定显示不轮换,可配置数量与展示哪些股票)
- 鼠标悬停状态栏中某一只股票,即显示该只的完整明细(涨跌 / 最高最低 / 今开昨收 / 成交量额)
📈 K线图 & 分时图
- 日K线图(支持 15/30/60/120 日周期切换)
- 分时图(完整显示 9:30-15:00 交易时段)
- 成交量柱状图
- 十字光标悬浮显示详细数据
- 浮动信息面板
🔥 热门股排行
- 涨幅榜 / 跌幅榜 / 成交额榜 / 主力净流入、净流出榜
- 一键加入自选股
📰 财经快讯
- 7×24 小时实时快讯
- 个股资讯 / 研报评级 / 财务数据
🔔 异动提醒
- 自选股默认按涨跌幅提醒(阈值取
cyberMonopoly.defaultAlertPercent,默认 5%)
- 可以按股票单独自定义或关闭,也支持按目标价提醒
- 分级冷却(3~30 分钟)+ 批量合并提示,同一批异动只弹一次、不连续轰炸
- 仅交易时段触发:北京时间 09:15–11:30、12:55–15:00
🤖 AI 助手
- 接入 OpenAI 兼容 API
- 智能分析个股行情
- 支持自定义 LLM 模型
🕵️ 老板键
Alt+Shift+B 一键切换隐蔽模式
- 降低界面饱和度,假装在写代码
- 可自定义饱和度参数
📦 安装
方式一:从 Marketplace 安装(推荐,可自动更新)
按 Ctrl+P,粘贴并回车:
ext install cyber-monopoly-dev.cyber-monopoly
方式二:从 VSIX 安装
code --install-extension cyber-monopoly-<版本>.vsix
⚠️ 从 VSIX 手动安装的扩展不会自动升级 —— 出了新版本需要自己重新安装。
想省事就用方式一。
🚀 快速上手
- 安装扩展后,侧边栏会出现「赛博大富翁」图标
- 点击图标,在自选股面板中点击 + 添加股票
- 输入股票代码(如
600519)或名称(如 茅台)搜索
- 点击股票查看 K 线图,右键查看资讯/研报/财务数据
- 按
Alt+Shift+B 随时切换隐蔽模式
📌 状态栏行情
编辑器左下角会固定显示多只自选股行情(默认 5 只)。显示内容是固定的,不会轮换。
改显示哪些股票:命令面板运行 「赛博大富翁: 选择状态栏显示的自选股...」
(多选;一个都不勾选 = 恢复自动模式,即取自选股前 N 只)
改显示数量:设置 cyberMonopoly.statusBarStockCount(1-10)
超出数量时:只显示前 N 只,其余不显示(悬停提示会告诉你还有多少只未显示)
鼠标悬停:把鼠标放到某一只上,只显示那一只的完整明细
(每只股票是独立的状态栏项,互不干扰),例如
[今日行情]sh000001
涨跌:1.19 百分比:+0.03%
最高:3811.81最低:3786.21
今开:3790.63 昨收:3800.86
成交量:2.72亿 成交额:3927.95亿
点击状态栏行情可打开行情概览面板
状态栏每 5 秒用最新行情刷新一次价格与涨跌幅,但不会更换展示的股票。
⌨️ 快捷键
| 快捷键 |
功能 |
Ctrl+Shift+Q |
查看行情概览 |
Ctrl+Shift+A |
打开 AI 助手 |
Alt+Shift+B |
老板键(切换隐蔽模式) |
Ctrl+Shift+R |
电台直播 |
F5 |
刷新行情(需先让「自选股」面板获得焦点) |
⚙️ 配置项
| 配置项 |
默认值 |
说明 |
cyberMonopoly.refreshInterval |
10 |
行情刷新间隔(秒) |
cyberMonopoly.enableStatusBar |
true |
是否显示状态栏行情 |
cyberMonopoly.statusBarStockCount |
5 |
状态栏同时显示的股票数量(1-10);固定显示前 N 只,超出部分不显示 |
cyberMonopoly.enableAlert |
true |
是否启用价格异动提醒 |
cyberMonopoly.defaultAlertPercent |
5 |
涨跌幅异动提醒阈值(%) |
cyberMonopoly.llmBaseUrl |
"" |
LLM API Base URL(OpenAI 兼容),作用域固定为 machine |
cyberMonopoly.llmModel |
gpt-3.5-turbo |
LLM 模型名称 |
cyberMonopoly.colorTheme |
a-stock |
涨跌颜色主题(a-stock / us-stock / custom) |
cyberMonopoly.chartFontSize |
14 |
界面字体大小(px) |
cyberMonopoly.bossKeyEnabled |
true |
是否启用老板键 |
cyberMonopoly.bossKeySaturation |
10 |
老板键激活时饱和度(%) |
cyberMonopoly.llmApiKey |
"" |
(已废弃) 旧版明文 API Key,仅用于自动迁移到 SecretStorage |
状态栏「显示哪些股票」不是配置项,而是保存在扩展自己的状态里(由上面的命令设置)。
❓ 常见问题
升级后,新命令 / 新设置项没出现?
完全退出 VS Code 再重新打开(Developer: Reload Window 有时不够)。
VS Code 的「配置注册表」由 workbench 主进程维护。扩展更新后若只重载窗口,注册表里可能仍是
旧版本的清单,于是会出现「命令有了、但设置项说没注册」这种矛盾状态。右键菜单(比如分组的
「重命名 / 删除 / 上移 / 下移」)也注册在这份清单里,症状就是「分组节点右键啥也没有」。
这是 VS Code 自身的行为(官方在 microsoft/vscode#320255 中
处理过同一个报错),不是本扩展的缺陷。
状态栏看不到行情?
- 确认
cyberMonopoly.enableStatusBar 为 true(命令面板运行「切换状态栏行情」也可开关)
- 自选股为空时,状态栏只显示
♥ 赛博
- 非交易时段部分字段可能显示
--
状态栏怎么改显示哪几只、几只?
- 哪几只:命令面板 →「赛博大富翁: 选择状态栏显示的自选股...」
- 几只:设置
cyberMonopoly.statusBarStockCount(1-10)
- 状态栏是固定显示、不轮换;超出数量的股票不会出现,悬停可看到「另有 N 只未显示」
异动提醒不响?
- 确认
cyberMonopoly.enableAlert 为 true(默认为开启)
- 默认行为:开启后,自选股里每一只都会按
cyberMonopoly.defaultAlertPercent(默认 5%)提醒
- 想单独调整或关闭某一只:在自选股面板里右键该股票 → 「设置目标价提醒...」,
可选择三种操作
- 按涨跌幅提醒:输入自定义阈值;输入
0 表示只关闭这一只的涨跌幅提醒
- 按目标价提醒:输入目标价,价格到达附近即提醒
- 关闭这只股票的全部提醒
- 只在交易时段(北京时间 09:15–11:30、12:55–15:00)触发,周末与收盘后不会响
- 同一只股票按幅度有 3~30 分钟冷却,避免反复弹窗;同一批多只异动会合并成一条提示
提示:自选股列表里每只股票的悬停提示会显示它当前的提醒状态(🔔 异动提醒 那一行)。
怎么添加「上证指数」这类指数?
在「添加自选股」里搜 上证指数(或其它指数名称)即可,选中后会自动存成 sh000001。
也可以直接粘贴带市场前缀的代码:
| 代码 |
标的 |
sh000001 |
上证指数 |
sz399001 |
深证成指 |
sz399006 |
创业板指 |
sh000300 |
沪深300 |
sz000001 |
平安银行 |
为什么输入 000001 出来的是平安银行?
这个代码在沪市和深市都存在:sh000001 是上证指数,sz000001 是平安银行。
不加前缀时按数字前缀推断(000001 → 深市 → 平安银行),所以指数要带 sh 前缀。
从搜索结果里选择时会自动补前缀,不用手写。
自选股怎么分组?
- 在「自选股」视图标题栏点 新建分组(带加号的文件夹图标),输入分组名(最多 20 字)。
也可以在任意节点(根节点「自选股」、某个分组、「未分组」)上右键 → 新建分组
- 归类有三种方式:
- 拖拽:把股票直接拖到分组节点上;拖到「未分组」即可移出;
拖到组内某只股票上 = 「跟它同一组」;按住
Ctrl/Cmd 可多选后一起拖
- 右键股票 →「移动到分组...」 → 选目标分组
- 右键分组 →「添加自选股」 → 搜索添加的股票直接加入该分组
- 调整分组顺序:右键分组 →「上移 / 下移」,或直接把分组拖到另一个分组上(插到它之前)
几点说明:
- 空分组里只有一行「空分组 · 拖股票进来,或右键这一行添加」的提示,
这一行同样可以右键(重命名 / 删除 / 上移下移 / 添加自选股),所以空分组不会删不掉
- 「未分组」不是一个分组,而是所有没归组的股票所在的收纳位置:
不能重命名、也不需要删除;里面没有股票时会自动隐藏,有股票时自动出现
- 根节点「自选股 (N)」是所有股票的固定容器,不是分组,不可改名
- 删除分组只解散分组,组内股票会退回「未分组」,不会被删除
- 排序(涨跌幅 / 添加时间)在分组内同样生效,组内顺序跟随全局排序
- 分组只影响显示,状态栏、异动提醒仍然作用于全部自选股
老板键没反应?
确认 cyberMonopoly.bossKeyEnabled 为 true。快捷键是 Alt+Shift+B(不是 Ctrl+Shift+B)。
AI 助手提示未配置 API Key?
命令面板 →「赛博大富翁: 设置」,填入 Base URL / API Key / 模型后保存。
API Key 会加密存入 VS Code 的 SecretStorage,不会以明文写进 settings.json。
出于安全考虑,远程 Base URL 必须使用 https://(本地 localhost 允许 http)。
行情数据看起来不对 / 一直不更新?
- 数据来自公开行情接口(新浪 / 腾讯 / 东方财富),非交易时段部分字段为
0 或 --
- 上游限流或接口异常时,对应板块会显示「数据获取失败」占位,不会伪装成 0
- 港股的部分指标取自腾讯接口,与某些行情软件的口径可能存在差异
- 省流量:「行情」页只在它处于可见状态时才自动刷新(一次刷新要抓全市场数据)。
切走时会暂停,切回时立即刷新一次,因此不会看到离开期间的旧数据
🛠️ 开发
npm install
npm run compile # 编译
npm test # 单元测试(mocha,覆盖纯逻辑与关键回归)
npm run lint # ESLint
npm run package # 打包成 .vsix
发布到 Marketplace:
npx vsce publish --packagePath cyber-monopoly-<版本>.vsix --pat <你的 PAT>
📊 数据来源与免责声明
行情数据来自新浪财经、腾讯行情、东方财富的公开接口,无需 API Key。
数据可能存在延迟或误差,仅供学习与参考,不构成任何投资建议。据此操作,风险自负。
📄 License
MIT