合约查询
获取合约
功能说明
查询单个合约。 方法签名
func (c *TradeClient) Contract(symbol, secType string) ([]model.Contract, error)需要配置中可访问的交易账户。机构账户可通过 SecretKey 鉴权。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbol | string | 是 | 无 | 标的代码 |
secType | string | 是 | 无 | 证券类型;见 SecurityType 枚举 |
返回
([]model.Contract, error)。关键字段来自 model.Contract:
| 字段 | 类型 | 说明 |
|---|---|---|
| ContractId | int64 | 合约 ID |
| Symbol | string | 标的代码 |
| SecType | string | 证券类型 |
| Currency | string | 币种 |
| Exchange | string | 交易所 |
| Expiry | string | 到期日 |
| Strike | float64 | 行权价 |
| Right | string | 期权方向 |
| Multiplier | float64 | 合约乘数 |
| Identifier | string | 标识符 |
| Name | string | 名称 |
| Market | string | 市场 |
| Tradeable | bool | 是否可交易 |
| Conid | int64 | 合约内部 ID |
| ShortMargin | float64 | 做空保证金比例 |
| ShortInitialMargin | float64 | 做空初始保证金比例 |
| ShortMaintenanceMargin | float64 | 做空维持保证金比例 |
| LongInitialMargin | float64 | 做多初始保证金 |
| LongMaintenanceMargin | float64 | 做多维持保证金 |
| TickSizes | []TickSize | 最小报价单位价格区间 |
| LotSize | float64 | 每手数量 |
| PrimaryExchange | string | 主要交易所 |
| LocalSymbol | string | 本地代码 |
| TradingClass | string | 交易类别 |
| Status | int | 状态 |
| Marginable | bool | 是否可融资 |
| Shortable | bool | 是否可卖空 |
| CloseOnly | bool | 是否仅可平仓 |
| IsEtf | bool | 是否为 ETF |
| SupportOvernightTrading | bool | 是否支持隔夜交易 |
| SupportFractionalShare | bool | 是否支持碎股 |
TickSize 字段 | 类型 | 说明 |
|---|---|---|
| Begin | string | 区间起点 |
| End | string | 区间终点,可为 Infinity |
| TickSize | float64 | 最小报价单位 |
| Type | string | 区间类型(CLOSED/OPEN) |
示例
result, err := tc.Contract("AAPL", "STK")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%#v\n", result)返回示例
{
"symbol": "AAPL",
"name": "Apple Inc",
"secType": "STK",
"exchange": "NASDAQ",
"market": "US",
"currency": "USD",
"lotSize": 1,
"minTick": 0.01,
"contractId": 756733,
"status": "NORMAL"
}调用频率
基础限流为 60 次/分钟。Contract 与 Contract3 均使用 contract,共享此额度。
获取合约(v3)
功能说明
查询单个合约(version 3.0,服务端直接返回单个对象)。 客户端会使用显式 API 版本。
方法签名
func (c *TradeClient) Contract3(symbol, secType string) (*model.Contract, error)需要配置中可访问的交易账户。机构账户可通过 SecretKey 鉴权。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbol | string | 是 | 无 | 标的代码 |
secType | string | 是 | 无 | 证券类型;见 SecurityType 枚举 |
返回
(*model.Contract, error)。关键字段来自 model.Contract:
| 字段 | 类型 | 说明 |
|---|---|---|
| ContractId | int64 | 合约 ID |
| Symbol | string | 标的代码 |
| SecType | string | 证券类型 |
| Currency | string | 币种 |
| Exchange | string | 交易所 |
| Expiry | string | 到期日 |
| Strike | float64 | 行权价 |
| Right | string | 期权方向 |
| Multiplier | float64 | 合约乘数 |
| Identifier | string | 标识符 |
| Name | string | 名称 |
| Market | string | 市场 |
| Tradeable | bool | 是否可交易 |
| Conid | int64 | 合约内部 ID |
| ShortMargin | float64 | 做空保证金比例 |
| ShortInitialMargin | float64 | 做空初始保证金比例 |
| ShortMaintenanceMargin | float64 | 做空维持保证金比例 |
| LongInitialMargin | float64 | 做多初始保证金 |
| LongMaintenanceMargin | float64 | 做多维持保证金 |
| TickSizes | []TickSize | 最小报价单位价格区间 |
| LotSize | float64 | 每手数量 |
| PrimaryExchange | string | 主要交易所 |
| LocalSymbol | string | 本地代码 |
| TradingClass | string | 交易类别 |
| Status | int | 状态 |
| Marginable | bool | 是否可融资 |
| Shortable | bool | 是否可卖空 |
| CloseOnly | bool | 是否仅可平仓 |
| IsEtf | bool | 是否为 ETF |
| SupportOvernightTrading | bool | 是否支持隔夜交易 |
| SupportFractionalShare | bool | 是否支持碎股 |
TickSize 字段
| 字段 | 类型 | 说明 |
|---|---|---|
Begin | string | Begin 字段值 |
End | string | End 字段值 |
TickSize | float64 | TickSize 字段值 |
Type | string | 区间类型(CLOSED/OPEN) |
示例
result, err := tc.Contract3("AAPL", "STK")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%#v\n", result)返回示例
{
"symbol": "AAPL",
"name": "Apple Inc",
"secType": "STK",
"exchange": "NASDAQ",
"market": "US",
"currency": "USD",
"lotSize": 1,
"minTick": 0.01,
"contractId": 756733,
"status": "NORMAL",
"shortableCount": 1500000,
"marginable": true
}调用频率
基础限流为 60 次/分钟。Contract 与 Contract3 均使用 contract,共享此额度。
批量获取合约
功能说明
批量查询合约。 方法签名
func (c *TradeClient) Contracts(symbols []string, secType string) ([]model.Contract, error)需要配置中可访问的交易账户。机构账户可通过 SecretKey 鉴权。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbols | []string | 是 | 无 | 标的代码列表;SDK 不设置批量上限 |
secType | string | 是 | 无 | 证券类型;见 SecurityType 枚举 |
返回
([]model.Contract, error)。关键字段来自 model.Contract:
| 字段 | 类型 | 说明 |
|---|---|---|
| ContractId | int64 | 合约 ID |
| Symbol | string | 标的代码 |
| SecType | string | 证券类型 |
| Currency | string | 币种 |
| Exchange | string | 交易所 |
| Expiry | string | 到期日 |
| Strike | float64 | 行权价 |
| Right | string | 期权方向 |
| Multiplier | float64 | 合约乘数 |
| Identifier | string | 标识符 |
| Name | string | 名称 |
| Market | string | 市场 |
| Tradeable | bool | 是否可交易 |
| Conid | int64 | 合约内部 ID |
| ShortMargin | float64 | 做空保证金比例 |
| ShortInitialMargin | float64 | 做空初始保证金比例 |
| ShortMaintenanceMargin | float64 | 做空维持保证金比例 |
| LongInitialMargin | float64 | 做多初始保证金 |
| LongMaintenanceMargin | float64 | 做多维持保证金 |
| TickSizes | []TickSize | 最小报价单位价格区间 |
| LotSize | float64 | 每手数量 |
| PrimaryExchange | string | 主要交易所 |
| LocalSymbol | string | 本地代码 |
| TradingClass | string | 交易类别 |
| Status | int | 状态 |
| Marginable | bool | 是否可融资 |
| Shortable | bool | 是否可卖空 |
| CloseOnly | bool | 是否仅可平仓 |
| IsEtf | bool | 是否为 ETF |
| SupportOvernightTrading | bool | 是否支持隔夜交易 |
| SupportFractionalShare | bool | 是否支持碎股 |
TickSize 字段
| 字段 | 类型 | 说明 |
|---|---|---|
Begin | string | Begin 字段值 |
End | string | End 字段值 |
TickSize | float64 | TickSize 字段值 |
Type | string | 区间类型(CLOSED/OPEN) |
示例
result, err := tc.Contracts([]string{"AAPL"}, "STK")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%#v\n", result)返回示例
[
{
"symbol": "AAPL",
"name": "Apple Inc",
"secType": "STK",
"exchange": "NASDAQ",
"market": "US",
"currency": "USD",
"lotSize": 1,
"minTick": 0.01,
"contractId": 756733,
"status": "NORMAL"
},
{
"symbol": "MSFT",
"name": "Microsoft Corp",
"secType": "STK",
"exchange": "NASDAQ",
"market": "US",
"currency": "USD",
"lotSize": 1,
"minTick": 0.01,
"contractId": 756734,
"status": "NORMAL"
}
]调用频率
基础限流为 60 次/分钟。QuoteContract 与 DerivativeContracts 均使用 quote_contract,共享此额度。
获取行情合约
功能说明
查询衍生品合约(期权/认股/牛熊)。 secType 必须是 OPT/WAR/IOPT; symbol 是标的代码; expiry 是到期日(如 "20260619")。 这里只返回 items。 方法签名
func (c *TradeClient) QuoteContract(symbol, secType, expiry string) ([]model.Contract, error)需要配置中可访问的交易账户。机构账户可通过 SecretKey 鉴权。
参数
| 参数 | 类型 | 必填 | SDK 默认值 | 约束 |
|---|---|---|---|---|
symbol | string | 是 | 无 | 标的代码 |
secType | string | 是 | 无 | 证券类型;见 SecurityType 枚举 |
expiry | string | 是 | 无 | 到期日,格式为 YYYYMMDD |
返回
([]model.Contract, error)。关键字段来自 model.Contract:
| 字段 | 类型 | 说明 |
|---|---|---|
| ContractId | int64 | 合约 ID |
| Symbol | string | 标的代码 |
| SecType | string | 证券类型 |
| Currency | string | 币种 |
| Exchange | string | 交易所 |
| Expiry | string | 到期日 |
| Strike | float64 | 行权价 |
| Right | string | 期权方向 |
| Multiplier | float64 | 合约乘数 |
| Identifier | string | 标识符 |
| Name | string | 名称 |
| Market | string | 市场 |
| Tradeable | bool | 是否可交易 |
| Conid | int64 | 合约内部 ID |
| ShortMargin | float64 | 做空保证金比例 |
| ShortInitialMargin | float64 | 做空初始保证金比例 |
| ShortMaintenanceMargin | float64 | 做空维持保证金比例 |
| LongInitialMargin | float64 | 做多初始保证金 |
| LongMaintenanceMargin | float64 | 做多维持保证金 |
| TickSizes | []TickSize | 最小报价单位价格区间 |
| LotSize | float64 | 每手数量 |
| PrimaryExchange | string | 主要交易所 |
| LocalSymbol | string | 本地代码 |
| TradingClass | string | 交易类别 |
| Status | int | 状态 |
| Marginable | bool | 是否可融资 |
| Shortable | bool | 是否可卖空 |
| CloseOnly | bool | 是否仅可平仓 |
| IsEtf | bool | 是否为 ETF |
| SupportOvernightTrading | bool | 是否支持隔夜交易 |
| SupportFractionalShare | bool | 是否支持碎股 |
TickSize 字段
| 字段 | 类型 | 说明 |
|---|---|---|
Begin | string | Begin 字段值 |
End | string | End 字段值 |
TickSize | float64 | TickSize 字段值 |
Type | string | 区间类型(CLOSED/OPEN) |
示例
result, err := tc.QuoteContract("AAPL", "STK", "20260619")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%#v\n", result)返回示例
{
"symbol": "AAPL",
"name": "Apple Inc",
"secType": "STK",
"exchange": "NASDAQ",
"market": "US",
"currency": "USD",
"lotSize": 1,
"minTick": 0.01
}调用频率
基础限流为 60 次/分钟。QuoteContract 与 DerivativeContracts 均使用 quote_contract,共享此额度。
获取衍生品合约
功能说明
查询衍生品合约列表。注意:Python get_derivative_contracts 与 get_contract(secType=OPT/WAR/IOPT) 用同一 wire 方法。 方法签名
func (c *TradeClient) DerivativeContracts(req model.DerivativeContractsRequest) ([]model.Contract, error)需要配置中可访问的交易账户。机构账户可通过 SecretKey 鉴权。
参数
model.DerivativeContractsRequest
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
SecType | string | 否 | 空值省略 | 无;可选值:ALL, STK, OPT, WAR, IOPT, FUT, FOP, CASH, MLEG, FUND |
Lang | string | 否 | 空值省略 | 无;可选值:zh_CN, zh_TW, en_US |
Account | string | 否 | 空值时使用客户端默认账户 | 交易账户;留空时使用客户端默认账户 |
SecretKey | string | 否 | 空值时可使用客户端配置 | 机构账户鉴权密钥;客户端已配置时可自动填充 |
Symbols | []string | 否 | 空集合时省略 | 标的代码列表 |
Expiry | string | 否 | 空值时省略 | Expiry 字段值 |
返回
([]model.Contract, error)。关键字段来自 model.Contract:
| 字段 | 类型 | 说明 |
|---|---|---|
| ContractId | int64 | 合约 ID |
| Symbol | string | 标的代码 |
| SecType | string | 证券类型 |
| Currency | string | 币种 |
| Exchange | string | 交易所 |
| Expiry | string | 到期日 |
| Strike | float64 | 行权价 |
| Right | string | 期权方向 |
| Multiplier | float64 | 合约乘数 |
| Identifier | string | 标识符 |
| Name | string | 名称 |
| Market | string | 市场 |
| Tradeable | bool | 是否可交易 |
| Conid | int64 | 合约内部 ID |
| ShortMargin | float64 | 做空保证金比例 |
| ShortInitialMargin | float64 | 做空初始保证金比例 |
| ShortMaintenanceMargin | float64 | 做空维持保证金比例 |
| LongInitialMargin | float64 | 做多初始保证金 |
| LongMaintenanceMargin | float64 | 做多维持保证金 |
| TickSizes | []TickSize | 最小报价单位价格区间 |
| LotSize | float64 | 每手数量 |
| PrimaryExchange | string | 主要交易所 |
| LocalSymbol | string | 本地代码 |
| TradingClass | string | 交易类别 |
| Status | int | 状态 |
| Marginable | bool | 是否可融资 |
| Shortable | bool | 是否可卖空 |
| CloseOnly | bool | 是否仅可平仓 |
| IsEtf | bool | 是否为 ETF |
| SupportOvernightTrading | bool | 是否支持隔夜交易 |
| SupportFractionalShare | bool | 是否支持碎股 |
TickSize 字段
| 字段 | 类型 | 说明 |
|---|---|---|
Begin | string | Begin 字段值 |
End | string | End 字段值 |
TickSize | float64 | TickSize 字段值 |
Type | string | 区间类型(CLOSED/OPEN) |
示例
result, err := tc.DerivativeContracts(model.DerivativeContractsRequest{
Account: "U123456",
Symbols: []string{"AAPL"},
SecType: "STK",
Expiry: "20260619",
Lang: "en_US",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%#v\n", result)返回示例
[
{
"symbol": "AAPL 250815C00300000",
"name": "AAPL 15AUG25 300 C",
"secType": "OPT",
"exchange": "CBOE",
"market": "US",
"currency": "USD",
"expiry": "2025-08-15",
"strike": 300.0,
"right": "CALL",
"multiplier": 100.0,
"underlying": "AAPL"
}
]调用频率
基础限流为 60 次/分钟。
Updated about 22 hours ago
