Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>FishStockNew to Visual Studio Code? Get it now.
FishStock

FishStock

Preview

JSbiu

|
18 installs
| (0) | Free
轻量、安静、本地优先的股票、ETF、期货与持仓行情插件
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

FishStock 图标

FishStock

FishStock 是一个轻量、安静、本地优先的 VS Code 行情扩展。在不离开编辑器的情况下,用原生侧边栏快速查看少量股票、指数、ETF、国内商品期货和本地持仓收益。

0.8.0 是持仓统一展示版:不再按币种分成「人民币持仓 / 港币持仓」两组,所有持仓合并为一列,排序与手动上移 / 下移都跨币种生效;港币金额按可配置的汇率(默认 0.9,可在持仓管理页随时调整或一键恢复)折算为人民币,列表末尾给出一行总计。港股条目挂「港」角标以便与 A 股区分。修正了悬浮窗在停牌时仍显示「开市」的问题(Tree View 与悬浮卡口径现已一致),并为其加上状态图标与分段说明。收盘后 60 秒内仍会刷新一次,使最终收盘价落定;Tree View 描述行的展示字段可勾选(默认数量、市值、浮动盈亏、当日盈亏四项全开),未勾选的字段仍可在悬浮面板与编辑器管理器查看;排序提供浮动盈亏与今日盈亏的收益率 / 金额共四个维度,再次选择同一项即可切换升降序;默认顺序下可对持仓条目右键上移 / 下移,手动顺序持久化保存;停牌持仓显示「停牌」而不是「今日 ±0」。编辑器区域的可视化持仓管理器继续支持连续搜索、多选添加、从自选股批量导入、表格内修改多只持仓并统一保存,表格底部保留按币种的小计行;Tree View 继续用于快速查看市值、浮动盈亏、当日盈亏和收益状态。FishStock 不要求账户,不上传自选或持仓数据,不提供投资建议;行情来自第三方公开网页端点,可能受到地区、网络和访问策略影响,与券商对账可能存在差异,请以券商为准。

主要特点

  • 原生 Stock、Fund、Futures 与 Holdings 同级 Tree View;自选保持“分组 → 条目”,持仓按人民币与港币分组。
  • 股票支持 A 股、港股、常见市场指数、科创板和北交所新旧代码。
  • Fund 当前支持沪深交易所 ETF,可按名称、拼音简称或代码搜索,例如“电网设备ETF”或 159326。
  • Futures 支持已收录交易时段的国内商品期货主连和当前有效月份合约,并按品种区分夜盘收盘时间。
  • 一个安静的状态栏项目;默认轮播“名称 + 现价 + 涨跌幅”,也可切换为持仓浮动盈亏轮播。
  • 持仓数据只保存在本机;编辑器管理器支持批量添加、修改和删除,收益计算复用 Stock/Fund 行情,不增加独立行情请求链路。
  • 支持分组、排序筛选、全部展开、手动与自动刷新、清空和恢复默认。
  • 浮窗展示价格、涨跌、成交及适用品种的更多字段。
  • 自选与持仓数据保存在当前 VS Code Profile,本扩展没有账户、遥测或自有服务器。
  • 可主动复制脱敏诊断信息,帮助反馈问题,不会自动上传日志。

快速开始

  1. 从 VS Code 扩展市场安装 FishStock。
  2. 点击 Activity Bar 中的 FishStock 图标。
  3. 在 Stock、Fund 或 Futures 标题栏点击 + 添加自选;在 Holdings 标题栏打开持仓管理器,连续添加标的并统一填写、保存数量与平均成本。
  4. 将鼠标悬停在条目上查看详情,点击条目可在浏览器打开外部行情页面。
操作 入口
添加股票或指数 Stock 标题栏或目标分组的 +
添加 ETF Fund 标题栏或目标分组的 +
添加期货 Futures 标题栏或目标分组的 +
管理持仓 Holdings 标题栏的管理按钮,或命令面板执行 FishStock: 管理持仓
批量添加持仓 管理器中连续搜索、多选结果,支持 A 股、港股和境内交易所 ETF
修改或批量删除持仓 在管理器表格中修改多行,或勾选多条后删除,最后统一保存
记录买入或卖出 管理器表格中该行的“调仓”按钮,填变动数量与成交价后应用
删除、移动、调整顺序 右键具体条目
添加、重命名、删除分组 视图标题栏或分组右键菜单
全部展开或全部折叠 对应视图标题栏
排序和涨跌筛选 对应视图标题栏的排序按钮
手动刷新 对应视图标题栏的刷新按钮
选择状态栏轮播分组 任一自选视图标题栏的 ... 菜单,或命令面板
切换状态栏展示 任一视图标题栏的 ... 菜单,选择行情轮播或持仓盈亏
清空或恢复默认 对应视图标题栏的 ... 菜单,执行前会确认
复制脱敏诊断信息 命令面板,或视图标题栏的 ... 菜单

股票搜索示例:美的集团、mdjt、000333。ETF 搜索示例:电网设备ETF、dwsbetf、159326。期货搜索示例:沪金、AU0、AL2608。搜索结果会先预览,只有确认后才写入自选。

支持范围

品类 当前支持 暂不支持
Stock A 股、港股、A 股与港股常见指数 美股和历史走势
Fund 沪深交易所 ETF 场外基金、ETF 联接基金、LOF、港股 ETF
Futures 已收录交易时段的国内商品期货主连和有效月份合约 金融期货、期权、外盘期货、时段尚未收录的新品种
Holdings A 股、港股、沪深交易所 ETF 的数量、平均成本、市值、浮动盈亏与收益率 期货持仓、交易流水、已实现收益、费用税费、分红、自动汇率获取、账户与资产曲线

首次创建本地数据时,Stock 提供少量股票、指数和银行示例,Fund 提供沪深300ETF示例,Futures 提供沪金、白银、铜、沪铝和锡主连示例;Holdings 默认为空,不创建虚构持仓。升级扩展不会覆盖已有自选。

持仓浮动盈亏按“(现价 - 平均成本) × 数量”计算,收益率按“浮动盈亏 ÷ (平均成本 × 数量)”计算。人民币和港币分别汇总;未配置汇率时按原币种展示,配置 fishStock.holdings.hkdToCnyRate 后仅将港币金额折算为人民币展示,百分比与原币种存储不变;结果未包含费用、税费、分红或公司行动影响。closed 和 stale 行情仍可计算但会明确标注状态,error 或没有有效价格时不展示估算盈亏。

调仓按移动加权平均成本计算:加仓时平均成本为“(旧数量 × 旧成本 + 买入数量 × 成交价) ÷ 新数量”,减仓只减少数量、平均成本保持不变。全部卖出后该持仓在保存时移除。调仓只修改内存草稿,与数量、成本的修改一起在点击“保存全部”后统一写入。本次已实现盈亏只在调仓预览和提示中显示,不记录到本机,也不参与持仓汇总。

持仓管理器先在内存中维护草稿,点击“保存全部”后一次性校验和写入;任意一行的数量或成本无效时不会保存任何一行。关闭含未保存更改的管理器时,可选择保存、继续编辑或放弃。管理页面不直接访问网络或本地存储,搜索、行情和保存均由扩展进程处理。

配置

配置 默认值 有效范围 说明
fishStock.refreshIntervalSeconds 60 秒 15–3600 秒 自动刷新间隔
fishStock.staleAfterSeconds 120 秒 30–86400 秒 交易中距最近一次成功获取超过该时间时标记为“刷新超时”
fishStock.statusBar.rotationSeconds 5 秒 3–60 秒 状态栏轮播间隔,不触发网络请求
fishStock.colorConvention china china / international 涨红跌绿 / 涨绿跌红
fishStock.holdings.hkdToCnyRate 留空 0.1–2 港币折算人民币的汇率(1 港币 = ? 人民币)。留空表示不折算,港币持仓按原币种显示;只作用于金额,百分比不变

港币折算

港股与港币计价 ETF 的金额默认按港币显示。若希望它们与人民币持仓放在一起读,配置 fishStock.holdings.hkdToCnyRate(1 港币可兑换的人民币数量,如 0.8557):

  • 设置界面:Ctrl+, 打开设置,搜索 hkdToCnyRate,在 FishStock › Holdings: Hkd To Cny Rate 中填入数值;
  • 或编辑 settings.json:Ctrl+Shift+P → Preferences: Open User Settings (JSON),加入 "fishStock.holdings.hkdToCnyRate": 0.8557。

保存即生效,无需重启。留空即恢复原币种显示,行为与未配置时完全一致。折算只作用于市值与盈亏金额,收益率与当日百分比不受影响(相对值,汇率在分子分母里约掉);持仓数据始终按原币种保存,调整汇率不会改写已有记录。该数值是「1 港币 = ? 人民币」,填反会导致金额被放大。

行情可用性

Stock、Fund 使用腾讯公开网页行情端点,Futures 使用新浪公开网页行情端点。Holdings 复用 Stock 与 Fund 的行情缓存,不接入额外行情端点。这些端点没有面向 FishStock 的正式接口契约,字段、访问策略和可用地区可能变化。

行情状态统一为以下四种:

  • live(实时):当前处于交易时段,已取得当前交易日行情,且最近一次成功获取仍在过期阈值内。价格或行情时间没有变化不影响该状态;阈值内的一次刷新失败只显示警告。
  • closed(休市):当前处于午休、盘间休息、收盘、周末或节假日,仍展示最近有效行情。
  • stale(数据过期):交易中长时间没有成功获取、未取得当前或最近交易日行情、行情时间异常,或期货时段尚未收录;界面会进一步显示“刷新超时”“等待当日行情”“行情时间异常”或“时段未收录”。
  • error(暂不可用):没有可展示的有效行情。

浮窗同时显示“行情时间”和“最近获取”:前者来自行情源,可能因没有成交而不变化;后者表示 FishStock 最近一次成功取得该条目。交易中的过期阈值只作用于最近获取时间。单次请求失败会保留 live 缓存并给出警告,只有持续失败超过阈值才转为“刷新超时”;休市时不因网络失败把有效行情改成实时或暂不可用。

自动刷新按条目判断时段:A 股覆盖集合竞价、上午、午休、下午和收盘;港股覆盖开市前、早市、午休、午市、收市竞价与半日市;国内商品期货覆盖日盘三节、跨自然日夜盘和节假日前夜盘关闭。开盘、休息和收盘边界会立即更新展示,并对发生切换的条目补一次行情请求;常规轮询只请求正在交易的条目。

手动刷新不受交易时段、节假日或自动退避限制,会请求当前 View 的全部自选并提示“行情已刷新”“当前休市”或“部分期货交易时段未收录”。扩展激活时仍异步加载一次最近行情,不阻塞本地自选展示。

某个行情源返回 HTTP 403 后,对应模块的自动刷新会按 15 分钟、30 分钟、1 小时、2 小时、最长 6 小时递增退避,避免持续重复请求;手动刷新可立即重新探测。完整时段和兼容边界见行情源说明。

原生视图布局

Stock、Fund、Futures 与 Holdings 是可独立显示或隐藏的 VS Code 原生 View,首次布局提供 2:1:1:1 高度权重,并在全新工作区中默认展开。FishStock 不在 VS Code 启动时打开侧边栏,也不在用户展开某个 View 时联动其他 View。之后的折叠状态和 View 高度继续由 VS Code 保存,扩展不强制重设原生分隔位置。

如果重新展开的 View 占用了过多空间,请拖动分隔线;同时展开相邻 View 后双击分隔线,可以使用 VS Code 的原生均分行为。FishStock 不会在启动时强制聚焦或展开 View,以免抢占编辑器焦点并覆盖用户布局。

数据与隐私

自选分组、持仓数量、平均成本和状态栏展示方式保存在当前 VS Code Profile 的本机 globalState 中。FishStock 不读取工作区文件,也不会收集或上传遥测。为了完成搜索和行情,用户输入的搜索文本或证券代码会由本机直接发送给腾讯、新浪或北交所公开站点;持仓数量、平均成本、市值和盈亏不会发送给行情源,也不经过 FishStock 服务器。

完整说明见隐私说明。

问题反馈

遇到问题时,可以执行 FishStock: 复制运行诊断信息,再通过 GitHub Issues 提交。诊断报告不包含自选名称、证券代码、持仓数量、平均成本、盈亏、文件路径或工作区信息。刷新错误可在“查看 → 输出 → FishStock”中查看。

反馈前请阅读支持说明。

本地开发

要求 VS Code 1.90 或更高版本、Node.js 20 或更高版本以及 pnpm 11。

pnpm install
pnpm run check
pnpm run test:smoke

在 VS Code 中按 F5 启动 Extension Development Host。

生成稳定通道 VSIX:

pnpm run package:vsix

生成预发布通道 VSIX:

pnpm run package:vsix:pre-release

命令会执行 lint、单元与回归测试、真实 Extension Host 冒烟、版本和 Marketplace 元数据校验、包内容检查,并生成 fish-stock-<version>.vsix。

许可证与声明

FishStock 使用 MIT License。

本软件仅用于行情辅助展示,不提供投资建议。第三方行情可能延迟、不完整、不准确或不可用,任何投资决策及其结果均由用户自行承担。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft