1.5 KiB
1.5 KiB
167 TimeAndSales
逐笔成交。
用途
逐笔成交列表,最新在上,只构建可见行;大单以菱形与粗体标记;可暂停跟随。
最小示例
var state mujica.TimeAndSalesState
trades := []mujica.TradePrint{{ID: "1", Time: time.Now(), Price: 100.01, Size: 300, Side: mujica.SideBuy}}
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
mujica.TimeAndSales(c, &state, trades, mujica.TimeAndSalesOptions{LargeSize: 1000})
}
ui.Render(view, 400, 300, 1)
参数
| 字段 | 类型 | 默认值 | 含义 |
|---|---|---|---|
s |
*TimeAndSalesState |
必填 | Paused 暂停跟随。 |
trades |
[]TradePrint |
必填 | 按时间先后追加;ID 唯一。 |
Decimals / SizeDecimals |
int |
2 / 0 | 价格与数量小数位。 |
LargeSize |
float64 |
0 | 数量达到即标记为大单。 |
Height |
float32 |
320 | 高度(DIP)。 |
Status / Error |
DataStatus / string |
Ready | 加载、失败等状态。 |
状态
跟随、暂停(显示新成交数量)、加载、失败、空列表。
事件
ChoiceResult.Changed() 在暂停或继续时为 true。
键盘操作
Tab 到达暂停按钮(Enter/Space 切换)与列表;列表内 ↑/↓ 移动。
限制
- 基于 List 虚拟化,100,000 条成交只构建可见行。
- 暂停时冻结显示的条数,新成交不打断阅读。
- 涨跌颜色由
UseTrend(c, GreenUp|RedUp)按窗口设置,默认绿涨红跌;方向同时用箭头与正负号表达,不只靠颜色。