获取订单信息
大约 8 分钟
get_orders 获取订单列表
value get_orders(string account, SecType sec_type = SecType::ALL,
Market market = Market::ALL,
string symbol = "", long start_time = -1, long end_time = -1, int limit = 100,
bool is_brief = false, const value &states = value::array(),
OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
SegmentType seg_type = SegmentType::SEC)
说明
获取账户的订单历史,包括所有状态、各个证券类型的订单,可以传参数进行筛选
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | No | 账户id,若不填则使用 client_config 中的默认 account |
sec_type | SecType | No | 证券类型, 可以使用 tigerapi/enums.h SecType 下的常量 |
market | Market | No | 所属市场,可以使用 tigerapi/enums.h Market 下的常量 |
symbol | str | No | 证券代码 |
start_time | str或int | No | 起始时间。毫秒单位时间戳或日期字符串,如 1643346000000 或 '2019-01-01' 或 '2019-01-01 12:00:00, (当 sort_by=LATEST_STATUS_UPDATED 时,按订单状态更新时间进行过滤) |
end_time | str或int | No | 截至时间。毫秒单位时间戳或日期字符串,如 1653346000000 或 '2019-11-01' 或 '2019-11-01 15:00:00, (当 sort_by=LATEST_STATUS_UPDATED 时,按订单状态更新时间进行过滤) |
limit | int | No | 每次获取订单的数量,默认:100, 最大值:300 |
is_brief | bool | No | 【】是否返回精简的订单数据 |
status | OrderStatus | No | 【】订单状态,可以使用 tigerapi/enums.h OrderStatus 的枚举 |
sort_by | OrderSortBy | No | 【】排序和起止时间作用字段,LATEST_CREATED/LATEST_STATUS_UPDATED; 默认值:LATEST_CREATED |
secret_key | str | No | 机构交易员密钥,机构用户专有,需要在client_config中配置 |
返回
value
示例
#include "tigerapi/trade_client.h"
#include "tigerapi/contract_util.h"
#include "tigerapi/order_util.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
/**
* 调用交易接口
*/
class TestTradeClient {
public:
static void test_get_orders(const std::shared_ptr<TradeClient>& trade_client) {
value res = trade_client->get_orders();
cout << "orders: " << res << endl;
}
static void test_trade(const std::shared_ptr<TradeClient>& trade_client) {
TestTradeClient::test_get_orders(trade_client);
}
};
int main(int argc, char *args[]) {
cout << "Tiger Api main" << endl;
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的交易接口 TradeClient
*/
std::shared_ptr<TradeClient> trade_client = std::make_shared<TradeClient>(config);
TestTradeClient::test_trade(trade_client);
return 0;
}
返回示例
[
{
"account": "402901",
"action": "BUY",
"algoStrategy": "LMT",
"attrDesc": "",
"avgFillPrice": 0,
"canCancel": false,
"canModify": false,
"commission": 0,
"currency": "USD",
"discount": 0,
"filledQuantity": 0,
"id": 29404332116673536,
"identifier": "AAPL",
"latestTime": 1673313004000,
"limitPrice": 100,
"liquidation": false,
"market": "US",
"name": "Apple Inc",
"openTime": 1673236450000,
"orderId": 1276,
"orderType": "LMT",
"outsideRth": true,
"realizedPnl": 0,
"remark": "Order is expired",
"secType": "STK",
"source": "OpenApi",
"status": "Cancelled",
"symbol": "AAPL",
"timeInForce": "DAY",
"totalQuantity": 1,
"updateTime": 1673313004000,
"userMark": ""
},
{
"account": "402901",
"action": "BUY",
"algoStrategy": "LMT",
"attrDesc": "",
"avgFillPrice": 0,
"canCancel": false,
"canModify": false,
"commission": 0,
"currency": "USD",
"discount": 0,
"filledQuantity": 0,
"id": 29404332093867008,
"identifier": "AAPL",
"latestTime": 1673236453000,
"limitPrice": 100,
"liquidation": false,
"market": "US",
"name": "Apple Inc",
"openTime": 1673236450000,
"orderId": 1275,
"orderType": "LMT",
"outsideRth": true,
"realizedPnl": 0,
"secType": "STK",
"source": "OpenApi",
"status": "Cancelled",
"symbol": "AAPL",
"timeInForce": "DAY",
"totalQuantity": 1,
"updateTime": 1673236453000,
"userMark": ""
}
]
get_order 获取指定订单
Order get_order(long id);
说明
通过id获取指定的订单
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
id | int | yes | 在提交订单后返回的全局订单id |
返回
Order
对象
具体字段含义详见 Order 对象
示例
#include "tigerapi/trade_client.h"
#include "tigerapi/contract_util.h"
#include "tigerapi/order_util.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
/**
* 调用交易接口
*/
class TestTradeClient {
public:
static void test_get_order(const std::shared_ptr<TradeClient>& trade_client) {
// Contract contract = stock_contract("AAPL", "USD");
// Order order = limit_order(contract, "BUY", 1, 100.0);
// trade_client->place_order(order);
Order my_order = trade_client->get_order(29270263515317248);
cout << "order : " << my_order.to_string() << endl;
}
static void test_trade(const std::shared_ptr<TradeClient>& trade_client) {
TestTradeClient::test_get_order(trade_client);
}
};
int main(int argc, char *args[]) {
cout << "Tiger Api main" << endl;
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的交易接口 TradeClient
*/
std::shared_ptr<TradeClient> trade_client = std::make_shared<TradeClient>(config);
TestTradeClient::test_trade(trade_client);
return 0;
}
返回示例
{
"account":"402901",
"action":"BUY",
"algoStrategy":"LMT",
"attrDesc":"",
"avgFillPrice":0,
"canCancel":false,
"canModify":false,
"commission":0,
"currency":"USD",
"discount":0,
"filledQuantity":0,
"id":29143867257783296,
"identifier":"AAPL",
"latestTime":1671330602000,
"limitPrice":100,
"liquidation":false,
"market":"US",
"name":"Apple Inc",
"openTime":1671249261000,
"orderId":1176,
"orderType":"LMT",
"outsideRth":true,
"realizedPnl":0,
"remark":"Order is expired",
"secType":"STK",
"source":"OpenApi",
"status":"Inactive",
"symbol":"AAPL",
"timeInForce":"DAY",
"totalQuantity":1,
"updateTime":1671330602000,
"userMark":""
}
get_active_orders 获取待成交的订单列表
value get_active_orders(string account, SecType sec_type = SecType::ALL,
Market market = Market::ALL,
string symbol = "", long start_time = -1, long end_time = -1, long parent_id = 0,
OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
SegmentType seg_type = SegmentType::SEC)
说明
获取待成交的订单列表,可能会包含部分成交但未成交部分依然处于待成交状态的订单。
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | no | 账户id,若不填则使用 client_config 中的默认 account |
sec_type | SecType | no | 证券类型,可以使用 tigerapi/enums.h SecType 下的常量 |
market | Market | no | 所属市场,可以使用 tigerapi/enums.h Market 下的常量,如 Market.US |
symbol | str | no | 证券代码 |
start_time | str或int | no | 开始时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
end_time | str或int | no | 截至时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
secret_key | str | no | 机构交易员密钥,机构用户专有,个人开发者无需关注,需要在client_config中配置 |
返回
list
列表中的每个元素是一个 Order 对象(tigeropen.trade.domain.order.Order), 具体字段含义详见Order对象
示例
#include "tigerapi/trade_client.h"
#include "tigerapi/contract_util.h"
#include "tigerapi/order_util.h"
using namespace std;
using namespace web;
using namespace web::json;
using namespace TIGER_API;
/**
* 调用交易接口
*/
class TestTradeClient {
public:
static void test_get_active_orders(const std::shared_ptr<TradeClient>& trade_client) {
value res = trade_client->get_active_orders();
cout << "active orders: " << res << endl;
}
static void test_trade(const std::shared_ptr<TradeClient>& trade_client) {
TestTradeClient::test_get_active_orders(trade_client);
}
};
int main(int argc, char *args[]) {
cout << "Tiger Api main" << endl;
/************************** set config **********************/
ClientConfig config = ClientConfig();
config.private_key = "xxxxxx your private key string xxxxxxxx";
config.tiger_id = "your tiger id";
config.account = "your account";
/**
* 使用封装后的交易接口 TradeClient
*/
std::shared_ptr<TradeClient> trade_client = std::make_shared<TradeClient>(config);
TestTradeClient::test_trade(trade_client);
return 0;
}
返回示例
同 get_orders
get_cancelled_orders 获取已撤销的订单列表
value get_cancelled_orders(string account, SecType sec_type = SecType::ALL,
Market market = Market::ALL,
string symbol = "", long start_time = -1, long end_time = -1, long parent_id = 0,
OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
SegmentType seg_type = SegmentType::SEC)
说明
获取已撤销的订单列表。包括主动撤销、系统撤销、已失效的订单等。可能会包含部分成交但未成交部分被撤销的订单。
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | no | 账户id,若不填则使用 client_config 中的默认 account |
sec_type | SecType | no | 证券类型,可以使用 tigerapi/enums.h SecType 下的常量 |
market | Market | no | 所属市场,可以使用 tigerapi/enums.h Market 下的常量,如 Market.US |
symbol | str | no | 证券代码 |
start_time | str或int | no | 开始时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
end_time | str或int | no | 截至时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
secret_key | str | no | 机构交易员密钥,机构用户专有,个人开发者无需关注,需要在client_config中配置 |
返回
list
list 中的每个元素都是一个 Order 对象,具体字段含义详见Order对象
返回示例
同 get_orders
get_filled_orders 获取已成交的订单列表
value get_filled_orders(string account, SecType sec_type = SecType::ALL,
Market market = Market::ALL,
string symbol = "", long start_time = -1, long end_time = -1, long parent_id = 0,
OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
SegmentType seg_type = SegmentType::SEC)
说明 获取已成交订单列表
订单可能会有部分成交的状态,此时订单状态比较特殊,有可能是HELD,CANCELLED,EXPIRED,REJECTED的任意一种状态,如需查询部分成交的订单,请参考FAQ-交易-如何判断订单是部分成交状态
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | no | 账户id,若不填则使用 client_config 中的默认 account |
sec_type | SecType | no | 证券类型,可以使用 tigerapi/enums.h SecType 下的常量 |
market | Market | no | 所属市场,可以使用 tigerapi/enums.h Market 下的常量,如 Market.US |
symbol | str | no | 证券代码 |
start_time | str或int | no | 开始时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
end_time | str或int | no | 截至时间。毫秒级别的时间戳,或日期时间字符串,如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
secret_key | str | no | 机构交易员密钥,机构用户专有,个人开发者无需关注,需要在client_config中配置 |
返回list
list 中的每个元素都是一个 Order 对象,具体字段含义详见Order对象
示例
返回示例
同 get_orders
get_transactions 获取订单成交记录
说明
获取已成交订单的详细成交记录(仅适用于综合/模拟账户)。
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
account | str | no | 账户id,若不填则使用 client_config 中的默认 account |
order_id | int | no | 下单后返回的全局订单ID,非本地订单ID |
symbol | str | no | 标的代码。使用symbol查询时sec_type为必传 |
sec_type | SecType | no | 证券类型, 可以使用 tigerapi/enums.h SecType 下的常量 |
start_time | str或int | no | 订单最后更新时间的起始时间。毫秒单位时间戳或日期字符串,如 1643346000000 或 '2019-01-01' 或 '2019-01-01 12:00:00 |
end_time | str或int | no | 订单最后更新时间的截至时间。毫秒单位时间戳或日期字符串,如 1653346000000 或 '2019-11-01' 或 '2019-11-01 15:00:00 |
limit | int | no | 每次获取记录的数量,最多 100,默认为 20 |
expiry | str | no | 过期日(适用于期权)。 形式 'yyyyMMdd', 比如 '220121' |
strike | float | no | 行权价(适用于期权)。如 100.5 |
put_call | str | no | 看涨或看跌(适用于期权)。'PUT' 或 'CALL' |
返回list
列表中每个元素为 Transaction
对象,具体字段含义见 Transaction
示例
返回示例
Transaction({'account': 111111, 'order_id': 20947299719447552, 'contract': AAPL/STK/USD, 'id': 20947300069016576, 'action': 'BUY', 'filled_quantity': 1, 'filled_price': 132.25, 'filled_amount': 132.25, 'transacted_at': '2020-12-23 17:06:54'}),
Transaction({'account': 111111, 'order_id': 19837920138101760, 'contract': AAPL/STK/USD, 'id': 19837920740508672, 'action': 'BUY', 'filled_quantity': 1, 'filled_price': 116.21, 'filled_amount': 116.21, 'transacted_at': '2020-09-16 18:02:00'})]