MujicaUI

Trading · #165

OrderBook 浅色主题渲染快照
浅色 · 渲染快照
OrderBook 深色主题渲染快照
深色 · 渲染快照

165 OrderBook

盘口。

用途

按价格显示卖档(上)与买档(下),带累计深度条与价差;可按价格步长合并档位;点击档位回传价格。

最小示例

var state finance.OrderBookState
book := finance.OrderBookData{
	Bids: []finance.BookLevel{{Price: 100.00, Size: 5}, {Price: 99.99, Size: 3}},
	Asks: []finance.BookLevel{{Price: 100.01, Size: 1}, {Price: 100.02, Size: 2}},
}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	if price, side, ok := finance.OrderBook(c, &state, book, finance.OrderBookOptions{Groups: []float64{0.01, 0.05}}).Clicked(); ok {
		fmt.Println("order at", price, side)
	}
}
ui.Render(view, 400, 300, 1)

参数

字段类型默认值含义
s*OrderBookState必填Group 为合并步长,0 取 Groups 第一项;不在 Groups 中 panic。
bookOrderBookData必填Bids、Asks 与 Version(原地修改时递增)。
Decimals / SizeDecimalsint2 / 0价格与数量小数位。
Depthint8每侧档数。
Groups[]float64nil可选合并步长,须为价格精度的整数倍,否则 panic。
Disabledboolfalse禁用点击与合并选择。

状态

默认、悬停、聚焦、禁用;空盘口时只显示表头。

事件

OrderBookResult.Clicked() 返回被点击档位的价格与方向。

键盘操作

Tab 进入档位列表,↑/↓ 在档位间移动,Enter/Space 选中价格。

限制

  • 合并以整数价格单位计算:买档向下取整、卖档向上取整。只在数据或步长变化时重新聚合。
  • 涨跌颜色由 UseTrend(c, GreenUp|RedUp) 按窗口设置,默认绿涨红跌;方向同时用箭头与正负号表达,不只靠颜色。