DepthChart.js元件適用於資產交易中的市場深度(Depth Of Market)資料表現,
例如可以結合K線圖嵌入股票、加密貨幣等資產的交易應用軟體中作為使用者的交易工具。DepthChart.js元件基於HTML的Canvas技術實現,支援滑鼠滾輪縮放與十字線聚焦,提供深色與淺色兩種預置主題,並且支援自定義主題。DepthChart.js的官方下載地址:市場深度圖JS元件。
1、Depth Chart JS元件概述
DepthChart.js元件的主要特點如下:
- 基於html的canvas實現:與基於SVG的實現相比,在大資料量場景中的效能更好
- 不依賴第三方庫:沒有第三方依賴,非常容易嵌入其他庫或框架,例如jquery、vue、react、angular等
- 支援滑鼠滾輪縮放:滑鼠滾輪即可在水平方向縮放,便於觀察資料細節
- 支援自定義配色主題:可以根據應用需求自定義元件的配色主題,便於融入現有應用,同時也提供深/淺兩色 的預置主題
DepthChart.js元件當前版本為1.0.0,主要檔案清單詳見官網:http://sc.hubwiz.com/codebag/uikit-depth/
2、基本使用方法
STEP 1:引入指令碼檔案
在HTML檔案中宣告canvas元素,並引入uikit.umd.js檔案:
<canvas id="#depth-chart" width="900" height="400"></canvas>
<script src="lib/uikit.umd.js"></script>
STEP 2:宣告資料
DepthChart
元件要求資料按預定格式組織,例如:
var dataset = {
"bids":[
["0.00283330","95.18000000"],
["0.00283300","5.56000000"],
...
["0.00282410","3.74000000"],
["0.00282400","1.15000000"]
],
"asks":[
["0.00283480","4.95000000"],
["0.00283490","5.19000000"],
...
["0.00284400","79.01000000"],
["0.00284410","15.53000000"]
]
}
其中bids
表示買方市場深度資料,asks
表示賣方市場深度資料,每一行的兩個資料分別表示價位及該價位的數量。容易理解,買方資料是按價格從高到底排列,而賣方資料則是按價格從低到高排列,價差(spread
)則是買方最高價和賣方最低價的差值,即:
spread = asks[0][0] - bids[0][0]
你可以使用幣安的API獲取指定交易對的實時市場深度資料,例如,獲取BNB-BTC交易對的市場深度資料:
https://api.binance.com/api/v1/depth?symbol=BNBBTC&limit=50
STEP 3:建立DepthChart物件
使用uikit中的DepthChart
類初始化深度圖:
new uikit.DepthChart({
el: '#depth-chart', //canvas元素選擇符
dataset: dataset //資料集,參見下面說明
})
例項化DepthChart類的時候,需要傳入一個配置物件。el
配置用來宣告深度圖渲染的canvas元素(或者其選擇符),dataset
配置項用來宣告要進行處理的市場深度資料。
3、使用配色主題
在建立DepthChart時,可以使用theme
配置項來應用一個預置的主題,或者一個自定義的主題。
3.1 預置的深色主題
例如使用預置的dark主題:
new uikit.DepthChart({
el: '#depth-chart',
dataset: dataset,
theme: uikit.Theme.dark()
})
執行結果如下:
3.2 預置的淺色主題
或者使用預置的light主題:
new uikit.DepthChart({
el: '#depth-chart',
dataset: dataset,
theme: uikit.Theme.light()
})
執行結果如下:
3.3 自定義主題
可以參考src/Theme.js中的dark或light主題,根據自己的需要進行自定義。
可以配置的主要選項詳見官網:http://sc.hubwiz.com/codebag/uikit-depth/
4、使用原始碼
如果自定義主題還不能滿足應用需求,那麼可以直接修改原始碼。
首先到官網下載原始碼:http://sc.hubwiz.com/codebag/uikit-depth/ 。
然後解壓下載的程式碼包:
~$ tar zxvf uikit-depth-1.0.0.tar.gz
DepthChart.js元件的原始碼位於src目錄下,其主要類以及相互關係如下圖所示:
修改完成後,需要重新構建UMD庫檔案:
~/uikit$ npm install -g rollup
~/uikit$ npm run build
上面的命令首先全域性安裝rollup
,然後執行元件庫的構建任務,最終在lib目錄下
生成可用於瀏覽器端的庫檔案 - uikit.umd.js
。