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