分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

ErTasselli/OpenTerminal

金融

在本地运行一个键盘驱动的行情终端,查看美股、加密货币、宏观数据并记录小型投资组合。

2,144
380
TypeScript
MIT
创建于 3 个月前

OpenTerminal 是一个自托管的终端风格交易仪表盘,从免费公开接口抓取行情、图表、新闻、期权和宏观数据,不需要付费 API key 或注册。它适合希望在自己机器上搭建高密度、可定制行情工作台做研究与学习的个人用户,而不是用于下单交易。

功能范围

基于 widget 的工作区(可拖拽、缩放、增删)包含报价面板、支持 8 个时间周期与六种技术指标的图表、按标的或全局聚合的新闻、全美股票筛选器、板块热力图、期权链、加密货币看板、国债收益率与 VIX 宏观视图、经济与财报日历,以及记录买卖交易、计算平均成本和已实现/未实现盈亏的投资组合跟踪器。布局保存在本地,报价和指数大约每秒刷新一次。

⌘K 调出搜索面板查找股票、ETF 和加密货币;⌥1–⌥9 可添加 widget。

数据来源机制

每类数据都有一个主来源和自动回退链——例如报价先试 Nasdaq,再退到 Yahoo Finance,最后 Stooq;加密货币报价先 CoinGecko,再 Binance。带 stale-while-revalidate 的 TTL 缓存避免单个数据源故障导致界面空白,各数据源是 server/src/providers/ 下的独立模块,作者称替换或新增一个来源大约需要 30 分钟(数据来源)。

README 明确说明这些是公开、部分为逆向使用的接口,因此价格是延迟或参考性的,不足以用于实际成交(免责声明)。

运行要求与限制

  • 运行环境: 快速启动需要 Node.js 和 npm(npm install、npm run dev);也支持用 docker compose up --build 启动,投资组合的 SQLite 数据保存在命名 volume 中(快速开始)。
  • 可选 AI 助手: AI widget 需要 ANTHROPIC_API_KEY;不设置时其他功能照常工作,该 widget 显示为不可用。也可通过 ANTHROPIC_BASE_URL 和 ANTHROPIC_MODEL 指向兼容的其他端点(配置)。
  • 暴露默认值: API 默认绑定 127.0.0.1 且只接受本地 Web 来源。要对网络开放需显式设置 API_HOST、API_KEY 和 WEB_ORIGIN,项目本身不处理 HTTPS(安全默认值)。
  • 已知依赖通告: npm audit 报告 fast-xml-parser 的中危问题(有漏洞的构建路径未被使用)和 Next.js 内置 postcss 的高危问题,后者需大版本升级才能解决;两者都被记录但未强制修复(已知限制)。
  • 许可与用途: 采用 MIT 许可,但 README 将项目限定为个人和教育用途,并警告勿用于真实投资决策;免费数据源通常只授权个人/研究用途并禁止商业再分发(免责声明)。

这是需要自行运行的源代码,不会替你托管或再分发数据。

本文由 AI 根据项目 README 生成,更新于 2026年10月30日,以项目官方文档为准。