我做了一个 JetBrains 插件,在 IDE 里悄悄看 A股/基金/期货行情(附 AI 分析)

写代码的间隙想瞄一眼自选股,又不想切屏、不想开网页被同事看到大红大绿的 K 线?我用 Kotlin/Swing 撸了一个原生 JetBrains 插件 StockLite,把股票、基金、期货、全球指数行情直接塞进了 IDE 侧边栏,还接入了 DeepSeek 做 AI 深度分析。本文介绍功能、技术实现和踩过的坑。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/01cb10aabb844b8db477e6604a53db0a.png

一、为什么要做这个插件

作为一个既写代码又炒股(被套)的程序员,我的痛点很具体:

  • 打开东方财富/同花顺网页看盘,切屏动作太大,而且满屏红绿非常显眼;
  • 手机看盘要掏手机,更明显;
  • 市面上一些 IDE 看盘插件要么只支持股票不支持基金/期货,要么数据源挂了没人修,要么 UI 停留在上个时代。

所以干脆自己写一个,要求是:

  1. 原生集成:JetBrains Tool Window,跟 IDE 主题自动适配,亮色暗色都不违和;
  2. 全品种:A股、港股、美股、场内外基金、国内/国际期货、18 个全球指数;
  3. 低调:默认只显示名称/价格/涨跌幅,支持自定义别名(把"贵州茅台"改名叫"项目A"你懂的);
  4. 免费数据源:新浪、腾讯、天天基金、Yahoo Finance,不需要任何付费 API。

二、功能一览

1. 四大行情面板

面板 数据源 刷新频率
股票(A股/港股/美股) 新浪 / 腾讯 / Yahoo Finance 5 秒(可配置 3~60s)
基金(含 QDII) 天天基金 fundgz + F10 30 秒(可配置)
期货(国内/国际) 新浪期货接口 5 秒
全球指数(18 个) Yahoo Finance / 新浪 5 秒
  • 持仓管理:成本价、持仓数量、市值、浮动盈亏、盈亏比例,红涨绿跌着色(也支持绿涨红跌,懂的都懂);
  • 分组管理:自定义分组 + "全部 / 我的持仓"虚拟分组;
  • 搜索添加:输入名称或代码即可搜索,支持 A股、5 位港股代码、美股 ticker;
  • 右键菜单:编辑、删除、到价提醒、复制代码、浏览器打开、改名;
  • 到价提醒:设置目标价 + 上穿/下穿方向,触发后弹 IDE 气泡通知,触发一次自动失效;
  • 数据导入导出:JSON 一键备份/恢复,换电脑无痛迁移。

在这里插入图片描述

2. 内嵌走势图:点击涨跌幅,面板底部直接展开

点击任意标的的涨跌幅列,面板底部展开一块 260px 高的图表区,支持 日内 / 日K / 周K / 月K 四档切换:

  • 日内是分时折线图,Y 轴显示相对昨收的涨跌幅 %,0% 处画虚线基准;
  • 日K/周K/月K 是真实 OHLC 蜡烛图(涨红跌绿),覆盖股票、指数、期货;
  • 数据源没有真实开高低收时自动回退折线图,绝不用收盘价伪造 K 线;
  • 鼠标悬停 Tooltip 显示开/高/低/收和相对上一根 K 线的涨跌幅。

图表基于 TradingView 开源的 lightweight-charts,通过 JCEF(JBCefBrowser)嵌入,复用同一个浏览器实例避免重复创建开销。

在这里插入图片描述

3. A股大盘概览 + 盘后多空信号

全球指数面板底部有一块"大盘仪表盘":

  • 涨跌家数(沪深 + 北交所)、涨停/跌停家数;
  • 两市成交额、大/中/小盘代理指数(沪深300/中证500/中证1000);
  • 领涨/领跌板块 TOP6主力资金净流入;
  • 股指期货多空持仓摘要:汇总中信期货及前 20 名主力机构在 IH/IF/IC/IM 四大品种全部合约月份的净持仓变化,悬浮查看明细;
  • 盘后多空信号:收盘后综合 A50/纳指期货、股指期货持仓、主力资金、大盘宽度,给出 -100~100 的启发式倾向评分(每个因子的依据都能悬浮查看,不是玄学黑盒)。

在这里插入图片描述

4. AI 深度分析(DeepSeek)

在任意股票/基金/期货/指数上右键 → AI 深度分析,打开多轮对话面板:

  • 内置 5 种专业 System Prompt 一键切换:宏观 / 技术 / 基本面 / 量化 / 风险分析;
  • 自动注入当前实时行情作为上下文;
  • 支持 Tavily 联网搜索,AI 可以自己去查最新公告和新闻(Tavily 免费额度每月 1000 次);
  • 支持 deepseek-reasoner 深度推理模式;
  • 回复用 HTML 富文本渲染 Markdown,跟随 IDE 主题配色;
  • 分析过程实时显示进度:🔍 正在搜索:xxx 2026年最新公告

只需要一个 DeepSeek API Key(Settings → Tools → StockLite → AI 分析),按量计费非常便宜。

在这里插入图片描述

三、技术实现:几个值得聊的点

插件用 纯 Kotlin + Swing 实现,没有引入任何重量级 UI 框架,适配所有 JetBrains IDE(2024.1+):IDEA、WebStorm、PyCharm、GoLand、Rider……

src/main/kotlin/com/stocklite/plugin/
├── StockliteToolWindowFactory.kt   # Tool Window 入口
├── state/        # 数据模型 + XML 持久化
├── service/      # 行情/搜索 HTTP 调用、K线数据
├── util/         # HTTP 工具(GBK 解码)、开市时间判断
└── ui/           # 四个面板 + JCEF 图表 + 各种对话框

1. 免费数据源的整合与踩坑

免费行情接口的水很深,分享几个实战踩坑:

  • 新浪 A股接口返回 GBK 编码,直接按 UTF-8 读会乱码,需要手动指定 Charset.forName("GBK") 解码;
  • Yahoo 的 v7/finance/quote 接口悄悄加了鉴权,返回 401,导致节假日休市判断失效。解决方案是改用无需鉴权的 v8/finance/chart 接口自带的 currentTradingPeriod 字段判断当日是否为真实交易日,并按市场缓存 30 分钟;
  • 韩国 KOSPI 的 Yahoo 分钟线在实际收盘前 30 分钟就截断了,直接取"最后一个数据点"当收盘价,涨跌幅能偏差 1 个百分点以上。修复方式是校验数据点时间是否接近该市场官方收盘时间,不通过就回退到 Yahoo 官方的 previousClose 字段;
  • 东方财富涨跌停接口的 date 参数不能为空,否则返回 rc:102 无数据——这种坑只能靠抓包对比才能发现;
  • QDII 基金的估值和净值来自两个接口,更新时间不同步,会出现数据交替闪烁。最终方案是统一双源流程:按净值日期比较,永远取较新的那份。

2. 请求频率与缓存策略

行情插件最容易犯的错误是无脑轮询把免费接口打挂。StockLite 做了几层防护:

  • 股票/基金/全球指数三套刷新间隔独立可配;
  • 面板隐藏时暂停刷新(Tool Window 生命周期监听),不看盘就不发请求;
  • 仅 Yahoo 提供数据的指数加 60 秒本地缓存,避免每次切换面板都重新请求;
  • 遇到 HTTP 429 自动退避(最长 60 秒),然后逐步恢复;
  • 大盘概览各子项独立缓存 + 磁盘持久化快照兜底:收盘后或 IDE 重启后继续显示最后一次成功获取的数据,而不是一排"–",超过 3 天没有新数据才隐藏。

3. Swing 表格的体验细节

  • 价格闪烁动画:行情更新时价格变化的单元格短暂闪烁 350ms(涨闪红/跌闪青),用继承 QuoteRendererFlashRenderer 实现;
  • 列宽记忆:拖动列宽后自动持久化,重启恢复;
  • 自动小数位:价格根据量级自动显示 2/3/4 位小数,兼容 ETF 的三位数报价;
  • 中英文界面切换:Settings 里一键切换。

四、安装方式

方式一:Marketplace 安装(推荐)

Settings → Plugins → Marketplace → 搜索 StockLite → Install → 重启 IDE。

五、常见问题

Q:数据是实时的吗?
A:沪深 A股、港股为实时(新浪/腾讯直连);美股和其他海外指数约有 15 分钟延迟(免费接口限制),面板上有常驻提示条明确标注,AI 分析上下文中也会注明。

Q:需要付费吗?
A:插件完全免费,行情数据全部来自公开免费接口。AI 分析功能需要自备 DeepSeek API Key(可选,不配置不影响其他功能)。

Q:支持哪些 IDE?
A:所有 JetBrains 系 IDE 2024.1+:IDEA、WebStorm、PyCharm、GoLand、Rider、CLion、PhpStorm 等。

Q:会不会影响 IDE 性能?
A:面板隐藏时自动暂停所有刷新;图表复用单个 JCEF 实例;网络请求全部在后台线程。日常使用无感。

六、写在最后

这个插件从 v1.0 迭代到 v1.7,加了 40+ 个功能点,基本覆盖了我自己看盘的全部需求。如果你也是"上班摸鱼看盘党",欢迎试用:

觉得有用的话,求一个 Marketplace 五星好评 ⭐,有功能建议或 Bug 欢迎在评论区留言,我会持续迭代。

免责声明:本插件仅提供行情数据展示与工具功能,盘后多空信号为启发式评分、AI 分析为模型生成内容,均不构成任何投资建议。股市有风险,入市需谨慎。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐