获取订单信息

get_order 获取单个订单

Order TradeClient::get_order(unsigned long long id, bool is_brief)

说明

根据订单号查询单个订单详情,返回 Order 结构体对象

参数

参数名类型是否必填描述
idunsigned long longYes订单号
is_briefboolNo是否简要信息,默认 false

返回

Order 对象

Order 对象属性

属性名类型描述
idunsigned long long订单ID
order_idlong外部订单号
accountutility::string_t资金账号
contractContract合约对象(包含 symbol, sec_type, market, currency 等)
actionutility::string_t买卖方向 BUY/SELL
order_typeutility::string_t订单类型 MKT/LMT/STP/STP_LMT/TRAIL
total_quantitylong long订单总数量
filled_quantitylong long已成交数量
limit_pricedouble限价
aux_pricedouble止损触发价
trailing_percentdouble跟踪止损百分比
avg_fill_pricedouble平均成交价
statusutility::string_t订单状态
time_in_forceutility::string_t订单有效期
outside_rthbool是否盘前盘后
realized_pnldouble已实现盈亏
commissiondouble佣金
open_timetime_t下单时间
latest_timetime_t最近成交时间
update_timetime_t订单更新时间
user_markutility::string_t用户备注
reasonutility::string_t订单失败原因

示例

#include "tigerapi/trade_client.h"
#include "tigerapi/client_config.h"

using namespace TIGER_API;

ClientConfig config(false, U("/path/to/your/properties/"));
TradeClient trade_client(config);

Order order = trade_client.get_order(14275856193552384);
ucout << order.to_string() << std::endl;
std::cout << "Status: " << order.status << std::endl;
std::cout << "Filled: " << order.filled_quantity << "/" << order.total_quantity << std::endl;

get_orders 获取订单列表

value TradeClient::get_orders(const utility::string_t &account, const utility::string_t &sec_type, const utility::string_t &market, const utility::string_t &symbol, time_t start_date, time_t end_date, int limit, bool is_brief, const value &states, const utility::string_t &sort_by, const utility::string_t &seg_type)

说明

查询订单列表。此方法提供枚举和字符串两种重载版本。

参数(字符串版本)

参数名类型是否必填描述
accountutility::string_tNo资金账号
sec_typeutility::string_tNo合约类型,如 U("STK"),默认空
marketutility::string_tNo市场,默认 U("ALL")
symbolutility::string_tNo标的代码,默认空
start_datetime_tNo起始时间戳(毫秒),默认 -1
end_datetime_tNo结束时间戳(毫秒),默认 -1
limitintNo返回条数限制,默认 100
is_briefboolNo是否简要信息,默认 false
statesvalueNo订单状态筛选数组
sort_byutility::string_tNo排序方式,默认空
seg_typeutility::string_tNo账户分段,默认空

参数(枚举版本)

参数名类型是否必填描述
accountutility::string_tYes资金账号
sec_typeSecTypeNo合约类型,默认 SecType::ALL
marketMarketNo市场,默认 Market::ALL
symbolutility::string_tNo标的代码
start_datetime_tNo起始时间戳(毫秒),默认 -1
end_datetime_tNo结束时间戳(毫秒),默认 -1
limitintNo返回条数限制,默认 100
is_briefboolNo是否简要信息,默认 false
statesvalueNo订单状态筛选数组
sort_byOrderSortByNo排序方式,默认 OrderSortBy::LATEST_STATUS_UPDATED
seg_typeSegmentTypeNo账户分段,默认 SegmentType::SEC

返回

web::json::value JSON 数组

示例

ClientConfig config(false, U("/path/to/your/properties/"));
TradeClient trade_client(config);

value orders = trade_client.get_orders();
ucout << orders.serialize() << std::endl;

get_active_orders 获取待成交订单

value TradeClient::get_active_orders(utility::string_t account, utility::string_t sec_type, utility::string_t market, utility::string_t symbol, time_t start_date, time_t end_date, unsigned long long parent_id, utility::string_t sort_by, utility::string_t seg_type)

说明

查询当前待成交(未完成)的订单列表

参数(字符串版本)

参数名类型是否必填描述
accountutility::string_tNo资金账号
sec_typeutility::string_tNo合约类型,默认空
marketutility::string_tNo市场,默认 U("ALL")
symbolutility::string_tNo标的代码
start_datetime_tNo起始时间戳,默认 -1
end_datetime_tNo结束时间戳,默认 -1
parent_idunsigned long longNo父订单ID,默认 0
sort_byutility::string_tNo排序方式,默认空
seg_typeutility::string_tNo账户分段,默认空

返回

web::json::value JSON 数组

示例

ClientConfig config(false, U("/path/to/your/properties/"));
TradeClient trade_client(config);

value active_orders = trade_client.get_active_orders();
ucout << active_orders.serialize() << std::endl;

get_inactive_orders 获取非活跃订单

value TradeClient::get_inactive_orders(utility::string_t account, utility::string_t sec_type, utility::string_t market, utility::string_t symbol, time_t start_date, time_t end_date, unsigned long long parent_id, utility::string_t sort_by, utility::string_t seg_type)

说明

查询非活跃的订单列表(已取消、已失效等)

参数

参数与 get_active_orders 相同

返回

web::json::value JSON 数组

示例

ClientConfig config(false, U("/path/to/your/properties/"));
TradeClient trade_client(config);

value inactive_orders = trade_client.get_inactive_orders();
ucout << inactive_orders.serialize() << std::endl;

get_filled_orders 获取已成交订单

value TradeClient::get_filled_orders(utility::string_t account, utility::string_t sec_type, utility::string_t market, utility::string_t symbol, time_t start_date, time_t end_date, unsigned long long parent_id, utility::string_t sort_by, utility::string_t seg_type)

说明

查询已成交的订单列表

参数

参数与 get_active_orders 相同

返回

web::json::value JSON 数组

示例

ClientConfig config(false, U("/path/to/your/properties/"));
TradeClient trade_client(config);

value filled = trade_client.get_filled_orders();
ucout << filled.serialize() << std::endl;

get_transactions 获取成交记录

说明

查询成交记录。提供两个重载版本:按订单号查询和按标的/条件查询。

重载一:按订单号查询

value TradeClient::get_transactions(utility::string_t account, long long order_id)

参数名类型是否必填描述
accountutility::string_tYes资金账号
order_idlong longYes订单号

重载二:按标的/条件查询

value TradeClient::get_transactions(utility::string_t account, utility::string_t symbol, utility::string_t sec_type, long start_time, time_t end_time, int limit, utility::string_t expiry, utility::string_t strike, utility::string_t right, long long order_id)

参数名类型是否必填描述
accountutility::string_tYes资金账号
symbolutility::string_tYes标的代码
sec_typeutility::string_tNo合约类型,默认空
start_timelongNo起始时间戳(毫秒),默认 -1
end_timetime_tNo结束时间戳(毫秒),默认 -1
limitintNo返回条数限制,默认 100
expiryutility::string_tNo期权到期日
strikeutility::string_tNo期权行权价
rightutility::string_tNo期权方向,如 U("PUT")/U("CALL")
order_idlong longNo订单号,默认 0

返回

web::json::value JSON 数组

示例

ClientConfig config(false, U("/path/to/your/properties/"));
TradeClient trade_client(config);

// 按订单号查询
value transactions = trade_client.get_transactions(config.account, 14275856193552384LL);
ucout << transactions.serialize() << std::endl;

// 按标的查询
value trans2 = trade_client.get_transactions(config.account, U("AAPL"));
ucout << trans2.serialize() << std::endl;

preview_order 预览订单

value TradeClient::preview_order(Order &order)

说明

预览订单,返回预估的佣金、保证金等信息,不会实际提交订单

参数

参数名类型是否必填描述
orderOrder&Yes订单对象

返回

web::json::value JSON 对象,包含预估信息

示例

#include "tigerapi/trade_client.h"
#include "tigerapi/client_config.h"
#include "tigerapi/contract_util.h"
#include "tigerapi/order_util.h"

using namespace TIGER_API;

ClientConfig config(false, U("/path/to/your/properties/"));
TradeClient trade_client(config);

Contract contract = ContractUtil::stock_contract(U("AAPL"), U("USD"));
Order order = OrderUtil::limit_order(config.account, contract, U("BUY"), 100, 150.0);

value preview = trade_client.preview_order(order);
ucout << preview.serialize() << std::endl;