Audit hệ thống

Làm được gì, và nhanh tới đâu.

Mọi thứ trên trang này đều có trong @tradecanvas/chart 1.31.0. Thời gian vẽ được đo trên Chrome, trên một laptop dùng GPU tích hợp (Intel UHD); lệnh node scripts/bench-render.mjs trong repo chạy đúng các cảnh này trên máy của bạn.

Các con số

loại biểu đồ
18
chỉ báo có sẵn
111
công cụ vẽ
69
ngôn ngữ của widget
30
khoá style
101
công tắc tính năng của widget
112
thư viện bên thứ ba khi chạy
0
unit test
3,000+

Thời gian vẽ một khung hình

Thời gian vẽ một khung hình khi kéo biểu đồ. 16,7 ms là 60 khung hình mỗi giây.

Biểu đồTỉ lệ điểm ảnhCanvas 2DWebGLCanvas 2D / WebGL
1600×900, 500 nến + 4 chỉ báo · 2×227,4 ms19,6 ms
1600×900, thu nhỏ hết cỡ trên 200.000 nến + 4 chỉ báo · 2×234,5 ms20,2 ms
1600×900, thu nhỏ hết cỡ trên 1.000.000 nến + 4 chỉ báo · 2×234,5 ms16,7 ms
1600×900, heatmap độ sâu, 240 lần chụp × 80 mức giá · 2×225,5 ms16,8 ms
Sáu biểu đồ, mỗi biểu đồ 500 nến và 2 chỉ báo · 2×223,5 ms17,2 ms
2560×1400, 2.000 nến + 4 chỉ báo · 1×141,6 ms17,7 ms
2560×1400, 2.000 nến + 4 chỉ báo · 1,5×1,570,8 ms17,6 ms
2560×1400, 2.000 nến + 4 chỉ báo · 2×2114,5 ms29,1 ms

Mặc định vẽ bằng Canvas 2D. renderer: 'webgl' (hoặc 'auto') vẽ vùng biểu đồ bằng WebGL 2, và tự quay về Canvas 2D khi trình duyệt không có WebGL 2 hoặc mất context.

Đường đi của dữ liệu

Một tick trực tiếp, có Bollinger Bands, EMA, RSI và MACD trên 100.000 nến
~0,001 ms
Tính lại toàn bộ bốn chỉ báo đó trên 100.000 nến
~27 ms
Một đường 1.000.000 điểm trên màn hình, rút gọn cho một khung hình
~2,6 ms
Vẽ lại khi rê chuột (crosshair, legend)
~0,2 ms
Đổi mã hay khung thời gian chỉ hiện lớp chờ sau
200 ms

Dung lượng tải

Đã minify và gzip, gồm mọi thứ nó import.

Chart, phần API không giao diện
176 KB
ChartWidget, giao diện đầy đủ
315 KB
Bộ vẽ WebGL, chỉ tải khi dùng lần đầu
18 KB

Cách kiểm tra

  • Hơn 3.000 unit test trên bảy gói chạy trên CI với mọi pull request.
  • Bộ vẽ WebGL vẽ nến trên đúng các điểm ảnh thiết bị như Canvas 2D; đường và vùng tô chỉ khác ở vài điểm ảnh khử răng cưa ở mép.
  • Bộ vẽ WebGL đã được kiểm trên Chromium, Firefox và WebKit. Không có WebGL 2, hoặc khi mất context, biểu đồ vẽ tiếp bằng Canvas 2D.
  • Các đoạn code mẫu trong tài liệu và trong agent skill được kiểm kiểu với API thật.
  • Biểu đồ đọc được bằng trình đọc màn hình và dùng được bằng bàn phím; widget hiển thị phải sang trái với tiếng Ả Rập, Do Thái và Ba Tư.

Tính năng

Lọc theo nhóm, hoặc tìm theo tên hay API.

80 / 80
Tính năngNhómChi tiết và API
Nến, thanh OHLC, đường, vùng, baseline, Heikin-Ashi, nến rỗngLoại biểu đồcandlestick, bar, line, area, baseline, heikinAshi, hollowCandle
Renko, line break, Kagi, point & figure, range barsLoại biểu đồCỡ ô hoặc ATR, số đường để đảo chiều, đảo chiều theo % hoặc theo giá, biên độ mỗi thanh
Volume candles, Equivolume, HLC area, step line, đường có điểm, high-lowLoại biểu đồ18 loại biểu đồ tất cả
Ẩn chuỗi giá chínhLoại biểu đồChỉ giữ lại chỉ báo và hình vẽ
Biểu đồ cho dashboardLoại biểu đồCột (nhóm, chồng, nằm ngang), donut và tròn, scatter và bong bóng, histogram, lịch, ma trận tương quan, bản đồ theo ngành, đường ngược chiều kim đồng hồ, sparkline, đồng hồ đo, bản đồ nhiệt và treemap, thác nước, độ sâu, đường cong vốn
Canvas 2D hoặc WebGL 2Hiển thịrenderer: 'canvas' | 'webgl' | 'auto', setRenderer, sự kiện rendererChange
Mỗi cột điểm ảnh một nét khi thu nhỏHiển thịĐường, dải và histogram của chỉ báo khi mỗi nến hẹp hơn một điểm ảnh
Một triệu nến kéo vẫn mượtHiển thịKèm bốn chỉ báo, ở tỉ lệ điểm ảnh 2
Heatmap độ sâu, volume profile và market profile trên GPUHiển thịpushDepthSnapshot(book, time)
Nhiều biểu đồ WebGL trên một trangHiển thịTối đa 8 (setMaxWebGLCharts); phần còn lại vẽ bằng Canvas 2D; trở lại WebGL khi context quay về
Sắc nét ở mọi tỉ lệ màn hìnhHiển thịNến, volume và hình vẽ nằm đúng điểm ảnh thiết bị ở 100%, 125% và 200%
Không phụ thuộc thư viện bên thứ ba khi chạyHiển thịKhông có gì khác phải cài hay rà soát
134 chỉ báo có sẵnChỉ báoPivot points 6 kiểu, MA Cross, tương quan với mã khác
Chọn nguồn giáChỉ báoopen, high, low, hl2, hlc3, ohlc4, hlcc4
Chỉ báo chồng lên chỉ báoChỉ báoNhư đường trung bình của RSI, cập nhật theo từng tick
Nhiều chỉ báo trong một pane, chuyển giữa các paneChỉ báomoveIndicatorToPane
Nhiều bản của cùng một chỉ báoChỉ báoEMA 20 và EMA 50 cạnh nhau
Mức và ngưỡngChỉ báoRSI 30/70, CCI ±100, lưu cùng layout
Giá trị cuối trên trụcChỉ báoTrên trục giá và trục của từng pane, theo màu của đường
Thu gọn, phóng to, sắp xếp paneChỉ báoLưu cùng layout
Template chỉ báoChỉ báoThông số, kiểu, mức và pane, lưu và áp dụng cùng lúc
Kiểu và ẩn/hiện từng đườngChỉ báoĐường bị ẩn không kéo giãn thang; setIndicatorDefaults
Volume delta và CVDChỉ báoƯớc tính từ nến
Xuất giá trị chỉ báoChỉ báoCSV hoặc JSON, mỗi đường một cột
Cập nhật tăng dần theo tickChỉ báoupdate() chỉ tính lại nến đang hình thành
69 công cụ vẽCông cụ vẽĐường, kênh, Fibonacci, Gann, pitchfork, sóng Elliott, mô hình giá, chu kỳ, dự phóng
Cài đặt riêng cho từng công cụCông cụ vẽKiểu, thuộc tính và toạ độ theo lưới giá của mã
Vị thế mua và bánCông cụ vẽTỉ lệ lời:lỗ, khối lượng tính từ rủi ro theo % hoặc theo tiền
Cảnh báo theo hình vẽCông cụ vẽKhi giá cắt đường xu hướng hay kênh đúng như đã vẽ, cả trên thang log
Thứ tự lớp, nhóm và templateCông cụ vẽĐưa lên, đưa xuống, gom nhóm, khoá, ẩn
Ghi chú, chú thích, mũi tên, cờ, bút vẽ, path, đường congCông cụ vẽVẽ tay và vẽ nhiều điểm
Anchored VWAP và volume profile theo khoảngCông cụ vẽĐọc nến của biểu đồ
Tẩy, zoom vùng, nam châm mạnh, phím tắtCông cụ vẽAlt+T, Alt+H, Alt+J, Alt+V, Alt+C, Alt+F
Đi tới ngày; khoảng 1D tới AllThang và thời gianKhông giới hạn thu nhỏ
Múi giờ IANA có giờ mùa hèThang và thời gianHoặc múi giờ của chính sàn
Khung thời gian bất kỳ, và nến tickThang và thời gian7m, 90m, 2d dựng từ khung nguồn có; 100T từ các giao dịch
Thang trái và phải; log, đảo ngược và % theo từng paneThang và thời gianThang trái cho overlay hoặc lặp lại thang giá
So sánh mã, spread và ratioThang và thời gianTrên thang hoặc pane riêng, khớp theo thời gian
Giờ giao dịch mở rộngThang và thời gianTheo giờ phiên của mã
Định dạng giá và thời gianThang và thời gianpriceFormat dạng hàm hoặc phân số như 1/32; timeFormatter
Thang giá theo số lẻ và bước giá của mãThang và thời gianpricePrecision, minTick: cổ phiếu có bước giá 10 không bao giờ hiện 21.705
Đường cao và thấp, giá mua và giá bánThang và thời gianGiá mua và giá bán lấy từ tick của nguồn dữ liệu
Mốc sự kiện trên biểu đồThang và thời giansignalMarkerHover, signalMarkerClick
Nguồn dữ liệu có sẵn và nguồn của bạnDữ liệu và trực tiếpBinance, Bybit, Coinbase, Kraken, mock; WebSocketAdapter, PollingAdapter
Tải thêm lịch sử khi kéo sang tráiDữ liệu và trực tiếpfetchHistoryBefore
Tìm mã kèm thông tinDữ liệu và trực tiếpsearchSymbols, resolveSymbol: số lẻ, bước giá, phiên, múi giờ
Thông tin mã biết được sau khi kết nốiDữ liệu và trực tiếpSự kiện symbolInfo của adapter
Sổ lệnh dạng thangDữ liệu và trực tiếpKhối lượng mua và bán theo mức giá; bấm để đặt lệnh
Giá trực tiếp cho watchlistDữ liệu và trực tiếpsubscribeQuotes, setQuotes, getQuote
Tin tức và trạng thái thị trườngDữ liệu và trực tiếpfetchNews; đếm ngược tới giờ mở hay đóng cửa
Quy định của sànDữ liệu và trực tiếpsetMarket: bước giá theo vùng giá, giá trần và giá sàn trong ngày, lô, phiên giao dịch; HOSE, HNX, UPCoM và hợp đồng tương lai VN30
Lệnh và vị thế trên biểu đồGiao dịchKéo để sửa; huỷ, đóng và đảo vị thế ngay trên đường
Dấu khớp lệnhGiao dịchLý do và lãi/lỗ trong executionFill
Phiếu đặt lệnhGiao dịchKhối lượng, loại lệnh, cắt lỗ và chốt lời, hiệu lực, kiểm tra ngay khi nhập; bước giá, giá trần, giá sàn và lô của sàn
Bảng tài khoảnGiao dịchVị thế có lãi/lỗ trực tiếp, lệnh chờ, lịch sử khớp
Tín hiệu và vùng lệnhGiao dịchKhoá style markers.*, tradeZones.*
Backtest và chỉ số rủi roGiao dịch@tradecanvas/analytics: phí, trượt giá, Sharpe, Sortino, Calmar, sụt giảm
Cảnh báo không chỉ theo mức giáCảnh báo và replayĐường cắt đường, biến động N% trong N nến, khi đóng nến, có hạn dùng
Replay theo bước nhỏ hơnCảnh báo và replayKhung lớn được phát lại từ nến nhỏ
Giao dịch giấy khi replayCảnh báo và replayLệnh khớp theo giá đang phát lại
Replay trên lưới nhiều biểu đồCảnh báo và replayChạy đồng bộ
Replay cho ứng dụngCảnh báo và replaystartTime, hideHistory, duration, mốc hiện dần theo replay, replayComplete
Lưới widget đồng bộKhông gian làm việcTối đa 6, chung mã, khung thời gian, crosshair, thời gian và hình vẽ
Layout có tên, lưu ở nơi của bạnKhông gian làm việcLưu, mở, đổi tên, tự lưu; LayoutStorage cho máy chủ
Hoàn tác và làm lại cho mọi thứKhông gian làm việcHình vẽ, chỉ báo, cài đặt và loại biểu đồ; recordUndo
Menu chuột phải theo vùngKhông gian làm việcHình vẽ, vùng giá, pane, trục giá, trục thời gian
WatchlistKhông gian làm việcNhiều danh sách, kéo để sắp xếp
Sự kiện cho ứng dụngKhông gian làm việcsymbolChange, timeframeChange, ordersChange, executionFill, styleChange và nhiều hơn
Ba kiểu giao diện cho widgetTuỳ biếnStudio, Terminal, Capsule; ui và setUI; biến CSS --tcw-*
Giao diện biểu đồ theo khoáTuỳ biếnapplyOverrides trên 101 khoá có kiểu, ở lớp ứng dụng và lớp người dùng
Settings chỉnh được mọi khoáTuỳ biếnTab style theo loại biểu đồ đang xem, tab giao dịch
112 công tắc tính năngTuỳ biếnfeatures, setFeatures, isFeatureOn; đổi được khi đang chạy
Thành phần của riêng bạn trong widgetTuỳ biếnNút và dropdown trên toolbar, nút sidebar, mục thanh trạng thái, slot, mục menu
Phím tắt của riêng bạnTuỳ biếnaddHotkey theo bố cục bàn phím
Widget bằng 30 ngôn ngữNgôn ngữ và trợ năngTiếng Ả Rập, Do Thái và Ba Tư hiển thị phải sang trái
Trình đọc màn hình và bàn phímNgôn ngữ và trợ năngTóm tắt biểu đồ, đọc từng nến, hộp thoại dùng bằng bàn phím
Tài liệu bằng sáu ngôn ngữ, trang web bằng mười bốnNgôn ngữ và trợ năngEnglish, Tiếng Việt, 简体中文, 日本語, 한국어, Español
Component cho React, Vue và SvelteNhà phát triểnProps phản ứng: overrides, indicators, features
PluginNhà phát triểnChỉ báo, công cụ vẽ, loại biểu đồ và overlay; overlayScale và getPriceStep để vẽ theo lưới giá
Tài liệu cho coding agentNhà phát triểnllms.txt, llms-full.txt và một agent skill

Giới hạn đã biết

  • Canvas 2D vẫn là bộ vẽ mặc định cho tới khi WebGL được thử trên nhiều thiết bị hơn; tốc độ khung hình trên Safari và màn hình 5K chưa được đo.
  • Ở tỉ lệ điểm ảnh 2 với biểu đồ 2560×1400, riêng việc trình duyệt ghép các lớp đã mất khoảng 23 ms trên GPU tích hợp, nên khung hình WebGL ở đó trung bình 29 ms.
  • Khung tick được dựng từ các giao dịch gần đây mà nguồn dữ liệu trả về; không tải được lịch sử tick cũ hơn.
  • Volume delta và CVD được ước tính từ nến, không theo chiều của từng giao dịch.
  • Tối đa 8 biểu đồ trên một trang vẽ bằng WebGL cùng lúc; các biểu đồ còn lại vẽ bằng Canvas 2D.