MujicaUI

Trading · #171

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

171 OrderEntry

下单面板。

用途

限价、市价、止损与条件限价单的录入:方向、类型、数量、价格、触发价与有效期;同步与调用方异步校验;预估金额;提交防重入。建立在 Form 之上。

最小示例

var state finance.OrderEntryState
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	if order, ok := finance.OrderEntry(c, &state, finance.OrderEntryOptions{Symbol: "MUJC", Last: 100.2}).Submitted(); ok {
		fmt.Println("place", order.Quantity)
		state.EndSubmit("")
	}
}
ui.Render(view, 400, 300, 1)

参数

字段类型默认值含义
s*OrderEntryState必填Draft 为当前订单,Form 为表单状态。
Symbolstring必填代码,空值 panic。
Lastfloat640最新价,用于市价预估和止损方向检查。
TickSize / LotSizefloat640.01 / 1价格与数量步长。
MaxQuantityfloat640数量上限,0 不限。
InitialOrderDraft买入限价重置恢复的订单。
Validatefunc(OrderDraft) stringnil调用方同步规则。
Checkfunc(OrderDraft, uint64)nil异步检查(如可用资金),以 s.Resolve(version, msg) 回传;旧版本结果被丢弃。
Disabledboolfalse禁用。

状态

默认、字段错误(失焦或提交后)、异步检查中、提交中(按钮加载)、表单错误、禁用。

事件

OrderEntryResult.Submitted() 返回通过全部校验的订单;处理完毕后调用 s.EndSubmit(err)。

键盘操作

Tab 依次经过方向、类型、各字段与按钮;数量与价格字段 ↑/↓ 按步长调整;提交失败聚焦第一个错误字段。

限制

  • 止损单检查:买入触发价须高于最新价,卖出须低于。
  • 数量字段的异步检查覆盖整张订单:任一字段变化都会让旧结果失效。