Get Order Info

get_order Get Single Order

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

Description

Query single order details by order ID, returns an Order struct object

Parameters

ParameterTypeRequiredDescription
idunsigned long longYesOrder ID
is_briefboolNoWhether brief information, default false

Return

Order object

Order Object Properties

PropertyTypeDescription
idunsigned long longOrder ID
order_idlongExternal order ID
accountutility::string_tFund account
contractContractContract object (contains symbol, sec_type, market, currency, etc.)
actionutility::string_tTrade direction BUY/SELL
order_typeutility::string_tOrder type MKT/LMT/STP/STP_LMT/TRAIL
total_quantitylong longTotal order quantity
filled_quantitylong longFilled quantity
limit_pricedoubleLimit price
aux_pricedoubleStop trigger price
trailing_percentdoubleTrailing stop percentage
avg_fill_pricedoubleAverage fill price
statusutility::string_tOrder status
time_in_forceutility::string_tOrder validity period
outside_rthboolWhether pre/post market
realized_pnldoubleRealized P&L
commissiondoubleCommission
open_timetime_tOrder placement time
latest_timetime_tLatest fill time
update_timetime_tOrder update time
user_markutility::string_tUser remarks
reasonutility::string_tOrder failure reason

Example

#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 Get Order List

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)

Description

Query order list. This method provides both enum and string overloaded versions.

Parameters (String Version)

ParameterTypeRequiredDescription
accountutility::string_tNoFund account
sec_typeutility::string_tNoSecurity type, e.g., U("STK"), default empty
marketutility::string_tNoMarket, default U("ALL")
symbolutility::string_tNoSymbol code, default empty
start_datetime_tNoStart timestamp (milliseconds), default -1
end_datetime_tNoEnd timestamp (milliseconds), default -1
limitintNoNumber of records limit, default 100
is_briefboolNoWhether brief information, default false
statesvalueNoOrder status filter array
sort_byutility::string_tNoSort method, default empty
seg_typeutility::string_tNoAccount segment, default empty

Parameters (Enum Version)

ParameterTypeRequiredDescription
accountutility::string_tYesFund account
sec_typeSecTypeNoSecurity type, default SecType::ALL
marketMarketNoMarket, default Market::ALL
symbolutility::string_tNoSymbol code
start_datetime_tNoStart timestamp (milliseconds), default -1
end_datetime_tNoEnd timestamp (milliseconds), default -1
limitintNoNumber of records limit, default 100
is_briefboolNoWhether brief information, default false
statesvalueNoOrder status filter array
sort_byOrderSortByNoSort method, default OrderSortBy::LATEST_STATUS_UPDATED
seg_typeSegmentTypeNoAccount segment, default SegmentType::SEC

Return

web::json::value JSON array

Example

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

Description

Query currently active (unfilled) order list

Parameters (String Version)

ParameterTypeRequiredDescription
accountutility::string_tNoFund account
sec_typeutility::string_tNoSecurity type, default empty
marketutility::string_tNoMarket, default U("ALL")
symbolutility::string_tNoSymbol code
start_datetime_tNoStart timestamp, default -1
end_datetime_tNoEnd timestamp, default -1
parent_idunsigned long longNoParent order ID, default 0
sort_byutility::string_tNoSort method, default empty
seg_typeutility::string_tNoAccount segment, default empty

Return

web::json::value JSON array

Example

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

Description

Query inactive order list (cancelled, expired, etc.)

Parameters

Same parameters as get_active_orders

Return

web::json::value JSON array

Example

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

Description

Query filled order list

Parameters

Same parameters as get_active_orders

Return

web::json::value JSON array

Example

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 Get Transaction Records

Description

Query transaction records. Two overloaded versions: query by order ID and query by symbol/conditions.

Overload 1: Query by Order ID

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

ParameterTypeRequiredDescription
accountutility::string_tYesFund account
order_idlong longYesOrder ID

Overload 2: Query by Symbol/Conditions

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)

ParameterTypeRequiredDescription
accountutility::string_tYesFund account
symbolutility::string_tYesSymbol code
sec_typeutility::string_tNoSecurity type, default empty
start_timelongNoStart timestamp (milliseconds), default -1
end_timetime_tNoEnd timestamp (milliseconds), default -1
limitintNoNumber of records limit, default 100
expiryutility::string_tNoOption expiry date
strikeutility::string_tNoOption strike price
rightutility::string_tNoOption direction, e.g., U("PUT")/U("CALL")
order_idlong longNoOrder ID, default 0

Return

web::json::value JSON array

Example

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

// Query by order ID
value transactions = trade_client.get_transactions(config.account, 14275856193552384LL);
ucout << transactions.serialize() << std::endl;

// Query by symbol
value trans2 = trade_client.get_transactions(config.account, U("AAPL"));
ucout << trans2.serialize() << std::endl;

preview_order Preview Order

value TradeClient::preview_order(Order &order)

Description

Preview an order, returning estimated commission, margin, and other information without actually submitting the order

Parameters

ParameterTypeRequiredDescription
orderOrder&YesOrder object

Return

web::json::value JSON object containing estimated information

Example

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