MujicaUI

Trading · #173

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

173 PositionTable

持仓表。

用途

持仓列表:数量、成本、现价、市值、浮动盈亏与比例,每行提供平仓操作。基于 DataTable,以稳定行 ID 保存选择与排序。

最小示例

var state data.DataTableState[string]
rows := []finance.PositionRow{{ID: "p1", Symbol: "MUJC", Quantity: 100, AvgCost: 400, Price: 412.08}}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	if id, ok := finance.PositionTable(c, &state, rows, finance.PositionTableOptions{}).Acted(); ok {
		fmt.Println("close", id)
	}
}
ui.Render(view, 400, 300, 1)

参数

字段类型默认值含义
s*DataTableState[string]必填表格状态。
rows[]PositionRow必填ID 必须稳定。
Decimalsint2小数位。
Versionint0原地修改行时递增。
Status / ErrorDataStatus / stringReady加载与失败状态。
Disabledboolfalse禁用平仓。

状态

默认、排序、选中、加载、失败、空、禁用。

事件

TableActionResult.Acted() 返回要平仓的行 ID;Table 为 DataTable 事件。

键盘操作

沿用 DataTable 的键盘操作;Tab 到达各行的平仓按钮。

限制

  • 只构建可见行。
  • 涨跌颜色由 UseTrend(c, GreenUp|RedUp) 按窗口设置,默认绿涨红跌;方向同时用箭头与正负号表达,不只靠颜色。