181 OptionChain
用途
期权链。
最小示例
var state finance.OptionChainState
rows := []finance.OptionStrike{{Strike: 100, Call: finance.OptionQuote{Bid: 3, Ask: 3.2, Last: 3.1}, Put: finance.OptionQuote{Bid: 2, Ask: 2.2, Last: 2.1}}}
view := func(c *ui.Context) {
core.Use(c, core.Settings{})
r := finance.OptionChain(c, &state, []string{"Oct 17", "Nov 21"}, rows, finance.OptionChainOptions{Spot: 100.4})
if r.Changed || r.Submitted || r.ExpiryChanged {
fmt.Println(state.Expiry, state.Strike, state.Side)
}
}
ui.Render(view, 960, 440, 1)参数
s 保存到期日和合约;expiries 至少一个;strikes 升序。Spot 默认 0 隐藏现价;Decimals 默认 2;Disabled 默认 false。
状态
默认;交互区域支持聚焦与选中,Disabled 参数控制禁用。
事件
if r.Changed || r.Submitted || r.ExpiryChanged { 调用方回调(state.Expiry, state.Strike, state.Side) }
键盘操作
Tab 切换到期日或列表;上下、Home/End 选择行;左右切换认购认沽;Enter 确认。
限制
到期日切换后,由调用方更换对应报价;排序与稳定合约标识由调用方保证。

