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

FishStock

Preview

JSbiu

|
36 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.4 是持仓展示与操作入口一致性修订版。选择浮动盈亏或当日盈亏的收益率 / 金额排序后,持仓的编辑与删除入口仍然可用,仅上移 / 下移因排序会覆盖手动顺序而隐藏。港币持仓的平均成本和现价继续使用 HKD,只有市值、成本金额、盈亏金额与按币种小计按当前汇率折算为 CNY;Tree View 总计行同时显示所用汇率,默认 0.9 明确标记为占位值。

停牌状态在 Stock、Fund、Futures、Holdings、普通行情悬浮卡、持仓悬浮卡和状态栏之间统一优先显示,停牌期间不再把当日零变动展示成平盘,复牌后自动恢复开市、休市或过期状态。手动在 settings.json 写入越界汇率或残缺的 treeViewFields 时会安全回退,不再产生错误折算或空白描述行。

保存期间显示「保存中…」并暂时锁定草稿修改,防止重复写入或新输入被旧结果覆盖;失败保留草稿与调仓输入,显示实际原因并允许重试。数量或成本无效时明确显示待填写行数、首个错误字段,可点击「定位填写」直接修改。管理页有未保存更改时编辑器页签同步显示标记,并支持 Ctrl+S 调用与「保存全部」相同的校验和重复提交保护。

重复打开管理页保留勾选、调仓输入和滚动位置;添加、编辑命令只聚焦目标输入。搜索框清空、更换关键词,以及保存或放弃草稿后,旧搜索结果与旧错误不会回填。

期货搜索正确区分 RB0 主连与 RB2610、RB2710 等月份合约,十月合约不再被误标为主连或触发代码格式错误;是否展示仍取决于行情有效性。

行情刷新继续保持当前汇率;修改折算设置即时同步 Tree View、持仓悬浮卡与管理页,并保留未保存草稿、勾选、输入焦点和调仓输入。关闭折算时,混币持仓不合并总计,金额排序暂用默认顺序;恢复有效汇率后继续应用原排序选择。

持仓保持统一列表,港股条目带「港」角标。港币平均成本与现价保持 HKD,港币金额默认按 0.9 折算为人民币,可在管理页表格工具栏修改或点击「默认」恢复;Tree View 列表末尾显示总计与所用汇率,管理页保留按币种小计。排序提供浮动盈亏与今日盈亏的收益率 / 金额四个维度,再次选择同一项切换升降序;默认顺序下可跨币种上移 / 下移并保存手动顺序。描述行的数量、市值、浮动盈亏、当日盈亏默认全开,可按需勾选;未勾选的字段仍可在悬浮卡和管理页查看。管理页继续支持连续搜索、多选添加、从自选股批量添加、表格内修改与统一保存。

收盘后 60 秒内继续按调度间隔刷新,使收盘价落定;停牌条目的状态优先显示「停牌」,持仓当日盈亏为 —。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
修改或批量删除持仓 在管理器表格中修改多行,或勾选多条后删除,最后统一保存
保存全部持仓 管理页「保存全部」,或按 Ctrl+S
记录买入或卖出 管理器表格中该行的“调仓”按钮,填变动数量与成交价后应用
开关港币折算、修改汇率或恢复默认 管理页表格工具栏的「港币折算」、汇率输入框与「默认」按钮
删除、移动、调整顺序 右键具体条目
添加、重命名、删除分组 视图标题栏或分组右键菜单
全部展开或全部折叠 对应视图标题栏
排序和涨跌筛选 对应视图标题栏的排序按钮
手动刷新 对应视图标题栏的刷新按钮
选择状态栏轮播分组 任一自选视图标题栏的 ... 菜单,或命令面板
切换状态栏展示 任一视图标题栏的 ... 菜单,选择行情轮播或持仓盈亏
清空或恢复默认 对应视图标题栏的 ... 菜单,执行前会确认
复制脱敏诊断信息 命令面板,或视图标题栏的 ... 菜单

股票搜索示例:美的集团、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 默认为空,不创建虚构持仓。升级扩展不会覆盖已有自选。

持仓浮动盈亏按“(现价 - 平均成本) × 数量”计算,收益率按“浮动盈亏 ÷ (平均成本 × 数量)”计算。Tree View、持仓悬浮卡与管理页按当前配置展示港币折算金额;平均成本、当前价格、持仓数量与原币种存储保持不变。单条百分比不受汇率影响,混币总计收益率可能因折算权重变化;具体汇总规则见下方「港币折算」。结果未包含费用、税费、分红或公司行动影响。closed 和 stale 行情仍可计算但会明确标注状态,error 或没有有效价格时不展示估算盈亏。

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

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

配置

配置 默认值 有效范围 说明
fishStock.refreshIntervalSeconds 60 秒 15–3600 秒 自动刷新间隔
fishStock.staleAfterSeconds 120 秒 30–86400 秒 交易中距最近一次成功获取超过该时间时标记为“刷新超时”
fishStock.statusBar.rotationSeconds 5 秒 3–60 秒 状态栏轮播间隔,不触发网络请求
fishStock.colorConvention china china / international 涨红跌绿 / 涨绿跌红
fishStock.holdings.treeViewFields 四项全开 任意 boolean 子集 控制 Holdings 描述行字段;缺失或无效字段回退默认值,至少保留一项
fishStock.holdings.hkdToCnyRate 0.9 0.1–2 或 null 1 港币对应的人民币数量。重置配置恢复 0.9;显式 null 关闭折算;单条百分比不受影响

港币折算

fishStock.holdings.hkdToCnyRate 表示 1 港币对应多少人民币,例如 0.8557 表示 1 HKD = 0.8557 CNY。默认 0.9 是占位近似值,请按实际汇率调整;合法数值范围为 0.1–2(含端点)。可通过以下入口修改:

  • 持仓管理页:勾选「港币折算」后输入汇率;取消勾选则按原币种显示。再次开启使用当前页面上次有效汇率,首次进入关闭状态时使用 0.9;点击「默认」恢复 0.9 并开启折算。
  • 设置界面:Ctrl+, 打开设置,搜索 hkdToCnyRate 并填入数值;使用「重置设置」恢复 0.9。
  • settings.json:Ctrl+Shift+P → Preferences: Open User Settings (JSON),写入 "fishStock.holdings.hkdToCnyRate": 0.8557。删除配置项恢复默认 0.9;关闭折算需显式写入 "fishStock.holdings.hkdToCnyRate": null。

配置修改即时生效,无需重开管理页或等待行情刷新;行情更新继续使用当前汇率。更新展示时保留未保存的数量与成本、勾选、输入焦点和调仓输入。

持仓与配置 Tree View 总计行 金额排序
有效汇率 港币折人民币后汇总,标明 CNY 与所用汇率 按折算后的同一币种金额比较
null,只有一种币种 按原币种汇总,标明 CNY 或 HKD 按该币种金额比较
null,人民币与港币混合 显示「未合并:未启用港币折算」,不显示混币合计金额或合计百分比 暂用默认顺序,保留已选维度与升降序;恢复有效汇率后继续应用

关闭折算后,持仓仍在统一列表中展示。管理页保留按币种小计;开启折算时港币小计明确标注折算为 CNY,关闭后使用原币种单位。状态栏的持仓盈亏继续显示原币种金额与币种标签。

汇率只换算市值、成本市值和盈亏金额;平均成本与当前价格始终使用原币种。单条持仓的收益率、当日涨跌比例与百分比排序不受汇率影响;总计收益率按合计浮动盈亏除以合计成本市值计算,混币持仓的权重随汇率变化,总计百分比也可能变化。调整汇率不会改写持仓记录,FishStock 不自动获取汇率。手动写入越界、非数字等无效汇率时,运行时安全回退到默认 0.9。

行情可用性

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

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

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

停牌是独立于四种状态的事实标记,并优先于 live、closed 和 stale 展示。普通行情悬浮卡、三个自选 Tree View、Holdings、状态栏及持仓管理页统一显示暂停图标和「停牌」;复牌后恢复底层行情状态。停牌期间不计算当日盈亏,也不把零变动显示成平盘。

浮窗同时显示“行情时间”和“最近获取”:前者来自行情源,可能因没有成交而不变化;后者表示 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