期货
get_future_exchanges 获取期货交易所列表
QuoteClient::get_future_exchanges()
说明
获取期货交易所列表
请求频率
频率限制请参考:接口请求限制
参数
参量名 | 类型 | 描述 |
---|---|---|
sec_type | SecType |
返回
结构如下:
COLUMN | 类型 | 描述 |
---|---|---|
code | str | 交易所代码 |
name | str | 交易所名称 |
zone | str | 交易所所在时区 |
示例
#include "tigerapi/quote_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->get_future_exchanges();
cout << result << endl;
return 0;
}
返回示例
[{"code":"CME","name":"CME","zoneId":"America/Chicago"},{"code":"NYMEX","name":"NYMEX","zoneId":"America/New_York"},{"code":"COMEX","name":"COMEX","zoneId":"America/New_York"},{"code":"SGX","name":"SGX","zoneId":"Singapore"},{"code":"HKEX","name":"HKEX","zoneId":"Asia/Hong_Kong"},{"code":"CBOT","name":"CBOT","zoneId":"America/Chicago"},{"code":"CBOE","name":"CBOE","zoneId":"America/Chicago"},{"code":"OSE","name":"OSE","zoneId":"Asia/Tokyo"},{"code":"CMEBTC","name":"CMEBTC","zoneId":"America/Chicago"},{"code":"TEST","name":"Test_Exchange","zoneId":"America/Chicago"},{"code":"TEST2","name":"Test_Exchange_2","zoneId":"America/Chicago"},{"code":"TEST3","name":"Test_Exchange_3","zoneId":"America/Chicago"},{"code":"CBOEXBT","name":"CBOEXBT","zoneId":"America/Chicago"},{"code":"EUREX","name":"EUREX","zoneId":"Europe/Berlin"},{"code":"ICEUS","name":"ICE FUTURES US","zoneId":"American/Chicago"},{"code":"ICEEU","name":"ICE FUTURES EUROPE","zoneId":"American/NewYork"}]
get_future_contracts 获取交易所下的可交易合约
QuoteClient::get_future_contracts(exchange)
说明
获取交易所下的可交易合约
遇到第一通知日、最后交易日如何处理:不管是进入第一通知日还是最后结算日后,主要交易月份都会转移到次月合约,使得将到期月份的流动性变差,因此建议不管是多单还是空单,在第一通知日前与最后交易日临近前,转仓或交易次月合约。
请求频率
频率限制请参考:接口请求限制
参数
参量名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
exchange | str | Yes | 交易所代码,如 'CBOE' |
返回
结构如下:
COLUMN | 类型 | 描述 |
---|---|---|
contract_code | str | 合约代码,如 VIX2208 |
type | str | 期货合约对应的交易品种,如 CL |
symbol | str | 对应的IB代码 |
name | str | 期货合约的名称 |
contract_month | str | 合约交割月份,如 202208,表示2022年8月 |
currency | str | 交易的货币类型 |
first_notice_date | str | 第一通知日,指实物交割合约可以进行实物交割的日期,合约在第一通知日后无法开多仓。已有的多仓会在第一通知日之前(通常为前三个交易日)会被强制平仓。非实物交割合约(如指数合约)该字段为空 |
last_bidding_close_time | str | 竞价截止时间 |
last_trading_date | str | 指合约到期月份最后交易的日期,最后交易日后尚未清算的期货合约,须通过相关『现货商品』或『现金结算』方式平仓,目前大部分期货商品最后交易日通常就是结算日。有些商品第一通知日跟最后交易日是同一天,如欧元 对于现金交割的期货只要没过最后交易时间都可以正常开仓,非现金交割的期货是按照最后交易时间和第一通知日其中较小者,在其前三个交易日开始就限制开仓 |
trade | bool | 是否可交易 |
continuous | bool | 是否为连续合约 |
multiplier | float | 合约乘数,期货价格乘以合约乘数后,才是合约的面值,可以根据实物价格除上合约乘数,估算期货的合理价格 |
min_tick | float | 期货价格变动的最小报价单位,比如当前期货价格为 2000,minTick为100,则正确的报价包括 2100,2200,而 2005不满足要求 |
示例
#include "tigerapi/quote_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->get_future_contracts("CL");
cout << result << endl;
return 0;
}
返回示例
[{"continuous":false,"contractCode":"CL2302","contractMonth":"202302","currency":"USD","displayMultiplier":1,"exchange":"NYMEX","exchangeCode":"NYMEX","firstNoticeDate":"20230124","ibCode":"CL","lastBiddingCloseTime":0,"lastTradingDate":"20230120","minTick":0.01,"multiplier":1000,"name":"WTI Crude Oil - Feb 2023","trade":true,"type":"CL"},{"continuous":false,"contractCode":"CL2303","contractMonth":"202303","currency":"USD","displayMultiplier":1,"exchange":"NYMEX","exchangeCode":"NYMEX","firstNoticeDate":"20230223","ibCode":"CL","lastBiddingCloseTime":0,"lastTradingDate":"20230221","minTick":0.01,"multiplier":1000,"name":"WTI Crude Oil - Mar 2023","trade":true,"type":"CL"},{"continuous":false,"contractCode":"CL2304","contractMonth":"202304","currency":"USD","displayMultiplier":1,"exchange":"NYMEX","exchangeCode":"NYMEX","firstNoticeDate":"20230323","ibCode":"CL","lastBiddingCloseTime":0,"lastTradingDate":"20230321","minTick":0.01,"multiplier":1000,"name":"WTI Crude Oil - Apr 2023","trade":true,"type":"CL"}]
get_future_contract_by_contract_code 根据代码获取期货合约
说明
根据代码获取期货合约
请求频率
频率限制请参考:接口请求限制
参数
参量名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
contract_code | str | Yes | 期货合约对应的代码,如 CL2206 |
返回
结构如下:
COLUMN | 类型 | 描述 |
---|---|---|
contract_code | 合约代码,如 CL2112 | |
type | str | 期货合约对应的交易品种, 如 CL |
name | str | 期货合约的名称 |
contract_month | str | 合约交割月分,如 202112,表示2021年12月交割 |
currency | str | 交易的货币 |
first_notice_date | str | 第一通知日,指实物交割合约可以进行实物交割的日期,合约在第一通知日后无法开多仓。已有的多仓会在第一通知日之前(通常为前三个交易日)会被强制平仓。非实物交割合约(如指数合约)该字段为空 |
last_bidding_close_time | str | 竞价截止时间 |
last_trading_date | str | 指合约到期月份最后交易的日期,最后交易日后尚未清算的期货合约,须通过相关『现货商品』或『现金结算』方式平仓,目前大部分期货商品最后交易日通常就是结算日。有些商品第一通知日跟最后交易日是同一天,如欧元 对于现金交割的期货只要没过最后交易时间都可以正常开仓,非现金交割的期货是按照最后交易时间和第一通知日其中较小者,在其前三个交易日开始就限制开仓 |
trade | bool | 是否可交易 |
continuous | bool | 是否为连续合约 |
multiplier | float | 合约乘数,期货价格乘以合约乘数后,才是合约的面值,可以根据实物价格除上合约乘数,估算期货的合理价格 |
min_tick | float | 期货价格变动的最小报价单位,比如当前期货价格为 2000,minTick为100,则正确的报价包括 2100,2200,而 2005不满足要求 |
示例
#include "tigerapi/quote_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->get_future_contract_by_contract_code("CL2303");
cout << result << endl;
return 0;
}
返回示例
{"continuous":false,"contractCode":"CL2302","contractMonth":"202302","currency":"USD","displayMultiplier":1,"exchange":"NYMEX","exchangeCode":"NYMEX","firstNoticeDate":"20230124","ibCode":"CL","lastBiddingCloseTime":0,"lastTradingDate":"20230120","minTick":0.01,"multiplier":1000,"name":"WTI Crude Oil - Feb 2023","trade":true,"type":"CL"}
get_current_future_contract 查询指定品种的当前合约
QuoteClient::get_current_future_contract(future_type)
说明
查询指定品种的当前合约,即合约主连
请求频率
频率限制请参考:接口请求限制
参数
参量名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
future_type | str | Yes | 期货合约对应的交易品种,如 CL |
返回
结构如下:
COLUMN | 类型 | 描述 |
---|---|---|
contract_code | 合约代码,如 CL2112 | |
type | str | 期货合约对应的交易品种, 如 CL |
name | str | 期货合约的名称 |
contract_month | str | 合约交割月分,如 202112,表示2021年12月交割 |
currency | str | 交易的货币 |
first_notice_date | str | 第一通知日,指实物交割合约可以进行实物交割的日期,合约在第一通知日后无法开多仓。已有的多仓会在第一通知日之前(通常为前三个交易日)会被强制平仓。非实物交割合约(如指数合约)该字段为空 |
last_bidding_close_time | str | 竞价截止时间 |
last_trading_date | str | 指合约到期月份最后交易的日期,最后交易日后尚未清算的期货合约,须通过相关『现货商品』或『现金结算』方式平仓,目前大部分期货商品最后交易日通常就是结算日。有些商品第一通知日跟最后交易日是同一天,如欧元 对于现金交割的期货只要没过最后交易时间都可以正常开仓,非现金交割的期货是按照最后交易时间和第一通知日其中较小者,在其前三个交易日开始就限制开仓 |
trade | bool | 是否可交易 |
continuous | bool | 是否为连续合约 |
multiplier | float | 合约乘数,期货价格乘以合约乘数后,才是合约的面值,可以根据实物价格除上合约乘数,估算期货的合理价格 |
min_tick | float | 期货价格变动的最小报价单位,比如当前期货价格为 2000,minTick为100,则正确的报价包括 2100,2200,而 2005不满足要求 |
示例
#include "tigerapi/quote_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->get_future_current_contract("CL");
cout << result << endl;
return 0;
}
返回示例
{"continuous":false,"contractCode":"CL2302","contractMonth":"202302","currency":"USD","displayMultiplier":1,"exchange":"NYMEX","exchangeCode":"NYMEX","firstNoticeDate":"20230124","ibCode":"CL","lastBiddingCloseTime":0,"lastTradingDate":"20230120","minTick":0.01,"multiplier":1000,"name":"WTI Crude Oil - Feb 2023","trade":true,"type":"CL"}
get_future_continuous_contracts 获取指定品种的连续合约
QuoteClient::get_future_continuous_contracts(future_type)
说明
查询指定品种的连续合约
请求频率
频率限制请参考:接口请求限制
参数
参量名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
future_type | str | Yes | 期货合约对应的交易品种,如 CL |
返回
结构如下:
COLUMN | 类型 | 描述 |
---|---|---|
contract_code | 合约代码,如 CL2112 | |
type | str | 期货合约对应的交易品种, 如 CL |
name | str | 期货合约的名称 |
contract_month | str | 合约交割月分,如 202112,表示2021年12月交割 |
currency | str | 交易的货币 |
first_notice_date | str | 第一通知日,指实物交割合约可以进行实物交割的日期,合约在第一通知日后无法开多仓。已有的多仓会在第一通知日之前(通常为前三个交易日)会被强制平仓。非实物交割合约(如指数合约)该字段为空 |
last_bidding_close_time | str | 竞价截止时间 |
last_trading_date | str | 指合约到期月份最后交易的日期,最后交易日后尚未清算的期货合约,须通过相关『现货商品』或『现金结算』方式平仓,目前大部分期货商品最后交易日通常就是结算日。有些商品第一通知日跟最后交易日是同一天,如欧元 对于现金交割的期货只要没过最后交易时间都可以正常开仓,非现金交割的期货是按照最后交易时间和第一通知日其中较小者,在其前三个交易日开始就限制开仓 |
trade | bool | 是否可交易 |
continuous | bool | 是否为连续合约 |
multiplier | float | 合约乘数,期货价格乘以合约乘数后,才是合约的面值,可以根据实物价格除上合约乘数,估算期货的合理价格 |
min_tick | float | 期货价格变动的最小报价单位,比如当前期货价格为 2000,minTick为100,则正确的报价包括 2100,2200,而 2005不满足要求 |
示例
#include "tigerapi/quote_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->get_future_current_contract("CL");
cout << result << endl;
return 0;
}
返回示例
{"continuous":false,"contractCode":"CL2302","contractMonth":"202302","currency":"USD","displayMultiplier":1,"exchange":"NYMEX","exchangeCode":"NYMEX","firstNoticeDate":"20230124","ibCode":"CL","lastBiddingCloseTime":0,"lastTradingDate":"20230120","minTick":0.01,"multiplier":1000,"name":"WTI Crude Oil - Feb 2023","trade":true,"type":"CL"}
get_future_trading_date 查询指定合约的交易时间
get_future_trading_date(contract_code, trading_date=None)
说明
询指定合约的交易时间
请求频率
频率限制请参考:接口请求限制
参数
参量名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
contract_code | str | Yes | 合约代码,如CL1901 |
trading_date | int | Yes | 指定交易日的毫秒单位时间戳,如 1643346000000 |
返回
结构如下:
COLUMN | 类型 | 描述 |
---|---|---|
start | int | 交易开始时间 |
end | int | 交易结束时间 |
trading | bool | 是否为连续交易 |
bidding | bool | 是否为竞价交易 |
zone | str | 时区 |
示例
#include "tigerapi/quote_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->get_future_trading_date("CL2303", "2023-01-12");
cout << result << endl;
return 0;
}
返回示例
{"biddingTimes":[],"timeSection":"America/New_York","tradingTimes":[{"end":1673474400000,"start":1673391600000}]}
get_future_kline 获取期货K线
value get_future_kline(value contract_codes, BarPeriod period=BarPeriod::DAY, long begin_time=-1, long end_time=-1,
int limit=251, string page_token="")
说明
提供了热门合约近10年的日级别K线数据,以及全部合约2017年8月至今的分钟级数据。
返回结果是从endTime开始按时间倒序的数据集合。
对于1分钟K线,如果在这1分钟内没有成交,这一分钟K线数据会空缺;在最近的这一分钟内有成交后接口才能拉取到这1分钟的K线数据,如果在第50秒时产生第一笔交易,在50秒之前拉取不到最新点的数据。
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
identifiers | list | Yes | 期货代码列表 |
begin_time | int | No | 开始时间,毫秒时间戳,查询结果包含该时间点,默认为:-1,begin_time和end_time默认都传-1时,会按照limit设置的条数返回 |
end_time | int | No | 截至时间, 毫秒时间戳,查询结果不包含该时间点,默认为:-1 |
period | BarPeriod | No | 获取的K线周期。默认 BarPeriod.DAY,可以使用 tigerapi/enums.h BarPeriod 下提供的枚举常量,如 BarPeriod.DAY。 'day'/'week'/'month'/'year'/'1min'/'5min'/'15min'/'30min'/'60min' |
limit | int | No | 请求条数限制,默认1000,最大限制:1000 |
page_token | str | No | 分页token,记录分页的位置,上次请求返回的 next_page_token 可传入作为下次请求的起始标志,使用pageToken分页拉取数据时其他查询条件不能改变 |
返回
各column 含义如下:
COLUMN | 类型 | 描述 |
---|---|---|
identifier | str | 期货合约代码 |
time | int | Bar对应的时间戳, 即Bar的结束时间。Bar的切割方式与交易所一致,以CN1901举例,T日的17:00至T+1日的16:30的数据会被合成一个日级Bar。 |
latest_time | int | Bar 最后的更新时间 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
close | float | 收盘价 |
settlement | float | 结算价,在未生成结算价时返回0 |
volume | int | 成交量 |
open_interest | int | 未平仓合约数量 |
next_page_token | str | 下一页的page token |
示例
#include "tigerapi/quote_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value symbols = value::array();
symbols[0] = value::string("CL2303");
cout << "symbols " << symbols << endl;
value result = quote_client->get_future_kline(symbols);
cout << result << endl;
return 0;
}
** 返回示例 **
[
{
"contractCode":"CL2303",
"items":[
{
"close":74.959999999999994,
"high":76.159999999999997,
"lastTime":1673387996000,
"low":74.159999999999997,
"open":75.159999999999997,
"openInterest":222544,
"settlement":75.370000000000005,
"time":1673388000000,
"volume":30663
},
{
"close":75.159999999999997,
"high":76.969999999999999,
"lastTime":1673301592000,
"low":73.790000000000006,
"open":73.870000000000005,
"openInterest":209157,
"settlement":74.920000000000002,
"time":1673301600000,
"volume":42603
}
]
}
}
get_future_tick 获取期货逐笔成交
QuoteClient::get_future_tick(identifier,
begin_index=0,
end_index=30,
limit=1000)
说明
获取期货逐笔成交
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
identifier | str | Yes | 期货代码 |
begin_index | int | Yes | 起始索引 |
end_index | int | Yes | 结束索引 |
limit | int | No | 返回条数限制,最多支持返回1000条逐笔记录 |
返回
各 column 含义如下: 参数名|类型|描述 ---|---|---|--- index|int| 索引值 time|int| 成交时间,精确到毫秒的时间戳 price|float| 成交价格 volume|int| 成交量
示例
#include "tigerapi/quote_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->get_future_tick("CL2312");
cout << result << endl;
return 0;
}
** 返回示例 **
{"contractCode":"CL2312","items":[{"index":0,"price":76.22,"volume":1,"time":1673478173000},{"index":1,"price":76.20,"volume":1,"time":1673478436000},{"index":2,"price":76.25,"volume":1,"time":1673481448000},{"index":3,"price":76.26,"volume":1,"time":1673481479000},{"index":4,"price":76.25,"volume":1,"time":1673481565000},{"index":5,"price":76.25,"volume":2,"time":1673481570000},{"index":6,"price":76.25,"volume":2,"time":1673481601000},{"index":7,"price":76.25,"volume":1,"time":1673481616000},{"index":8,"price":76.16,"volume":2,"time":1673481678000}]
}
get_future_real_time_quote 获取期货最新行情
QuoteClient::get_future_real_time_quote(identifiers)
说明
获取期货最新行情,包括盘口数据,最新成交数据等
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
identifiers | Yes | 期货代码列表,如 ['CL2201'] |
返回
各 column 含义如下:
COLUMN | 类型 | 描述 |
---|---|---|
identifier | str | 期货代码 |
ask_price | float | 卖价 |
ask_size | int | 卖量 |
bid_price | float | 买价 |
bid_size | int | 买量 |
pre_close | float | 前收价 |
latest_price | float | 最新价 |
latest_size | int | 最新成交量 |
latest_time | int | 最新价成交时间 |
volume | int | 当日累计成交手数 |
open_interest | int | 未平仓合约数量 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
limit_up | float | 涨停价 |
limit_down | float | 跌停价 |
示例
#include "tigerapi/quote_client.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
int main(int argc, char *args[]) {
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的行情接口 QuoteClient
*/
std::shared_ptr<QuoteClient> quote_client = std::make_shared<QuoteClient>(config);
value result = quote_client->get_future_tick("CL2312");
cout << result << endl;
return 0;
}
返回