Skip to content

Commit 2098be1

Browse files
committed
add get_filled_orders
1 parent 32997cb commit 2098be1

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed

include/tigerapi/trade_client.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,32 @@ namespace TIGER_API {
104104
OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
105105
SegmentType seg_type = SegmentType::SEC);
106106

107+
/** 获取已成交订单 **/
108+
value get_filled_orders(utility::string_t account = U(""), utility::string_t sec_type = U(""),
109+
utility::string_t market = U("ALL"),
110+
utility::string_t symbol = U(""), long start_time = -1, long end_time = -1, long parent_id = 0,
111+
utility::string_t sort_by = U(""),
112+
utility::string_t seg_type = U(""));
113+
114+
value get_filled_orders(utility::string_t account, SecType sec_type = SecType::ALL,
115+
Market market = Market::ALL,
116+
utility::string_t symbol = U(""), long start_time = -1, long end_time = -1, long parent_id = 0,
117+
OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
118+
SegmentType seg_type = SegmentType::SEC);
119+
120+
/** 获取已取消订单 **/
121+
value get_inactive_orders(utility::string_t account = U(""), utility::string_t sec_type = U(""),
122+
utility::string_t market = U("ALL"),
123+
utility::string_t symbol = U(""), long start_time = -1, long end_time = -1, long parent_id = 0,
124+
utility::string_t sort_by = U(""),
125+
utility::string_t seg_type = U(""));
126+
127+
value get_inactive_orders(utility::string_t account, SecType sec_type = SecType::ALL,
128+
Market market = Market::ALL,
129+
utility::string_t symbol = U(""), long start_time = -1, long end_time = -1, long parent_id = 0,
130+
OrderSortBy sort_by = OrderSortBy::LATEST_STATUS_UPDATED,
131+
SegmentType seg_type = SegmentType::SEC);
132+
107133
Order get_order(long id, bool is_brief=false);
108134
Order get_transactions(utility::string_t account = U(""), long order_id = 0, utility::string_t sec_type = U(""),
109135
utility::string_t symbol = U(""), long start_time = -1, long end_time = -1,

src/trade_client.cpp

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,87 @@ namespace TIGER_API {
191191
}
192192

193193

194+
value
195+
TradeClient::get_filled_orders(utility::string_t account, utility::string_t sec_type, utility::string_t market,
196+
utility::string_t symbol, long start_time, long end_time, long parent_id,
197+
utility::string_t sort_by, utility::string_t seg_type) {
198+
value obj = value::object(true);
199+
obj[P_ACCOUNT] = get_account_param(account);
200+
if (!sec_type.empty()) {
201+
obj[P_SEC_TYPE] = value::string(sec_type);
202+
}
203+
if (!market.empty()) {
204+
obj[P_MARKET] = value::string(market);
205+
}
206+
if (!symbol.empty()) {
207+
obj[P_SYMBOL] = value::string(symbol);
208+
}
209+
if (start_time != -1 && start_time != 0) {
210+
obj[P_START_TIME] = start_time;
211+
}
212+
if (end_time != -1 && end_time != 0) {
213+
obj[P_END_TIME] = end_time;
214+
}
215+
if (parent_id != 0) {
216+
obj[U("parent_id")] = parent_id;
217+
}
218+
if (!sort_by.empty()) {
219+
obj[U("sort_by")] = value::string(sort_by);
220+
}
221+
if (!seg_type.empty()) {
222+
obj[P_SEG_TYPE] = value::string(seg_type);
223+
}
224+
return post(FILLED_ORDERS, obj)[P_ITEMS];
225+
}
226+
227+
value
228+
TradeClient::get_filled_orders(utility::string_t account, SecType sec_type, Market market, utility::string_t symbol, long start_time,
229+
long end_time, long parent_id, OrderSortBy sort_by, SegmentType seg_type) {
230+
return get_filled_orders(account, enum_to_str(sec_type), enum_to_str(market), symbol, start_time, end_time,
231+
parent_id, enum_to_str(sort_by), enum_to_str(seg_type));
232+
}
233+
234+
235+
value
236+
TradeClient::get_inactive_orders(utility::string_t account, utility::string_t sec_type, utility::string_t market,
237+
utility::string_t symbol, long start_time, long end_time, long parent_id,
238+
utility::string_t sort_by, utility::string_t seg_type) {
239+
value obj = value::object(true);
240+
obj[P_ACCOUNT] = get_account_param(account);
241+
if (!sec_type.empty()) {
242+
obj[P_SEC_TYPE] = value::string(sec_type);
243+
}
244+
if (!market.empty()) {
245+
obj[P_MARKET] = value::string(market);
246+
}
247+
if (!symbol.empty()) {
248+
obj[P_SYMBOL] = value::string(symbol);
249+
}
250+
if (start_time != -1 && start_time != 0) {
251+
obj[P_START_TIME] = start_time;
252+
}
253+
if (end_time != -1 && end_time != 0) {
254+
obj[P_END_TIME] = end_time;
255+
}
256+
if (parent_id != 0) {
257+
obj[U("parent_id")] = parent_id;
258+
}
259+
if (!sort_by.empty()) {
260+
obj[U("sort_by")] = value::string(sort_by);
261+
}
262+
if (!seg_type.empty()) {
263+
obj[P_SEG_TYPE] = value::string(seg_type);
264+
}
265+
return post(FILLED_ORDERS, obj)[P_ITEMS];
266+
}
267+
268+
value
269+
TradeClient::get_inactive_orders(utility::string_t account, SecType sec_type, Market market, utility::string_t symbol, long start_time,
270+
long end_time, long parent_id, OrderSortBy sort_by, SegmentType seg_type) {
271+
return get_inactive_orders(account, enum_to_str(sec_type), enum_to_str(market), symbol, start_time, end_time,
272+
parent_id, enum_to_str(sort_by), enum_to_str(seg_type));
273+
}
274+
194275
value TradeClient::get_contract(utility::string_t symbol, utility::string_t sec_type, utility::string_t currency, utility::string_t exchange, long expiry,
195276
double strike, utility::string_t right) {
196277
value obj = value::object(true);

0 commit comments

Comments
 (0)