Tài liệuChuyển sang 2.0

Chuyển sang 2.0

2.0 đổi giao diện mặc định của chart và widget, gỡ các tên mà 1.x đã đánh dấu deprecated, và đổi bốn hành vi. Dữ liệu, bố cục đã lưu, chỉ báo, hình vẽ, giao dịch và chủ đề màu giữ nguyên. Trang này liệt kê từng thay đổi và việc bạn cần làm.

Cài đặt

2.0 là bản phát hành hiện tại: mọi gói đều là 2.0.0 dưới tag latest của npm. Bản 1.x vẫn còn đó, cài bằng @tradecanvas/chart@1, cho trang chưa sẵn sàng chuyển.

npm install @tradecanvas/chart

# nếu dùng component của framework thì cài thêm gói của nó
npm install @tradecanvas/react
npm install @tradecanvas/vue
npm install @tradecanvas/svelte

Giao diện mặc định

Chart và widget mở ra với nhiều khoảng thoáng hơn quanh những gì chúng vẽ. Một tuỳ chọn giữ lại giao diện của 1.x:

// Widget như ở 1.x
new ChartWidget(host, { ui: { density: 'classic' } })
widget.setUI({ density: 'classic' })

// Chart của riêng bạn như ở 1.x
new Chart(host, { density: 'compact' })

ui: { density: 'compact' } (nút điều khiển nhỏ hơn) không đổi.

Những điểm khác đi theo mặc định:

Phần1.x2.0
Khoảng trống sau nến mới nhất5 ô8 ô
Khoảng trống phía trên và phía dưới giá9% chiều cao11,5% chiều cao
Nến của một Chart dùng riêngClassicGolden, thân nến bằng 62% ô, như widget vốn đã vẽ
Legend, tính từ góc vùng vẽlùi vào 8 pxlùi vào 12 px
Các con số của Chart trần (trục, nhãn, legend)Font đơn cáchFont sans của hệ thống, như widget và các financial chart; font: { family: MONO_FONT_FAMILY } giữ font cũ
Khoảng cách của widget, --tcw-space-1 … -72 · 3 · 5 · 8 · 13 · 21 · 34 px2 · 4 · 6 · 8 · 12 · 20 · 32 px
Nút của Print33 px34 px
Đệm hai bên nhãn của nút8 px12 px

Mọi kích thước và khoảng cách trong widget nay là số pixel chẵn, và các đường mảnh rộng đúng một pixel thiết bị ở tỉ lệ màn hình 125% và 150%.

Những chỗ cần kiểm tra trong code của bạn:

  • CSS ghi đè --tcw-space-*, hoặc mặc định một nút điều khiển cao 33 px.
  • Code có truyền rightMargin. Khi đã đặt, giá trị này vẫn được ưu tiên.
  • Các component React, Vue và Svelte không còn tự đặt rightMargin: 5. Muốn giữ, hãy truyền density: 'compact' hoặc rightMargin: 5 trong options.
  • Code đọc PRICE_SCALE_MARGIN từ @tradecanvas/core hoặc DEFAULT_CHART_OPTIONS.rightMargin: cả hai đã đổi giá trị.
// React; component Vue và Svelte nhận cùng options
<TradeCanvas options={{ density: 'compact' }} />
<TradeCanvas options={{ rightMargin: 5 }} />

Mỗi mức density đặt những gì, xem đầy đủ ở Giao diện → Mật độ.

Các tên đã gỡ

Mỗi tên dưới đây đã bị đánh dấu deprecated ở 1.x và không còn trong 2.0.

Đã gỡDùng thay
chart.setTimezone(tz)chart.setTimeZone(tz)
chart.getTimezone()chart.getTimeZone()
chart.getEffectiveTimezone()chart.getEffectiveTimeZone()
chart.getExchangeTimezone()chart.getExchangeTimeZone()
chart.setTimezoneOffset(minutes)chart.setTimeZone(minutes): số phút về phía đông UTC, hoặc null để dùng múi giờ của trình duyệt
EXCHANGE_TIMEZONEEXCHANGE_TIME_ZONE
DEFAULT_FONT_FAMILYMONO_FONT_FAMILY: font đơn cách, nay không còn là mặc định
SymbolInfo.timezoneSymbolInfo.timeZone
TimeFormatContext.kind === 'date' trong một timeFormatterTrục thời gian đưa 'year', 'month' hoặc 'day'. Từ 1.x nó đã không còn đưa 'date', và nay kiểu cũng không còn giá trị này.
SessionBreaks.setLocale() và SessionBreaks.renderLabels() (@tradecanvas/core)Bỏ các lời gọi: cả hai vốn không làm gì.
Khoá chuỗi replay.barsPerSecond của widgetBỏ nó khỏi phần ghi đè messages: khoá này không được dùng. Chữ hiển thị tốc độ replay là replay.rate.

timezone của một mã không còn được đọc

Trường cũ không còn được đọc nữa. Một mã chỉ ghi timezone, dù đến từ symbols của bạn, resolveSymbol, một feed hay một adapter, nay không có múi giờ riêng:

  • setTimeZone('exchange') và ngày của nến ngày lùi về múi giờ của thị trường, hoặc về UTC;
  • sessions của chính mã đó không được tô màu (giờ của thị trường thì có, khi đã đặt thị trường);
  • trạng thái của mã hiện như một thị trường giao dịch suốt ngày đêm, và bảng thông tin mã không hiện múi giờ.

Nếu bạn vẫn truyền timezone, nó được giữ nguyên trong getSymbolInfo() nhưng không gì đọc nó.

// 1.x
chart.setSymbolInfo({ symbol: 'AAPL', timezone: 'America/New_York' })

// 2.0
chart.setSymbolInfo({ symbol: 'AAPL', timeZone: 'America/New_York' })

Những tên không đổi

Các tên này rất giống nhau, nên hãy cẩn thận khi tìm và thay hàng loạt. Thiết lập của widget vẫn viết là timezone:

widget.setSettings({ timezone: 'exchange' })
widget.getSettings().timezone       // 'exchange'

Hai khoá chuỗi của widget, settings.timezone và menu.chart.timezone, cũng giữ nguyên tên.

Cách tìm

Tìm trong code của bạn Timezone( và EXCHANGE_TIMEZONE, cùng với timezone: bên trong các object mô tả mã. TypeScript báo lỗi ở từng tên đã gỡ.

Hành vi đã đổi

Các thay đổi sau không kèm theo việc đổi tên nào.

  • Nhãn trục giá ở mép pane. Nhãn nào sẽ bị mép trên hoặc mép dưới của pane cắt mất thì không được vẽ. Đường lưới của nó vẫn còn.
  • Pane giá giữa nhiều pane. Dù mở bao nhiêu pane chỉ báo, pane giá vẫn giữ ít nhất 38,2% chiều cao của chart, và các pane đang mở chia phần còn lại theo tỉ lệ kích thước của chúng. Kích thước đã đặt cho một pane được giữ lại, và hiện đúng trở lại khi chart cao hơn. Trước đây các pane giữ nguyên chiều cao và có thể không chừa lại gì cho pane giá.
  • Độ rộng nét nằm giữa hai số pixel nguyên. Một nét có độ rộng như vậy lấy số pixel thiết bị nguyên ngay bên dưới: 1,5 px là một pixel thiết bị ở tỉ lệ 100%, trước đây là hai.
  • setBarLayout() và setDensity(). Kiểu nến đặt bằng chart.setBarLayout() khi chart đang chạy được giữ lại qua một lần setDensity() sau đó.

Không thay đổi

  • Dữ liệu: DataAdapter, DataFeed, setData, appendBar và updateLastBar.
  • Bố cục và thiết lập đã lưu từ 1.x vẫn tải được như trước.
  • Chỉ báo, hình vẽ, giao dịch, chủ đề màu và các khoá style giữ nguyên tên.