合约查询
获取合约
功能说明
查询单个合约。 方法签名
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 |
示例
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"
}获取合约(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 |
示例
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
}批量获取合约
功能说明
批量查询合约。 方法签名
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 |
示例
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"
}
]获取行情合约
功能说明
查询衍生品合约(期权/认股/牛熊)。 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 |
示例
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
}获取衍生品合约
功能说明
查询衍生品合约列表。注意: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 |
返回
([]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 |
示例
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"
}
]Updated 8 days ago
