订单操作

下单

功能说明

下单。

方法签名

func (c *TradeClient) PlaceOrder(order model.OrderRequest) (*model.PlaceOrderResult, error)

需要配置中可访问的交易账户。机构账户可通过 SecretKey 鉴权。

参数

model.OrderRequest

参数类型必填默认值说明
Accountstring由客户端账户写入传入值会被客户端配置的交易账户覆盖
IDint64零值省略下单不使用;PlaceOrder 不会覆盖该字段
OrderIdint64空值省略无;账户自增订单号
Actionstring空值省略买卖方向;可选值:BUY, SELL
OrderTypestring空值省略订单类型;可选值:MKT, LMT, STP, STP_LMT, TRAIL, AM, AL, TWAP, VWAP, OCA, ICEBERG
TotalQuantityint64条件必填零值省略总数量;按数量下单时必填,按金额下单时使用 Amount
LimitPricefloat64条件必填零值省略限价类订单必填
AuxPricefloat64条件必填零值省略止损类订单的辅助价格
TrailingPercentfloat64空值省略无;跟踪止损百分比
TimeInForcestring空值省略无;有效期(DAY/GTC/OPG);可选值:DAY, GTC, OPG
OutsideRthbool空值省略无;是否允许盘前盘后
OrderLegs[]OrderLegRequest空值省略无;附加订单(止盈/止损)
AlgoParams*AlgoParamsRequest空值省略无;算法参数
Symbolstring条件必填空值省略标的代码;普通单必填,多腿单由 ContractLegs 提供各腿合约
SecTypestring空值省略合约类型;可选值:STK, OPT, WAR, IOPT, FUT, FOP, CASH, MLEG, FUND
Marketstring空值省略无;市场;可选值:ALL, US, HK, CN, SG
Currencystring空值省略无;货币;可选值:ALL, USD, HKD, CNH, SGD
Expirystring空值省略无;到期日(期权/期货)
Strikestring空值省略无;行权价(期权)
Rightstring空值省略无;看涨/看跌(PUT/CALL);可选值:PUT, CALL (option side); br, nr when used as quote adjustment
Identifierstring空值省略无;合约标识符
Remarkstring空值省略无;备注
UserMarkstring空值省略无;用户标记
SecretKeystring空值省略无;机构账户鉴权 Secret Key
DisplaySizeint64空值省略无;冰山单:展示数量
MinDisplaySizeint64空值省略无;冰山单:最小展示数量(缺省等于 display_size);冰山单缺省等于 DisplaySize
CheckIntervalsint64空值省略无;冰山单:价检间隔(秒,默认 30);冰山单默认 30 秒
PriceTypestring空值省略无;冰山单:价格类型(LIMIT_PRICE / ASK_PRICE / BID_PRICE / LATEST_PRICE,默认 LIMIT_PRICE);可选值:LIMIT_PRICE, ASK_PRICE, BID_PRICE, LATEST_PRICE;冰山单默认 LIMIT_PRICE
StartTimeint64空值省略无;冰山单:生效开始时间(epoch ms,可选)
EndTimeint64空值省略无;冰山单:生效结束时间(epoch ms,可选)
ExpireTimeint64零值省略GTD 到期时间,毫秒时间戳
AfterHoursPricefloat64零值省略盘后委托价格
BatchNoint64零值省略批次号
SegTypestring空值省略资金类型
Amountfloat64零值省略按金额下单的委托金额
IsQuantityByAmount*boolnil 时省略已废弃;新代码直接设置 Amount
AllocAccounts[]string空值省略机构账户分配列表
AllocShares[]float64空值省略各账户分配份额,与 AllocAccounts 按索引对应
Sourcestring空值省略下单来源
Channelstring空值省略下单渠道
VirtualOrderTypestring空值省略虚拟订单类型
VirtualIdstring空值省略虚拟订单 ID
ProfitTakerOrderIdint64零值省略止盈订单 ID
StopLossOrderIdint64零值省略止损订单 ID
LocalNostring空值省略本地流水号
OcaOrders[]*OrderRequest空值省略OCA 订单组
ContractLegs[]ContractLegRequest空值省略多腿期权各腿
ComboTypestring空值省略组合类型
OrderLegRequest 字段类型说明
LegTypestring附加订单类型(PROFIT/LOSS)
Pricefloat64附加订单价格
TimeInForcestring有效期
Quantityint64数量
AlgoParamsRequest 字段类型说明
AlgoStrategystring算法策略(TWAP/VWAP)
StartTimestring开始时间
EndTimestring结束时间
ParticipationRatefloat64参与率
ContractLegRequest 字段类型说明
Symbolstring标的代码
SecTypestring证券类型
Expirystring到期日
Strikestring行权价
Rightstring期权方向
Actionstring买卖方向
Ratio*int可空的腿比例

返回

(*model.PlaceOrderResult, error)。关键字段来自 model.PlaceOrderResult

字段类型说明
IDint64订单 ID
OrderIDint64订单号
SubIDs[]int64子订单 ID 列表
Orders[]Order订单列表
Orders 中的 Order 字段类型说明
Accountstring账户 ID
IDint64全局订单 ID
OrderIdint64账户订单号
Actionstring买卖方向
OrderTypestring订单类型
TotalQuantityint64委托数量
LimitPricefloat64限价
AuxPricefloat64辅助价格
TrailingPercentfloat64跟踪止损百分比
Statusstring订单状态
FilledQuantityint64成交数量
AvgFillPricefloat64成交均价
TimeInForcestring有效期
OutsideRthbool是否允许盘前盘后
OrderLegs[]OrderLeg附加订单
AlgoParams*AlgoParams算法参数
Symbolstring标的代码
SecTypestring证券类型
Marketstring市场
Currencystring币种
Expirystring到期日
Strikestring行权价
Rightstring期权方向
Identifierstring合约标识符
Namestring合约名称
Commissionfloat64佣金
RealizedPnlfloat64已实现盈亏
OpenTimeint64开仓时间,毫秒时间戳
UpdateTimeint64更新时间,毫秒时间戳
LatestTimeint64最新时间,毫秒时间戳
Remarkstring备注
Sourcestring订单来源
UserMarkstring用户标记
ExternalIdstring外部 ID
TotalQuantityScaleint委托数量精度
FilledQuantityScaleint成交数量精度
FilledCashAmountfloat64成交现金金额
Gstfloat64GST
Liquidationbool是否为强平订单
AttrDescstring属性说明
AttrList[]string属性列表
AlgoStrategystring算法策略
Discountfloat64折扣
ReplaceStatusstring改单状态
CancelStatusstring撤单状态
CanModifybool是否可修改
CanCancelbool是否可撤销
IsOpenbool是否为未完成订单
OrderDiscountfloat64订单折扣
TradingSessionTypestring交易时段类型
LatestPricefloat64最新价
DisplaySizeint64冰山单展示数量
MinDisplaySizeint64冰山单最小展示数量
CheckIntervalsint64冰山单价检间隔,秒
PriceTypestring冰山单价格类型
StartTimeint64生效开始时间,毫秒时间戳
EndTimeint64生效结束时间,毫秒时间戳
OrderLegs 中的 OrderLeg 字段类型说明
LegTypestring附加订单类型
Pricefloat64价格
TimeInForcestring有效期
Quantityint64数量
AlgoParams 字段类型说明
AlgoStrategystring算法策略
StartTimestring开始时间
EndTimestring结束时间
ParticipationRatefloat64参与率

返回订单 ID 只表示下单请求已提交。请继续查询订单以确认最终状态。

示例

result, err := tc.PlaceOrder(model.OrderRequest{
	Account: "U123456",
	Symbol: "AAPL",
	SecType: "STK",
	Action: "BUY",
	OrderType: "LMT",
	TotalQuantity: 1,
	LimitPrice: 310.00,
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)

返回示例

{
  "id": 123456789,
  "order_id": 100001,
  "subIds": [123456790],
  "orders": [
    {
      "id": 123456789,
      "orderId": 100001,
      "account": "U123456",
      "symbol": "AAPL",
      "secType": "STK",
      "action": "BUY",
      "orderType": "LMT",
      "limitPrice": 310.00,
      "totalQuantity": 1,
      "filledQuantity": 0,
      "status": "Initial"
    }
  ]
}

调用频率

基础限流为 120 次/分钟


预览订单

功能说明

预览订单。

方法签名

func (c *TradeClient) PreviewOrder(order model.OrderRequest) (*model.PreviewResult, error)

需要配置中可访问的交易账户。机构账户可通过 SecretKey 鉴权。

参数

model.OrderRequest

参数类型必填默认值说明
Accountstring由客户端账户写入传入值会被客户端配置的交易账户覆盖
IDint64零值省略预览不使用
OrderIdint64空值省略无;账户自增订单号
Actionstring空值省略买卖方向;可选值:BUY, SELL
OrderTypestring空值省略订单类型;可选值:MKT, LMT, STP, STP_LMT, TRAIL, AM, AL, TWAP, VWAP, OCA, ICEBERG
TotalQuantityint64条件必填零值省略总数量;按数量预览时必填,按金额预览时使用 Amount
LimitPricefloat64条件必填零值省略限价类订单必填
AuxPricefloat64条件必填零值省略止损类订单的辅助价格
TrailingPercentfloat64空值省略无;跟踪止损百分比
TimeInForcestring空值省略无;有效期(DAY/GTC/OPG);可选值:DAY, GTC, OPG
OutsideRthbool空值省略无;是否允许盘前盘后
OrderLegs[]OrderLegRequest空值省略无;附加订单(止盈/止损)
AlgoParams*AlgoParamsRequest空值省略无;算法参数
Symbolstring条件必填空值省略标的代码;普通单必填,多腿单由 ContractLegs 提供各腿合约
SecTypestring空值省略合约类型;可选值:STK, OPT, WAR, IOPT, FUT, FOP, CASH, MLEG, FUND
Marketstring空值省略无;市场;可选值:ALL, US, HK, CN, SG
Currencystring空值省略无;货币;可选值:ALL, USD, HKD, CNH, SGD
Expirystring空值省略无;到期日(期权/期货)
Strikestring空值省略无;行权价(期权)
Rightstring空值省略无;看涨/看跌(PUT/CALL);可选值:PUT, CALL (option side); br, nr when used as quote adjustment
Identifierstring空值省略无;合约标识符
Remarkstring空值省略无;备注
UserMarkstring空值省略无;用户标记
SecretKeystring空值省略无;机构账户鉴权 Secret Key
DisplaySizeint64空值省略无;冰山单:展示数量
MinDisplaySizeint64空值省略无;冰山单:最小展示数量(缺省等于 display_size);冰山单缺省等于 DisplaySize
CheckIntervalsint64空值省略无;冰山单:价检间隔(秒,默认 30);冰山单默认 30 秒
PriceTypestring空值省略无;冰山单:价格类型(LIMIT_PRICE / ASK_PRICE / BID_PRICE / LATEST_PRICE,默认 LIMIT_PRICE);可选值:LIMIT_PRICE, ASK_PRICE, BID_PRICE, LATEST_PRICE;冰山单默认 LIMIT_PRICE
StartTimeint64空值省略无;冰山单:生效开始时间(epoch ms,可选)
EndTimeint64空值省略无;冰山单:生效结束时间(epoch ms,可选)
ExpireTimeint64零值省略GTD 到期时间,毫秒时间戳
AfterHoursPricefloat64零值省略盘后委托价格
BatchNoint64零值省略批次号
SegTypestring空值省略资金类型(CASH / MARGIN)
Amountfloat64零值省略按金额下单的委托金额
IsQuantityByAmount*boolnil 时省略已废弃;新代码直接设置 Amount
AllocAccounts[]string空值省略机构账户分配列表
AllocShares[]float64空值省略各账户分配份额,与 AllocAccounts 按索引对应
Sourcestring空值省略下单来源
Channelstring空值省略下单渠道
VirtualOrderTypestring空值省略虚拟订单类型
VirtualIdstring空值省略虚拟订单 ID
ProfitTakerOrderIdint64零值省略止盈订单 ID
StopLossOrderIdint64零值省略止损订单 ID
LocalNostring空值省略本地流水号
OcaOrders[]*OrderRequest空值省略OCA 订单组
ContractLegs[]ContractLegRequest空值省略多腿期权各腿
ComboTypestring空值省略组合类型

OrderLegRequest 字段

字段类型必填默认/省略行为说明
LegTypestring空值时省略附加订单类型
Pricefloat64零值时省略附加订单价格
TimeInForcestring空值时省略有效期
Quantityint64零值时省略数量

AlgoParamsRequest 字段

字段类型必填默认/省略行为说明
AlgoStrategystring空值时省略算法策略
StartTimestring空值时省略算法订单开始时间
EndTimestring空值时省略算法订单结束时间
ParticipationRatefloat64零值时省略参与率

ContractLegRequest 字段

字段类型必填默认/省略行为说明
Symbolstring空值时省略标的代码
SecTypestring空值时省略证券类型
Expirystring空值时省略到期日
Strikestring空值时省略行权价
Rightstring空值时省略期权方向
Actionstring空值时省略买卖方向
Ratio*intnil 时省略多腿订单腿数比例

OcaOrders 中的每一项均使用上方 OrderRequest 模型,不重复展开同一组字段。

返回

(*model.PreviewResult, error)。关键字段来自 model.PreviewResult

字段类型说明
Accountstring账户 ID
IsPassbool是否通过风控校验
Commissionfloat64预估佣金
CommissionCurrencystring佣金币种
MarginCurrencystring保证金币种
InitMarginfloat64初始保证金(下单后)
InitMarginBeforefloat64初始保证金(下单前)
MaintMarginfloat64维持保证金(下单后)
MaintMarginBeforefloat64维持保证金(下单前)
EquityWithLoanfloat64含贷款权益(下单后)
EquityWithLoanBeforefloat64含贷款权益(下单前)
AvailableEEfloat64假设订单成交后的可用剩余资产,币种见 MarginCurrency
ExcessLiquidityfloat64假设订单成交后的剩余流动性,币种见 MarginCurrency
OvernightLiquidationfloat64假设订单成交后的隔夜剩余流动性,币种见 MarginCurrency
Gstfloat64GST
Messagestring预览结果消息

这些字段在不适用的账户或场景下可能不返回。Go 模型使用非指针 float64,因此缺失值与明确返回的 0 都表现为 0

示例

result, err := tc.PreviewOrder(model.OrderRequest{
	Account: "U123456",
	Symbol: "AAPL",
	SecType: "STK",
	Action: "BUY",
	OrderType: "LMT",
	TotalQuantity: 1,
	LimitPrice: 310.00,
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)

返回示例

{
  "account": "U123456",
  "isPass": true,
  "commission": 0.99,
  "commissionCurrency": "USD",
  "marginCurrency": "USD",
  "initMargin": 31000.00,
  "initMarginBefore": 30000.00,
  "maintMargin": 28000.00,
  "maintMarginBefore": 27000.00,
  "equityWithLoan": 100000.00,
  "equityWithLoanBefore": 100500.00,
  "availableEE": 69000.00,
  "excessLiquidity": 72000.00,
  "overnightLiquidation": 71000.00,
  "gst": 0.00,
  "message": ""
}

改单

功能说明

修改订单。

方法签名

func (c *TradeClient) ModifyOrder(id int64, order model.OrderRequest) (*model.OrderIDResult, error)

需要配置中可访问的交易账户。机构账户可通过 SecretKey 鉴权。

参数

model.OrderRequest

参数类型必填默认值说明
Accountstring由客户端账户写入传入值会被客户端配置的交易账户覆盖
IDint64id 参数写入无需在 order 中重复设置;传入结构体中的值会被覆盖
OrderIdint64空值省略无;账户自增订单号
Actionstring空值省略无;买卖方向(BUY/SELL);可选值:BUY, SELL
OrderTypestring空值省略无;订单类型(MKT/LMT/STP/STP_LMT/TRAIL 等);可选值:MKT, LMT, STP, STP_LMT, TRAIL, AM, AL, TWAP, VWAP, OCA, ICEBERG
TotalQuantityint64空值省略无;总数量
LimitPricefloat64空值省略无;限价
AuxPricefloat64空值省略无;辅助价格(止损价)
TrailingPercentfloat64空值省略无;跟踪止损百分比
TimeInForcestring空值省略无;有效期(DAY/GTC/OPG);可选值:DAY, GTC, OPG
OutsideRthbool空值省略无;是否允许盘前盘后
OrderLegs[]OrderLegRequest空值省略无;附加订单(止盈/止损)
AlgoParams*AlgoParamsRequest空值省略无;算法参数
Symbolstring空值省略无;股票代码
SecTypestring空值省略无;合约类型;可选值:ALL, STK, OPT, WAR, IOPT, FUT, FOP, CASH, MLEG, FUND
Marketstring空值省略无;市场;可选值:ALL, US, HK, CN, SG
Currencystring空值省略无;货币;可选值:ALL, USD, HKD, CNH, SGD
Expirystring空值省略无;到期日(期权/期货)
Strikestring空值省略无;行权价(期权)
Rightstring空值省略无;看涨/看跌(PUT/CALL);可选值:PUT, CALL (option side); br, nr when used as quote adjustment
Identifierstring空值省略无;合约标识符
Remarkstring空值省略无;备注
UserMarkstring空值省略无;用户标记
SecretKeystring空值省略无;机构账户鉴权 Secret Key
DisplaySizeint64空值省略无;冰山单:展示数量
MinDisplaySizeint64空值省略无;冰山单:最小展示数量(缺省等于 display_size);冰山单缺省等于 DisplaySize
CheckIntervalsint64空值省略无;冰山单:价检间隔(秒,默认 30);冰山单默认 30 秒
PriceTypestring空值省略无;冰山单:价格类型(LIMIT_PRICE / ASK_PRICE / BID_PRICE / LATEST_PRICE,默认 LIMIT_PRICE);可选值:LIMIT_PRICE, ASK_PRICE, BID_PRICE, LATEST_PRICE;冰山单默认 LIMIT_PRICE
StartTimeint64空值省略无;冰山单:生效开始时间(epoch ms,可选)
EndTimeint64空值省略无;冰山单:生效结束时间(epoch ms,可选)
ExpireTimeint64零值省略GTD 到期时间,毫秒时间戳
AfterHoursPricefloat64零值省略盘后委托价格
BatchNoint64零值省略批次号
SegTypestring空值省略资金类型(CASH / MARGIN)
Amountfloat64零值省略按金额下单的委托金额
IsQuantityByAmount*boolnil 时省略已废弃;新代码直接设置 Amount
AllocAccounts[]string空值省略机构账户分配列表
AllocShares[]float64空值省略各账户分配份额,与 AllocAccounts 按索引对应
Sourcestring空值省略下单来源
Channelstring空值省略下单渠道
VirtualOrderTypestring空值省略虚拟订单类型
VirtualIdstring空值省略虚拟订单 ID
ProfitTakerOrderIdint64零值省略止盈订单 ID
StopLossOrderIdint64零值省略止损订单 ID
LocalNostring空值省略本地流水号
OcaOrders[]*OrderRequest空值省略OCA 订单组
ContractLegs[]ContractLegRequest空值省略多腿期权各腿
ComboTypestring空值省略组合类型
idint64无;零值仍会序列化id 字段值

OrderLegRequest 字段

字段类型必填默认/省略行为说明
LegTypestring空值时省略附加订单类型
Pricefloat64零值时省略附加订单价格
TimeInForcestring空值时省略有效期
Quantityint64零值时省略数量

AlgoParamsRequest 字段

字段类型必填默认/省略行为说明
AlgoStrategystring空值时省略算法策略
StartTimestring空值时省略算法订单开始时间
EndTimestring空值时省略算法订单结束时间
ParticipationRatefloat64零值时省略参与率

ContractLegRequest 字段

字段类型必填默认/省略行为说明
Symbolstring空值时省略标的代码
SecTypestring空值时省略证券类型
Expirystring空值时省略到期日
Strikestring空值时省略行权价
Rightstring空值时省略期权方向
Actionstring空值时省略买卖方向
Ratio*intnil 时省略多腿订单腿数比例

OcaOrders 中的每一项均使用上方 OrderRequest 模型,不重复展开同一组字段。

返回

(*model.OrderIDResult, error)。关键字段来自 model.OrderIDResult

字段类型说明
IDint64订单 ID

返回订单 ID 只表示改单请求已提交,不表示新参数已经生效。请继续查询订单;只有查询结果确认新参数已生效或订单进入最终状态,才可判定改单完成。

示例

result, err := tc.ModifyOrder(123456789, model.OrderRequest{
	Account: "U123456",
	ID: 1,
	Action: "BUY",
	OrderType: "LMT",
	TotalQuantity: 1,
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)

返回示例

{
  "id": 123456789
}

调用频率

基础限流为 120 次/分钟


撤单

功能说明

取消订单。

方法签名

func (c *TradeClient) CancelOrder(id int64) (*model.OrderIDResult, error)

需要配置中可访问的交易账户。机构账户可通过 SecretKey 鉴权。

参数

参数类型必填SDK 默认值约束
idint64全局订单 ID

返回

(*model.OrderIDResult, error)。关键字段来自 model.OrderIDResult

字段类型说明
IDint64订单 ID

返回订单 ID 只表示撤单请求已提交。请继续查询订单,直到 StatusCancelled,或订单因抢先成交等原因进入其他最终状态;不要把请求受理当作撤单完成。

示例

result, err := tc.CancelOrder(123456789)
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)

返回示例

{
  "id": 123456789
}

调用频率

基础限流为 120 次/分钟


预估可交易数量

功能说明

估算可交易数量。 客户端会空账户字段由客户端填入默认账户。

方法签名

func (c *TradeClient) EstimateTradableQuantity(req model.EstimateTradableQuantityRequest) (*model.EstimateTradableQuantity, error)

需要配置中可访问的交易账户。机构账户可通过 SecretKey 鉴权。

参数

model.EstimateTradableQuantityRequest

参数类型必填默认值说明
Accountstring空值时使用客户端默认账户交易账户 ID
SecretKeystring空值时使用客户端配置机构账户鉴权密钥
Symbolstring空值省略标的代码
SecTypestring空值省略证券类型;可选值:STK, OPT, WAR, IOPT, FUT, FOP, CASH, MLEG, FUND
Actionstring空值省略买卖方向;可选值:BUY, SELL
OrderTypestring空值省略订单类型;可选值:MKT, LMT, STP, STP_LMT, TRAIL, AM, AL, TWAP, VWAP, OCA, ICEBERG
LimitPricefloat64条件必填零值省略限价类订单使用的价格
StopPricefloat64条件必填零值省略止损类订单使用的触发价
Expirystring条件必填空值省略期权或期货到期日
Strikestring条件必填空值省略期权行权价
Rightstring条件必填空值省略期权方向;可选值:PUT, CALL
SegTypestring空值省略资金分段;可选值:ALL, SEC, FUT, FUND
Langstring空值省略可选值:zh_CN, zh_TW, en_US

返回

(*model.EstimateTradableQuantity, error)。关键字段来自 model.EstimateTradableQuantity

字段类型说明
TradableQuantityfloat64可交易数量
MaxCashBuyQuantityfloat64最大现金买入数量
MaxMarginBuyQuantityfloat64最大融资买入数量
MaxShortSellQuantityfloat64最大融券卖出数量
MaxPositionSellQuantityfloat64最大持仓卖出数量
CashBuyingPowerfloat64现金购买力
Currencystring币种

示例

result, err := tc.EstimateTradableQuantity(model.EstimateTradableQuantityRequest{
	Account: "U123456",
	Symbol: "AAPL",
	SecType: "STK",
	Action: "BUY",
	OrderType: "MKT",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)

返回示例

{
  "tradableQuantity": 320,
  "maxCashBuyQuantity": 100,
  "maxMarginBuyQuantity": 320,
  "maxShortSellQuantity": 0,
  "maxPositionSellQuantity": 0,
  "cashBuyingPower": 31000.00,
  "currency": "USD"
}

调用频率

基础限流为 60 次/分钟



Did this page help you?