系统审计

它能做什么,又做得多快。

本页所列的一切都包含在 @tradecanvas/chart 1.31.0 中。帧时间是在一台集成显卡(Intel UHD)的笔记本电脑上用 Chrome 测得的;在仓库中运行 node scripts/bench-render.mjs,即可在你自己的机器上跑同样的场景。

数字一览

图表类型
18
内置指标
111
画线工具
69
组件语言
30
样式键
101
组件功能开关
112
第三方运行时依赖
0
单元测试
3,000+

帧时间

平移时绘制一帧所需的时间。16.7 ms 即每秒 60 帧。

图表像素比Canvas 2DWebGLCanvas 2D / WebGL
1600×900,500 根K线 + 4 个指标 · 2×227.4 ms19.6 ms
1600×900,缩小显示 200,000 根K线 + 4 个指标 · 2×234.5 ms20.2 ms
1600×900,缩小显示 1,000,000 根K线 + 4 个指标 · 2×234.5 ms16.7 ms
1600×900,深度热力图,240 个快照 × 80 档 · 2×225.5 ms16.8 ms
六个图表,各有 500 根K线和 2 个指标 · 2×223.5 ms17.2 ms
2560×1400,2,000 根K线 + 4 个指标 · 1×141.6 ms17.7 ms
2560×1400,2,000 根K线 + 4 个指标 · 1.5×1.570.8 ms17.6 ms
2560×1400,2,000 根K线 + 4 个指标 · 2×2114.5 ms29.1 ms

默认使用 Canvas 2D。renderer: 'webgl'(或 'auto')用 WebGL 2 绘制绘图区;没有 WebGL 2 或其上下文丢失时,回退到 Canvas 2D。

数据路径

在 100,000 根K线上带布林带、EMA、RSI 和 MACD 时处理一个实时 tick
~0.001 ms
在 100,000 根K线上完整重算这四个指标
~27 ms
一条 1,000,000 个可见点的折线,为一帧降采样
~2.6 ms
一次悬停重绘(十字光标、图例)
~0.2 ms
切换代码或周期时,超过此时长才显示加载遮罩
200 ms

下载体积

压缩并经 gzip 后的大小,包含其导入的全部内容。

Chart,无界面 API
176 KB
ChartWidget,完整界面
315 KB
WebGL 渲染器,首次使用时加载
18 KB

如何检验

  • 七个包共 3,000 多个单元测试,每个拉取请求都会在 CI 中运行。
  • WebGL 渲染器把K线画在与 Canvas 2D 相同的设备像素上;线条和填充只在少数抗锯齿边缘像素上有差异。
  • WebGL 渲染器已在 Chromium、Firefox 和 WebKit 中检验。没有 WebGL 2 或其上下文丢失时,图表会继续用 Canvas 2D 绘制。
  • 文档和智能体技能中的代码示例都会对照真实 API 进行类型检查。
  • 图表可由屏幕阅读器朗读,也能完全用键盘操作;组件在阿拉伯语、希伯来语和波斯语下从右到左显示。

功能

按领域筛选,或按名称或 API 搜索。

80 / 80
功能领域详情与 API
蜡烛图、美国线、折线、面积图、基准线、平均K线、空心蜡烛图图表类型candlestick, bar, line, area, baseline, heikinAshi, hollowCandle
Renko、新价线、Kagi、点数图、区间K线图表类型砖块大小或 ATR、突破所需的线数、按百分比或价格的反转幅度、每根K线的区间
成交量蜡烛图、等量图、HLC 面积图、阶梯线、带标记的折线、高低图图表类型共 18 种图表类型
隐藏主序列图表类型只保留指标和画线
仪表盘图表图表类型柱状图(分组、堆叠、横向)、环形图和饼图、散点图和气泡图、直方图、日历图、相关矩阵、板块地图、逆时钟曲线、迷你走势图、仪表图、热力图和矩形树图、瀑布图、深度图、权益曲线
Canvas 2D 或 WebGL 2渲染renderer: 'canvas' | 'webgl' | 'auto'、setRenderer、rendererChange 事件
缩小时每个像素列只画一段渲染每根K线不足一个像素时的指标线、通道带和柱状图
流畅平移一百万根K线渲染带四个指标,像素比为 2
在 GPU 上绘制深度热力图、成交量分布和市场轮廓渲染pushDepthSnapshot(book, time)
一个页面上的多个 WebGL 图表渲染最多 8 个(setMaxWebGLCharts);其余用 Canvas 2D 绘制;上下文恢复后切回 WebGL
任何屏幕缩放比例下都清晰渲染在 100%、125% 和 200% 下,K线、成交量和画线都对齐设备像素
无第三方运行时依赖渲染无需额外安装或审计任何东西
134 个内置指标指标六种枢轴点、MA Cross、与另一品种的相关性
价格来源指标open, high, low, hl2, hlc3, ohlc4, hlcc4
基于指标的指标指标例如 RSI 的移动平均,每个 tick 都会更新
一个副图中放多个指标,并可在副图间移动指标moveIndicatorToPane
同一指标添加多次指标EMA 20 和 EMA 50 并排显示
水平线与阈值指标RSI 30/70、CCI ±100,随布局一起保存
坐标轴上的最新值指标显示在价格轴和各副图的坐标轴上,颜色与线条一致
副图的折叠、最大化与重新排序指标随布局一起保存
指标模板指标输入参数、样式、水平线和副图一并保存、一并应用
每条线的样式与可见性指标隐藏的线不会拉伸坐标;setIndicatorDefaults
成交量差与 CVD指标根据K线估算
导出指标数值指标CSV 或 JSON,每条线一列
实时 tick 的增量更新指标update() 只重新计算正在形成的K线
69 种画线工具画线工具直线、通道、斐波那契、江恩、叉形线、艾略特波浪、形态、周期、投影
每种工具各自的设置画线工具样式、属性,以及落在市场价格网格上的坐标
多头与空头仓位画线工具风险回报比,按风险百分比或金额计算数量
画线上的提醒画线工具价格穿越所画的趋势线或通道时触发,对数坐标同样适用
层级、分组与模板画线工具上移、下移、分组、锁定、隐藏
注释、标注、箭头、旗标、画笔、路径、曲线画线工具手绘与多点绘制
锚定 VWAP 与固定区间成交量分布画线工具读取图表自身的K线
橡皮擦、缩放框、强磁吸、键盘快捷键画线工具Alt+T, Alt+H, Alt+J, Alt+V, Alt+C, Alt+F
跳转到日期;从 1D 到 All 的时间范围坐标与时间缩小不设上限
支持夏令时的 IANA 时区坐标与时间或使用交易所自己的时区
任意周期,以及 tick K线坐标与时间7m、90m、2d 由行情源提供的数据合成;100T 由其成交合成
左右两侧坐标;每个副图可设对数、反转和百分比坐标与时间左侧坐标可用于叠加层,或作为价格坐标的副本
品种对比、价差与比值坐标与时间使用独立的坐标或副图,按时间对齐
延长交易时段坐标与时间依据品种的交易时段
价格与时间格式坐标与时间priceFormat 可以是函数,或 1/32 这样的分数;timeFormatter
按品种的小数位和最小变动价位显示坐标坐标与时间pricePrecision、minTick:以 10 为单位变动的股票绝不会显示 21,705
最高价与最低价线、买价与卖价坐标与时间买卖价来自行情源的 tick
图表上的事件标记坐标与时间signalMarkerHover, signalMarkerClick
现成的行情源,也可接入你自己的数据与实时行情Binance、Bybit、Coinbase、Kraken、mock;WebSocketAdapter、PollingAdapter
向左滚动时加载更早的历史数据与实时行情fetchHistoryBefore
带详细信息的品种搜索数据与实时行情searchSymbols、resolveSymbol:小数位、最小变动价位、交易时段、时区
连接后才获知的品种详情数据与实时行情适配器的 symbolInfo 事件
深度报价阶梯数据与实时行情按价格显示买卖挂单量;点击即可交易
自选列表的实时报价数据与实时行情subscribeQuotes, setQuotes, getQuote
新闻与市场状态数据与实时行情fetchNews;距离开盘或收盘的倒计时
交易所规则数据与实时行情setMarket:按价格区间的最小变动价位、每日涨跌停价、每手股数、交易时段;HOSE、HNX、UPCoM 和 VN30 期货
图表上的订单与持仓交易拖动即可修改;直接在线上撤单、平仓和反手
成交标记交易executionFill 中带有原因和盈亏
下单面板交易数量、类型、止损与止盈、有效期,输入时即时校验;以及交易所的最小变动价位、涨停价、跌停价和每手股数
账户面板交易带实时盈亏的持仓、挂单、成交记录
信号与交易区域交易markers.*、tradeZones.* 样式键
回测与风险指标交易@tradecanvas/analytics:手续费、滑点、Sharpe、Sortino、Calmar、回撤
不止于价格水平的提醒提醒与回放线与线交叉、N 根K线内涨跌 N%、K线收盘时触发、可设到期时间
更细步长的K线回放提醒与回放用更小周期的K线回放更大的周期
在回放中模拟交易提醒与回放订单按回放的价格成交
在图表网格中同步回放提醒与回放各图表保持同步
面向应用的回放提醒与回放startTime、hideHistory、duration,随播放逐步显示的标记,replayComplete
同步联动的组件网格工作区最多 6 个,共享代码、周期、十字光标、时间和画线
保存在你自己存储中的命名布局工作区保存、打开、重命名、自动保存;用 LayoutStorage 接入服务器
一切皆可撤销与重做工作区画线、指标、设置和图表类型;recordUndo
按区域划分的右键菜单工作区画线、绘图区、副图、价格轴、时间轴
自选列表工作区可建多个列表,拖动即可排序
供宿主应用使用的事件工作区symbolChange、timeframeChange、ordersChange、executionFill、styleChange 等
组件的三种外观自定义Studio、Terminal、Capsule;ui 与 setUI;--tcw-* CSS 变量
按键定制图表外观自定义applyOverrides 覆盖 101 个带类型的键,分为宿主层和用户层
覆盖每个键的设置自定义当前图表类型的样式选项卡,以及交易选项卡
112 个功能开关自定义features、setFeatures、isFeatureOn;运行时可更改
在组件中加入你自己的部件自定义工具栏按钮和下拉菜单、侧边栏按钮、状态栏项、插槽、菜单项
自定义快捷键自定义addHotkey,按键盘布局识别
组件支持 30 种语言语言与无障碍阿拉伯语、希伯来语和波斯语从右到左显示
屏幕阅读器与键盘语言与无障碍图表摘要、逐根朗读K线、对话框可用键盘操作
文档提供六种语言,本站提供十四种语言与无障碍English, Tiếng Việt, 简体中文, 日本語, 한국어, Español
React、Vue 和 Svelte 组件开发者响应式 props:overrides、indicators、features
插件开发者指标、画线工具、图表类型和叠加层;用 overlayScale 和 getPriceStep 在价格网格上绘制
面向编程智能体的文档开发者llms.txt、llms-full.txt,以及一个智能体技能

已知限制

  • 在 WebGL 经过更多设备试用之前,Canvas 2D 仍是默认渲染器;WebGL 在 Safari 和 5K 屏幕上的帧率尚未测量。
  • 在 2560×1400 的图表上、像素比为 2 时,仅浏览器的合成在集成显卡上就要约 23 ms,因此那里的 WebGL 帧平均为 29 ms。
  • tick 周期由行情源返回的近期成交合成;无法加载更早的 tick 历史。
  • 成交量差和 CVD 根据K线估算,而非依据每笔成交的买卖方向。
  • 一个页面上最多 8 个图表同时用 WebGL 绘制;其余用 Canvas 2D 绘制。