期货

大约 15 分钟

get_future_exchanges 获取期货交易所列表

QuoteClient::get_future_exchanges()

说明

获取期货交易所列表

请求频率

频率限制请参考:接口请求限制

参数

参量名类型描述
sec_typeSecType

返回

结构如下:

COLUMN类型描述
codestr交易所代码
namestr交易所名称
zonestr交易所所在时区

示例

#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)

说明

获取交易所下的可交易合约

遇到第一通知日、最后交易日如何处理:不管是进入第一通知日还是最后结算日后,主要交易月份都会转移到次月合约,使得将到期月份的流动性变差,因此建议不管是多单还是空单,在第一通知日前与最后交易日临近前,转仓或交易次月合约。

请求频率

频率限制请参考:接口请求限制open in new window

参数

参量名类型是否必填描述
exchangestrYes交易所代码,如 'CBOE'

返回

结构如下:

COLUMN类型描述
contract_codestr合约代码,如 VIX2208
typestr期货合约对应的交易品种,如 CL
symbolstr对应的IB代码
namestr期货合约的名称
contract_monthstr合约交割月份,如 202208,表示2022年8月
currencystr交易的货币类型
first_notice_datestr第一通知日,指实物交割合约可以进行实物交割的日期,合约在第一通知日后无法开多仓。已有的多仓会在第一通知日之前(通常为前三个交易日)会被强制平仓。非实物交割合约(如指数合约)该字段为空
last_bidding_close_timestr竞价截止时间
last_trading_datestr指合约到期月份最后交易的日期,最后交易日后尚未清算的期货合约,须通过相关『现货商品』或『现金结算』方式平仓,目前大部分期货商品最后交易日通常就是结算日。有些商品第一通知日跟最后交易日是同一天,如欧元
对于现金交割的期货只要没过最后交易时间都可以正常开仓,非现金交割的期货是按照最后交易时间和第一通知日其中较小者,在其前三个交易日开始就限制开仓
tradebool是否可交易
continuousbool是否为连续合约
multiplierfloat合约乘数,期货价格乘以合约乘数后,才是合约的面值,可以根据实物价格除上合约乘数,估算期货的合理价格
min_tickfloat期货价格变动的最小报价单位,比如当前期货价格为 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 根据代码获取期货合约

说明

根据代码获取期货合约

请求频率

频率限制请参考:接口请求限制open in new window

参数

参量名类型是否必填描述
contract_codestrYes期货合约对应的代码,如 CL2206

返回

结构如下:

COLUMN类型描述
contract_code合约代码,如 CL2112
typestr期货合约对应的交易品种, 如 CL
namestr期货合约的名称
contract_monthstr合约交割月分,如 202112,表示2021年12月交割
currencystr交易的货币
first_notice_datestr第一通知日,指实物交割合约可以进行实物交割的日期,合约在第一通知日后无法开多仓。已有的多仓会在第一通知日之前(通常为前三个交易日)会被强制平仓。非实物交割合约(如指数合约)该字段为空
last_bidding_close_timestr竞价截止时间
last_trading_datestr指合约到期月份最后交易的日期,最后交易日后尚未清算的期货合约,须通过相关『现货商品』或『现金结算』方式平仓,目前大部分期货商品最后交易日通常就是结算日。有些商品第一通知日跟最后交易日是同一天,如欧元
对于现金交割的期货只要没过最后交易时间都可以正常开仓,非现金交割的期货是按照最后交易时间和第一通知日其中较小者,在其前三个交易日开始就限制开仓
tradebool是否可交易
continuousbool是否为连续合约
multiplierfloat合约乘数,期货价格乘以合约乘数后,才是合约的面值,可以根据实物价格除上合约乘数,估算期货的合理价格
min_tickfloat期货价格变动的最小报价单位,比如当前期货价格为 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)

说明

查询指定品种的当前合约,即合约主连

请求频率

频率限制请参考:接口请求限制open in new window

参数

参量名类型是否必填描述
future_typestrYes期货合约对应的交易品种,如 CL

返回

结构如下:

COLUMN类型描述
contract_code合约代码,如 CL2112
typestr期货合约对应的交易品种, 如 CL
namestr期货合约的名称
contract_monthstr合约交割月分,如 202112,表示2021年12月交割
currencystr交易的货币
first_notice_datestr第一通知日,指实物交割合约可以进行实物交割的日期,合约在第一通知日后无法开多仓。已有的多仓会在第一通知日之前(通常为前三个交易日)会被强制平仓。非实物交割合约(如指数合约)该字段为空
last_bidding_close_timestr竞价截止时间
last_trading_datestr指合约到期月份最后交易的日期,最后交易日后尚未清算的期货合约,须通过相关『现货商品』或『现金结算』方式平仓,目前大部分期货商品最后交易日通常就是结算日。有些商品第一通知日跟最后交易日是同一天,如欧元
对于现金交割的期货只要没过最后交易时间都可以正常开仓,非现金交割的期货是按照最后交易时间和第一通知日其中较小者,在其前三个交易日开始就限制开仓
tradebool是否可交易
continuousbool是否为连续合约
multiplierfloat合约乘数,期货价格乘以合约乘数后,才是合约的面值,可以根据实物价格除上合约乘数,估算期货的合理价格
min_tickfloat期货价格变动的最小报价单位,比如当前期货价格为 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)

说明

查询指定品种的连续合约

请求频率

频率限制请参考:接口请求限制open in new window

参数

参量名类型是否必填描述
future_typestrYes期货合约对应的交易品种,如 CL

返回

结构如下:

COLUMN类型描述
contract_code合约代码,如 CL2112
typestr期货合约对应的交易品种, 如 CL
namestr期货合约的名称
contract_monthstr合约交割月分,如 202112,表示2021年12月交割
currencystr交易的货币
first_notice_datestr第一通知日,指实物交割合约可以进行实物交割的日期,合约在第一通知日后无法开多仓。已有的多仓会在第一通知日之前(通常为前三个交易日)会被强制平仓。非实物交割合约(如指数合约)该字段为空
last_bidding_close_timestr竞价截止时间
last_trading_datestr指合约到期月份最后交易的日期,最后交易日后尚未清算的期货合约,须通过相关『现货商品』或『现金结算』方式平仓,目前大部分期货商品最后交易日通常就是结算日。有些商品第一通知日跟最后交易日是同一天,如欧元
对于现金交割的期货只要没过最后交易时间都可以正常开仓,非现金交割的期货是按照最后交易时间和第一通知日其中较小者,在其前三个交易日开始就限制开仓
tradebool是否可交易
continuousbool是否为连续合约
multiplierfloat合约乘数,期货价格乘以合约乘数后,才是合约的面值,可以根据实物价格除上合约乘数,估算期货的合理价格
min_tickfloat期货价格变动的最小报价单位,比如当前期货价格为 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)

说明

询指定合约的交易时间

请求频率

频率限制请参考:接口请求限制open in new window

参数

参量名类型是否必填描述
contract_codestrYes合约代码,如CL1901
trading_dateintYes指定交易日的毫秒单位时间戳,如 1643346000000

返回

结构如下:

COLUMN类型描述
startint交易开始时间
endint交易结束时间
tradingbool是否为连续交易
biddingbool是否为竞价交易
zonestr时区

示例

#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秒之前拉取不到最新点的数据。

请求频率

频率限制请参考:接口请求限制open in new window

参数

参数名类型是否必填描述
identifierslistYes期货代码列表
begin_timeintNo开始时间,毫秒时间戳,查询结果包含该时间点,默认为:-1,begin_time和end_time默认都传-1时,会按照limit设置的条数返回
end_timeintNo截至时间, 毫秒时间戳,查询结果不包含该时间点,默认为:-1
periodBarPeriodNo获取的K线周期。默认 BarPeriod.DAY,可以使用 tigerapi/enums.h BarPeriod 下提供的枚举常量,如 BarPeriod.DAY。 'day'/'week'/'month'/'year'/'1min'/'5min'/'15min'/'30min'/'60min'
limitintNo请求条数限制,默认1000,最大限制:1000
page_tokenstrNo分页token,记录分页的位置,上次请求返回的 next_page_token 可传入作为下次请求的起始标志,使用pageToken分页拉取数据时其他查询条件不能改变

返回

各column 含义如下:

COLUMN类型描述
identifierstr期货合约代码
timeintBar对应的时间戳, 即Bar的结束时间。Bar的切割方式与交易所一致,以CN1901举例,T日的17:00至T+1日的16:30的数据会被合成一个日级Bar。
latest_timeintBar 最后的更新时间
openfloat开盘价
highfloat最高价
lowfloat最低价
closefloat收盘价
settlementfloat结算价,在未生成结算价时返回0
volumeint成交量
open_interestint未平仓合约数量
next_page_tokenstr下一页的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)

说明

获取期货逐笔成交

请求频率

频率限制请参考:接口请求限制open in new window

参数

参数名类型是否必填描述
identifierstrYes期货代码
begin_indexintYes起始索引
end_indexintYes结束索引
limitintNo返回条数限制,最多支持返回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)

说明

获取期货最新行情,包括盘口数据,最新成交数据等

请求频率

频率限制请参考:接口请求限制open in new window

参数

参数名类型是否必填描述
identifiersYes期货代码列表,如 ['CL2201']

返回

各 column 含义如下:

COLUMN类型描述
identifierstr期货代码
ask_pricefloat卖价
ask_sizeint卖量
bid_pricefloat买价
bid_sizeint买量
pre_closefloat前收价
latest_pricefloat最新价
latest_sizeint最新成交量
latest_timeint最新价成交时间
volumeint当日累计成交手数
open_interestint未平仓合约数量
openfloat开盘价
highfloat最高价
lowfloat最低价
limit_upfloat涨停价
limit_downfloat跌停价

示例

#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;
}

返回



上次编辑于: