优化:订单份额单位统一优化
This commit is contained in:
parent
1ac53ffb79
commit
ff6c7a1877
@ -10,7 +10,7 @@
|
||||
## 核心能力
|
||||
|
||||
- 分时图:ECharts 渲染,支持 Past、时间粒度切换
|
||||
- 订单簿:`OrderBook` 组件,通过 **ClobSdk** 对接 CLOB WebSocket 实时数据(全量快照、增量更新、成交推送)
|
||||
- 订单簿:`OrderBook` 组件,通过 **ClobSdk** 对接 CLOB WebSocket 实时数据(全量快照、增量更新、成交推送);份额接口按 6 位小数传(1_000_000 = 1 share),`priceSizeToRows` 与 `mergeDelta` 会将 raw 值除以 `ORDER_BOOK_SIZE_SCALE` 转为展示值
|
||||
- 交易:`TradeComponent`,传入 `market`、`initialOption`、`positions`(持仓数据)
|
||||
- 持仓列表:通过 `getPositionList` 获取当前市场持仓,传递给 `TradeComponent` 用于计算可合并份额
|
||||
- 限价订单:通过 `getOrderList` 获取当前市场未成交限价单,支持撤单
|
||||
|
||||
@ -556,13 +556,16 @@ const clobLastPriceNo = computed(() => clobLastPriceByToken.value[1])
|
||||
const clobSpreadYes = computed(() => clobSpreadByToken.value[0])
|
||||
const clobSpreadNo = computed(() => clobSpreadByToken.value[1])
|
||||
|
||||
/** 订单簿份额接口按 6 位小数传(1_000_000 = 1 share),需除以该系数转为展示值 */
|
||||
const ORDER_BOOK_SIZE_SCALE = 1_000_000
|
||||
|
||||
function priceSizeToRows(record: Record<string, number> | undefined): OrderBookRows {
|
||||
if (!record) return []
|
||||
return Object.entries(record)
|
||||
.filter(([, shares]) => shares > 0)
|
||||
.map(([p, shares]) => ({
|
||||
.filter(([, rawShares]) => rawShares > 0)
|
||||
.map(([p, rawShares]) => ({
|
||||
price: Math.round(parseFloat(p) / 100),
|
||||
shares,
|
||||
shares: rawShares / ORDER_BOOK_SIZE_SCALE,
|
||||
}))
|
||||
}
|
||||
|
||||
@ -597,8 +600,9 @@ function applyPriceSizeDelta(msg: PriceSizePolyMsg) {
|
||||
) => {
|
||||
const map = new Map(current.map((r) => [r.price, r.shares]))
|
||||
if (delta) {
|
||||
Object.entries(delta).forEach(([p, shares]) => {
|
||||
Object.entries(delta).forEach(([p, rawShares]) => {
|
||||
const price = Math.round(parseFloat(p) / 100)
|
||||
const shares = rawShares / ORDER_BOOK_SIZE_SCALE
|
||||
if (shares <= 0) map.delete(price)
|
||||
else map.set(price, shares)
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user