获取合约
合约介绍
合约是指交易的买卖对象或者标的物(比如一只股票或一只期权),合约是由交易所统一制定的。比如购买老虎证券的股票,可以通过TIGR这个字母代号和市场信息(即market=’US‘,美国市场)来唯一标识。类似的,在购买期权或者期货产品时,可能会需要用到其他一些标识字段。
通过合约信息,我们在下单或者获取行情时就可以唯一的确定一个标的物。
常见的合约包括股票合约,期权合约,期货合约等。
大部分合约包括如下几个要素:
- 标的代码(symbol),一般美股、英股等合约代码都是英文字母,港股、A股等合约代码是数字,比如老虎证券的symbol是TIGR。
- 合约类型(security type),常见合约类型包括:STK(股票),OPT(期权),FUT(期货),CASH(外汇),比如老虎证券股票的合约类型是STK。
- 货币类型(currency),常见货币包括 USD(美元),HKD(港币)。
- 交易所(exchange),STK类型的合约一般不会用到交易所字段,订单会自动路由,期货合约都用到交易所字段。
绝大多数股票,差价合约,指数或外汇对可以通过这四个属性来唯一确定。
由于其性质,更复杂的合约(如期权和期货)需要一些额外的信息。
以下是几种常见类型合约,以及其由哪些要素构成。
股票
ContractItem contract = new ContractItem();
contract.Symbol ="TIGR";
contract.SecType ="STK";
contract.Currency ="USD"; //非必填,下单时默认为USD
contract.Market = "US"; //非必填,合约市场,包括US(美国市场),HK(香港市场),CN(国内市场)等。下单时默认为US
期权
老虎API的期权合约支持两种方式:
一种是四要素方式,即symbol(股票代码),expiry(期权过期日),strike(期权行权价格),right(期权方向)。
另一种是标准OCC期权合约格式,长度固定为21位。包含四部分:
- 相关的股票或ETP的代码,比如(AAPL),固定占六位字符,不足位数由空格填充
- 期权到期日,6位数字,格式为:yymmdd
- 期权类型,取值为 P 或者 C, 表示 put 或 call
- 期权行权价格,取值为 价格 x 1000, 固定占8位数字,前面不足的位数由0填充
ContractItem contract = new ContractItem();
contract.Symbol ="AAPL";
contract.SecType ="OPT";
contract.Currency ="USD";
contract.Expiry="20180821";
contract.Strike = 30;
contract.Right ="CALL";
contract.Multiplier =100.0;
contract.Market = "US"; //非必填
期货
ContractItem contract = new ContractItem();
contract.Symbol ="CL1901";
contract.SecType ="FUT";
contract.Exchange ="SGX";
contract.Currency ="USD";
contract.Expiry="20190328";
contract.Multiplier=1.0;
获取单个合约信息
对应的请求类:TigerRequest(TradeApiService.CONTRACT)
说明
获取交易需要的合约信息。 需要注意环球账户、综合账户返回ContractItem
字段值数目会不同,建议获取合约和下单使用相同的账户。
参数
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | string | Yes | 用户授权账户:13810712 |
symbol | string | Yes | 股票代码 如:00700 / AAPL |
sec_type | string | Yes | STK/OPT/FUT |
currency | string | No | USD/HKD/CNH |
expiry | string | No | 到期日 交易品种是期权时必传 yyyyMMdd |
strike | double | No | 行权价 交易品种是期权时必传 |
right | string | No | CALL/PUT 交易品种是期权时必传 |
exchange | string | No | 交易所 (美股 SMART 港股 SEHK 沪港通 SEHKNTL 深港通 SEHKSZSE) |
secret_key | string | No | 机构用户专用,交易员密钥 |
返回TigerOpenAPI.Trade.Response.ContractResponse
source
结构如下:
namespace TigerOpenAPI.Trade.Response
{
public class ContractResponse : TigerResponse
{
[JsonProperty(PropertyName = "data")]
public ContractItem Data { get; set; }
}
}
返回数据可通过ContractResponse.Data
属性访问,返回ContractItem
对象,其中TigerOpenAPI.Trade.Response.ContractItem
属性如下:
名称 | 示例 | 说明 |
---|---|---|
identifier | CL2109/AAPL | 唯一标识,股票identifier和symbol相同,期权为21位标识符,如:'AAPL 220729C00150000',期货identifier |
name | K12 INC | 股票名称 |
symbol | LRN | 股票代码,期权合约的symbol为对应标的物代码 |
secType | STK | STK 股票/OPT 期权/FUT 期货/WAR 窝轮/IOPT 牛熊证等,默认 STK |
expiry | 20171117 | 期权和期货专有,期权或期货过期日 |
contractMonth | 201804 | 期货专有,合约交割月份 |
strike | 24.0 | 期权专有,期权的行权价格 |
right | PUT | 期权专有,期权方向,CALL 或者 PUT |
type | ES | 期货专有,交易品种 |
multiplier | 0.0 | 期权和期货专有,每手数量 |
exchange | NYSE | 股票交易所 |
primaryExchange | NYSE | 股票上市交易所 |
market | US | 市场 /US/HK/CN |
currency | USD | USD/HKD/CNH |
localSymbol | 1033 | 环球账户专有,港股用于识别窝轮和牛熊证 |
tradingClass | LRN | 合约的交易级别名称 |
minTick | 0.001 | 最小报价单位 |
tickSizes | [ { "begin":"0", "end":"1", "tickSize":0.0001, "type":"CLOSED" }, { "begin":"1", "end":"Infinity", "tickSize":0.01, "type":"OPEN" } ] | 股票专有,最小报价单位价格区间,即当挂单价格在begin和end区间时,要满足tickSize要求,begin:价格左区间,end:价格右区间,type:区间类型 OPEN/OPEN_CLOSED/CLOSED/CLOSED_OPEN(开区间/左开右闭/闭区间/左闭右开),tickSize:最小价格单位 |
marginable | true | 是否可融资 |
longInitialMargin | 1 | 做多初始保证金 |
longMaintenanceMargin | 1 | 做多维持保证金 |
shortInitialMargin | 0.35 | 做空初始保证金比例 |
shortMaintenanceMargin | 0.3 | 做空维持保证金比例(综合账号有值,环球账号合约没有值) |
shortable | true | 能否做空 |
shortableCount | 10000000 | 可做空数目 |
shortFeeRate | 0 | 做空费率 |
tradeable | true | 是否可交易 |
closeOnly | false | 是否只能平仓 |
continuous | false | 期货专有,是否连续合约 |
lastTradingDate | 2019-01-01 | 期货专有,最后交易日 |
firstNoticeDate | 2019-01-01 | 期货专有,第一通知日,合约在第一通知日后无法开多仓。已有的多仓会在第一通知日之前(通常为前三个交易日)被强制平仓。 |
lastBiddingCloseTime | 0 | 期货专有,竞价截止时间 |
isEtf | false | 是否是ETF |
etfLeverage | 3 | ETF杠杆倍数,仅当合约为ETF时会存在该值 |
discountedDayInitialMargin | 3069.0 | 期货专有,日内优惠初始保证金比例 |
discountedDayMaintenanceMargin | 2790.0 | 期货专有,日内优惠维持保证金比例 |
discountedTimeZoneCode | CDT | 期货专有,日内优惠时间时区 |
discountedStartAt | 17:30:00 | 期货专有,日内优惠开始时间 |
discountedEndAt | 14:30:00 | 期货专有,日内优惠结束时间 |
示例
// init trade client
TradeClient tradeClient = new TradeClient(config);
static async Task<ContractResponse?> GetContractAsync(TradeClient tradeClient)
{
// get stock contract
TigerRequest<ContractResponse> request = new TigerRequest<ContractResponse>()
{
ApiMethodName = TradeApiService.CONTRACT,
ModelValue = new ContractModel()
{
Symbol = "AAPL"
}
};
ContractResponse? response = await tradeClient.ExecuteAsync(request);
ApiLogger.Info("response:" + JsonConvert.SerializeObject(response, TigerClient.JsonSet));
// get options contract
request = new TigerRequest<ContractResponse>()
{
ApiMethodName = TradeApiService.CONTRACT,
ModelValue = new ContractModel()
{
SecType = SecType.OPT.ToString(),
Symbol = "AAPL",
Strike = 150.0,
Expiry = "20230616",
Right = Right.CALL.ToString(),
Currency = Currency.USD.ToString()
}
};
response = await tradeClient.ExecuteAsync(request);
ApiLogger.Info("options response:" + JsonConvert.SerializeObject(response, TigerClient.JsonSet));
// get warrant contract
request = new TigerRequest<ContractResponse>()
{
ApiMethodName = TradeApiService.CONTRACT,
ModelValue = new ContractModel()
{
SecType = SecType.WAR.ToString(),
Symbol = "29263",
Strike = 351.567,
Expiry = "20230330",
Right = Right.CALL.ToString()
}
};
response = await tradeClient.ExecuteAsync(request);
ApiLogger.Info("warrants response:" + JsonConvert.SerializeObject(response, TigerClient.JsonSet));
// get futures contract
request = new TigerRequest<ContractResponse>()
{
ApiMethodName = TradeApiService.CONTRACT,
ModelValue = new ContractModel()
{
SecType = SecType.FUT.ToString(),
Symbol = "JPY2306"
}
};
response = await tradeClient.ExecuteAsync(request);
ApiLogger.Info("futures response:" + JsonConvert.SerializeObject(response, TigerClient.JsonSet));
return response;
}
返回示例
response:{"data":{"identifier":"AAPL","symbol":"AAPL","secType":"STK","multiplier":1.0,"market":"US","currency":"USD","localSymbol":"AAPL","tradingClass":"AAPL","name":"Apple","tradeable":true,"marginable":true,"shortInitialMargin":0.35,"shortMaintenanceMargin":0.3,"longInitialMargin":0.3,"longMaintenanceMargin":0.25,"tickSizes":[{"begin":"0","end":"1","type":"CLOSED","tickSize":0.0001},{"begin":"1","end":"Infinity","type":"OPEN","tickSize":0.01}],"discountedDayInitialMargin":"NaN","discountedDayMaintenanceMargin":"NaN"},"message":"success","timestamp":1683181338971,"sign":"g3fFwDO32e0ws+iIPwNyYJ4Ze5TgWmkPpx8Wm7Yd0VgZAEe2HfLq+0mXyQApdEw0EVs1aQ5YG+HiS5DSfAMusj/BNiFFu9YnPsYlJVulKsgnf9oR5odI6kFVoFjSQAXm5G2kCWuEc8uqQd2gsBQQA1jDXYRj5tJBKFUj+iMhwyI="}
options response:{"data":{"identifier":"AAPL 230616C00150000","symbol":"AAPL","secType":"OPT","expiry":"20230616","strike":150.0,"right":"CALL","multiplier":1.0,"market":"US","currency":"USD","localSymbol":"AAPL","tradingClass":"AAPL","name":"Apple","tradeable":true,"shortInitialMargin":1.0,"shortMaintenanceMargin":1.0,"longInitialMargin":1.0,"longMaintenanceMargin":1.0,"tickSizes":[{"begin":"0","end":"Infinity","type":"CLOSED_OPEN","tickSize":0.01}]},"message":"success","timestamp":1678248435184,"sign":"KUvm5w4MW0o4x/UhaKUudo+/ToOoGSIUvaS5/O1OpKLpszMMarEqUAPBMpo/q1X5cbkan1yH5jDpaL55jCwM4vM2fvh1vvBme1M+BgWfHNk27TSSB6vTtTp37T6P1FXM0GPKDZmmyq7cRHeLDefyvd5W8ha0lXAHma4tB8u5Vj0="}
warrants response:{"data":{"identifier":"29263 230330C00351567","symbol":"29263","secType":"WAR","expiry":"20230330","strike":351.567,"right":"CALL","multiplier":10000.0,"market":"HK","currency":"HKD","localSymbol":"29263","tradingClass":"29263","name":"CTTENCT@EC2303D.C","tradeable":true,"shortInitialMargin":1.0,"shortMaintenanceMargin":1.0,"longInitialMargin":1.0,"longMaintenanceMargin":1.0,"tickSizes":[{"begin":"0","end":"0.25","type":"CLOSED","tickSize":0.001},{"begin":"0.25","end":"0.5","type":"OPEN_CLOSED","tickSize":0.005},{"begin":"0.5","end":"10","type":"OPEN_CLOSED","tickSize":0.01},{"begin":"10","end":"20","type":"OPEN_CLOSED","tickSize":0.02},{"begin":"20","end":"100","type":"OPEN_CLOSED","tickSize":0.05},{"begin":"100","end":"200","type":"OPEN_CLOSED","tickSize":0.1},{"begin":"200","end":"500","type":"OPEN_CLOSED","tickSize":0.2},{"begin":"500","end":"1000","type":"OPEN_CLOSED","tickSize":0.5},{"begin":"1000","end":"2000","type":"OPEN_CLOSED","tickSize":1.0},{"begin":"2000","end":"5000","type":"OPEN_CLOSED","tickSize":2.0},{"begin":"5000","end":"Infinity","type":"OPEN","tickSize":5.0}]},"message":"success","timestamp":1678248448209,"sign":"KUvm5w4MW0o4x/UhaKUudo+/ToOoGSIUvaS5/O1OpKLpszMMarEqUAPBMpo/q1X5cbkan1yH5jDpaL55jCwM4vM2fvh1vvBme1M+BgWfHNk27TSSB6vTtTp37T6P1FXM0GPKDZmmyq7cRHeLDefyvd5W8ha0lXAHma4tB8u5Vj0="}
futures response:{"data":{"identifier":"JPY2306","symbol":"JPY2306","secType":"FUT","multiplier":1.0,"market":"US","currency":"USD","localSymbol":"JPY2306","tradingClass":"JPY2306","name":"Japanese Yen - Jun 2023","tradeable":true,"marginable":true,"shortInitialMargin":4092.0,"shortMaintenanceMargin":3720.0,"longInitialMargin":4092.0,"longMaintenanceMargin":3720.0,"tickSizes":[{"begin":"0","end":"Infinity","type":"CLOSED_OPEN","tickSize":5E-07}],"discountedDayInitialMargin":3069.0,"discountedDayMaintenanceMargin":2790.0,"discountedTimeZoneCode":"CDT","discountedStartAt":"17:30:00","discountedEndAt":"14:30:00"},"message":"success","timestamp":1683181339383,"sign":"bORW/gW79+1+woZIiEyAB+SdMBbfdTdBJQ3u2jqm+1IeE73ke2y2/bELBQA17U4H01wKndZLA+3hLB2RtJg6MOmsIDCnwMdMuTX3atuAqk5enG/HlTsz/sqqNRSBua//rocgrpv94+huJixSbfq0PoUA/+m9Txu2sJ05ICzN6Zo="}
获取多个合约信息
对应的请求类:TigerRequest(TradeApiService.CONTRACTS)
说明
获取交易需要的合约信息,只支持STK和FUT。 需要注意环球账户、综合账户返回ContractItem
字段会不同,建议获取合约和下单使用相同的账户。
CAUTION
综合账号返回的批量合约里没有可做空数量和保证金字段
参数
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | string | Yes | 用户授权账户:13810712 |
symbols | List<string> | Yes | 股票代码列表 如:00700 / AAPL。单次请求上限为50 |
sec_type | string | Yes | STK/FUT |
currency | string | No | USD/HKD/CNH |
secret_key | string | No | 机构用户专用,交易员密钥 |
返回TigerOpenAPI.Trade.Response.ContractsResponse
source
结构如下:
namespace TigerOpenAPI.Trade.Response
{
public class ContractsResponse : TigerResponse
{
[JsonProperty(PropertyName = "data")]
public Dictionary<string, List<ContractItem>> Data { get; set; }
}
}
返回数据可通过ContractsResponse.Data
属性访问,返回ContractItem
对象,其中TigerOpenAPI.Trade.Response.ContractItem
属性如下:
名称 | 示例 | 说明 |
---|---|---|
identifier | CL2109/AAPL | 唯一标识,股票identifier和symbol相同,期权为21位标识符,如:'AAPL 220729C00150000',期货identifier |
name | K12 INC | 股票名称 |
symbol | LRN | 股票代码,期权合约的symbol为对应标的物代码 |
secType | STK | STK 股票/OPT 期权/FUT 期货/WAR 窝轮/IOPT 牛熊证等,默认 STK |
expiry | 20171117 | 期权和期货专有,期权或期货过期日 |
contractMonth | 201804 | 期货专有,合约交割月份 |
strike | 24.0 | 期权专有,期权的行权价格 |
right | PUT | 期权专有,期权方向,CALL 或者 PUT |
type | ES | 期货专有,交易品种 |
multiplier | 0.0 | 期权和期货专有,每手数量 |
exchange | NYSE | 股票交易所 |
primaryExchange | NYSE | 股票上市交易所 |
market | US | 市场 /US/HK/CN |
currency | USD | USD/HKD/CNH |
localSymbol | 1033 | 环球账户专有,港股用于识别窝轮和牛熊证 |
tradingClass | LRN | 合约的交易级别名称 |
minTick | 0.001 | 最小报价单位 |
tickSizes | [ { "begin":"0", "end":"1", "tickSize":0.0001, "type":"CLOSED" }, { "begin":"1", "end":"Infinity", "tickSize":0.01, "type":"OPEN" } ] | 股票专有,最小报价单位价格区间,即当挂单价格在begin和end区间时,要满足tickSize要求,begin:价格左区间,end:价格右区间,type:区间类型 OPEN/OPEN_CLOSED/CLOSED/CLOSED_OPEN(开区间/左开右闭/闭区间/左闭右开),tickSize:最小价格单位 |
marginable | true | 是否可融资 |
longInitialMargin | 1 | 做多初始保证金 |
longMaintenanceMargin | 1 | 做多维持保证金 |
shortInitialMargin | 0.35 | 做空初始保证金比例 |
shortMaintenanceMargin | 0.3 | 做空维持保证金比例(综合账号有值,环球账号合约没有值) |
shortable | true | 能否做空 |
shortableCount | 10000000 | 可做空数目 |
shortFeeRate | 0 | 做空费率 |
tradeable | true | 是否可交易 |
closeOnly | false | 是否只能平仓 |
continuous | false | 期货专有,是否连续合约 |
lastTradingDate | 2019-01-01 | 期货专有,最后交易日 |
firstNoticeDate | 2019-01-01 | 期货专有,第一通知日,合约在第一通知日后无法开多仓。已有的多仓会在第一通知日之前(通常为前三个交易日)被强制平仓。 |
lastBiddingCloseTime | 0 | 期货专有,竞价截止时间 |
isEtf | false | 是否是ETF |
etfLeverage | 0 | ETF杠杆倍数,仅当合约为ETF时会存在该值 |
示例
static async Task<ContractsResponse?> GetContractsAsync(TradeClient tradeClient)
{
TigerRequest<ContractsResponse> request = new TigerRequest<ContractsResponse>()
{
ApiMethodName = TradeApiService.CONTRACTS,
ModelValue = new ContractsModel()
{
SecType = SecType.STK.ToString(),
Symbols = new List<string> { "AAPL", "TSLA" },
Account = "13810712"
}
};
return await tradeClient.ExecuteAsync(request);
}
返回示例
{
"data":{
"items":[
{
"contractId":0,
"identifier":"AAPL",
"symbol":"AAPL",
"secType":"STK",
"expiry":null,
"contractMonth":null,
"strike":"NaN",
"right":null,
"multiplier":1,
"exchange":null,
"market":"US",
"primaryExchange":null,
"currency":"USD",
"localSymbol":"AAPL",
"tradingClass":"AAPL",
"name":"Apple Inc",
"tradeable":true,
"closeOnly":false,
"minTick":"NaN",
"marginable":false,
"shortInitialMargin":"NaN",
"shortMaintenanceMargin":"NaN",
"shortFeeRate":"NaN",
"shortable":false,
"shortableCount":0,
"longInitialMargin":"NaN",
"longMaintenanceMargin":"NaN",
"lastTradingDate":null,
"firstNoticeDate":null,
"lastBiddingCloseTime":0,
"continuous":false,
"type":null,
"ibCode":null,
"tickSizes":[
{
"begin":"0",
"end":"1",
"type":"CLOSED",
"tickSize":0.0001
},
{
"begin":"1",
"end":"Infinity",
"type":"OPEN",
"tickSize":0.01
}
],
"discountedDayInitialMargin":"NaN",
"discountedDayMaintenanceMargin":"NaN",
"discountedTimeZoneCode":null,
"discountedStartAt":null,
"discountedEndAt":null,
"isEtf":false,
"etfLeverage":0
},
{
"contractId":0,
"identifier":"TSLA",
"symbol":"TSLA",
"secType":"STK",
"expiry":null,
"contractMonth":null,
"strike":"NaN",
"right":null,
"multiplier":1,
"exchange":null,
"market":"US",
"primaryExchange":null,
"currency":"USD",
"localSymbol":"TSLA",
"tradingClass":"TSLA",
"name":"Tesla Motors",
"tradeable":true,
"closeOnly":false,
"minTick":"NaN",
"marginable":false,
"shortInitialMargin":"NaN",
"shortMaintenanceMargin":"NaN",
"shortFeeRate":"NaN",
"shortable":false,
"shortableCount":0,
"longInitialMargin":"NaN",
"longMaintenanceMargin":"NaN",
"lastTradingDate":null,
"firstNoticeDate":null,
"lastBiddingCloseTime":0,
"continuous":false,
"type":null,
"ibCode":null,
"tickSizes":[
{
"begin":"0",
"end":"1",
"type":"CLOSED",
"tickSize":0.0001
},
{
"begin":"1",
"end":"Infinity",
"type":"OPEN",
"tickSize":0.01
}
],
"discountedDayInitialMargin":"NaN",
"discountedDayMaintenanceMargin":"NaN",
"discountedTimeZoneCode":null,
"discountedStartAt":null,
"discountedEndAt":null,
"isEtf":false,
"etfLeverage":0
}
]
},
"code":0,
"message":"success",
"timestamp":1684915702228,
"sign":"DveGmN84KAMpKv7Ud7XqE/ZpNqO82JYxboPeuLfZwHIXdA2Q4OOe8x/kYVhAKIL+tjg/4if71LxPpB7o3dd1I1VZf3LgusRsShTfHrAZOetiv9kW5Y1rpTeiAEaeez4hwPiBUnxxXsK9d/2+9MtwnqhDvrazj3VBstmc7DZ+RBE="
}
获取期权/窝轮/牛熊证合约列表
对应的请求类:TigerRequest(QuoteApiService.QUOTE_CONTRACT)
输入参数:
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbol | string | Yes | 股票代码 |
sec_type | string | Yes | 合约类型 目前支持: (OPT 期权/ WAR 港股窝轮/ IOPT 港股牛熊证) |
expiry | String | No | 到期日(yyyyMMdd), 如果是OPT必须有值 |
lang | string | No | 语言支持: zh_CN,zh_TW,en_US, 默认: en_US |
返回TigerOpenAPI.Quote.Response.QuoteContractResponse
source
结构如下:
namespace TigerOpenAPI.Quote.Response
{
public class QuoteContractResponse : TigerResponse
{
[JsonProperty(PropertyName = "data")]
public QuoteContractItem Data { get; set; }
}
}
返回数据可通过QuoteContractResponse.Data
属性访问,返回QuoteContractItem
对象,其中TigerOpenAPI.Quote.Response.QuoteContract
属性如下:
名称 | 类型 | 说明 |
---|---|---|
symbol | string | 股票代码 |
name | string | 合约名称 |
exchange | string | 交易所 |
market | string | 市场 |
secType | string | 合约类型 |
currency | string | 币种 |
expiry | string | 到期日(期权、窝轮、牛熊证、期货), 20171117 |
right | string | 期权方向(期权、窝轮、牛熊证), PUT/CALL |
strike | string | 行权价 |
multiplier | double | 每手数量(期权、窝轮、牛熊证、期货) |
请求示例:
static async Task<QuoteContractResponse?> GetQuoteContractAsync(QuoteClient quoteClient)
{
TigerRequest<QuoteContractResponse> request = new TigerRequest<QuoteContractResponse>()
{
ApiMethodName = QuoteApiService.QUOTE_CONTRACT,
ModelValue = new QuoteContractsModel()
{
Symbol = "00700",
SecType = SecType.WAR,
Expiry = "20211223"
}
};
return await quoteClient.ExecuteAsync(request);
}
响应示例:
{
"code": 0,
"data": [{
"symbol": "00700",
"secType": "WAR",
"items": [{
"currency": "HKD",
"exchange": "SEHK",
"expiry": "20211223",
"market": "HK",
"multiplier": 50000.0,
"name": "MSTENCT@EC2112B.C",
"right": "CALL",
"secType": "WAR",
"strike": "719.38",
"symbol": "13745"
}, {
"currency": "HKD",
"exchange": "SEHK",
"expiry": "20211223",
"market": "HK",
"multiplier": 5000.0,
"name": "JPTENCT@EC2112A.C",
"right": "CALL",
"secType": "WAR",
"strike": "900.5",
"symbol": "13680"
}]
}],
"message": "success",
"sign": "bxQhZiWMsT9aSVTNtt2SXVeeh5w8Ypug/6UY3nL9N7LFKB1YxBVpQoKDJ4JloFojyb/CPCGT0fCXTxboDBTZvnA4stjbh1YqbNlz2lNqmHhpxYUKMdE+w2hFKVvoYMlMPCmsY5NqSQ3S/fsSzZrJyxBRPzZ+d+0qb7VSYw9yhho=",
"success": true,
"timestamp": 1637686550209
}