获取订单信息
get_order 获取单个订单
Order TradeClient::get_order(unsigned long long id, bool is_brief)
说明
根据订单号查询单个订单详情,返回 Order 结构体对象
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| id | unsigned long long | Yes | 订单号 |
| is_brief | bool | No | 是否简要信息,默认 false |
返回
Order 对象
Order 对象属性
| 属性名 | 类型 | 描述 |
|---|---|---|
| id | unsigned long long | 订单ID |
| order_id | long | 外部订单号 |
| account | utility::string_t | 资金账号 |
| contract | Contract | 合约对象(包含 symbol, sec_type, market, currency 等) |
| action | utility::string_t | 买卖方向 BUY/SELL |
| order_type | utility::string_t | 订单类型 MKT/LMT/STP/STP_LMT/TRAIL |
| total_quantity | long long | 订单总数量 |
| filled_quantity | long long | 已成交数量 |
| limit_price | double | 限价 |
| aux_price | double | 止损触发价 |
| trailing_percent | double | 跟踪止损百分比 |
| avg_fill_price | double | 平均成交价 |
| status | utility::string_t | 订单状态 |
| time_in_force | utility::string_t | 订单有效期 |
| outside_rth | bool | 是否盘前盘后 |
| realized_pnl | double | 已实现盈亏 |
| commission | double | 佣金 |
| open_time | time_t | 下单时间 |
| latest_time | time_t | 最近成交时间 |
| update_time | time_t | 订单更新时间 |
| user_mark | utility::string_t | 用户备注 |
| reason | utility::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)
说明
查询订单列表。此方法提供枚举和字符串两种重载版本。
参数(字符串版本)
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| account | utility::string_t | No | 资金账号 |
| sec_type | utility::string_t | No | 合约类型,如 U("STK"),默认空 |
| market | utility::string_t | No | 市场,默认 U("ALL") |
| symbol | utility::string_t | No | 标的代码,默认空 |
| start_date | time_t | No | 起始时间戳(毫秒),默认 -1 |
| end_date | time_t | No | 结束时间戳(毫秒),默认 -1 |
| limit | int | No | 返回条数限制,默认 100 |
| is_brief | bool | No | 是否简要信息,默认 false |
| states | value | No | 订单状态筛选数组 |
| sort_by | utility::string_t | No | 排序方式,默认空 |
| seg_type | utility::string_t | No | 账户分段,默认空 |
参数(枚举版本)
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| account | utility::string_t | Yes | 资金账号 |
| sec_type | SecType | No | 合约类型,默认 SecType::ALL |
| market | Market | No | 市场,默认 Market::ALL |
| symbol | utility::string_t | No | 标的代码 |
| start_date | time_t | No | 起始时间戳(毫秒),默认 -1 |
| end_date | time_t | No | 结束时间戳(毫秒),默认 -1 |
| limit | int | No | 返回条数限制,默认 100 |
| is_brief | bool | No | 是否简要信息,默认 false |
| states | value | No | 订单状态筛选数组 |
| sort_by | OrderSortBy | No | 排序方式,默认 OrderSortBy::LATEST_STATUS_UPDATED |
| seg_type | SegmentType | No | 账户分段,默认 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)
说明
查询当前待成交(未完成)的订单列表
参数(字符串版本)
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| account | utility::string_t | No | 资金账号 |
| sec_type | utility::string_t | No | 合约类型,默认空 |
| market | utility::string_t | No | 市场,默认 U("ALL") |
| symbol | utility::string_t | No | 标的代码 |
| start_date | time_t | No | 起始时间戳,默认 -1 |
| end_date | time_t | No | 结束时间戳,默认 -1 |
| parent_id | unsigned long long | No | 父订单ID,默认 0 |
| sort_by | utility::string_t | No | 排序方式,默认空 |
| seg_type | utility::string_t | No | 账户分段,默认空 |
返回
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)
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| account | utility::string_t | Yes | 资金账号 |
| order_id | long long | Yes | 订单号 |
重载二:按标的/条件查询
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)
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| account | utility::string_t | Yes | 资金账号 |
| symbol | utility::string_t | Yes | 标的代码 |
| sec_type | utility::string_t | No | 合约类型,默认空 |
| start_time | long | No | 起始时间戳(毫秒),默认 -1 |
| end_time | time_t | No | 结束时间戳(毫秒),默认 -1 |
| limit | int | No | 返回条数限制,默认 100 |
| expiry | utility::string_t | No | 期权到期日 |
| strike | utility::string_t | No | 期权行权价 |
| right | utility::string_t | No | 期权方向,如 U("PUT")/U("CALL") |
| order_id | long long | No | 订单号,默认 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)
说明
预览订单,返回预估的佣金、保证金等信息,不会实际提交订单
参数
| 参数名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| order | Order& | 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;Updated 11 days ago
