Skip to content

Commit bfb52b3

Browse files
committed
Merge branch 'feature_order_updatetime' into 'dev'
order update time See merge request server/openapi/openapi-python-sdk!122
2 parents 3b2e5d3 + aa70ce5 commit bfb52b3

File tree

6 files changed

+38
-7
lines changed

6 files changed

+38
-7
lines changed

tigeropen/common/consts/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,9 @@ class IndustryLevel(Enum):
140140
GGROUP = 'GGROUP'
141141
GIND = 'GIND'
142142
GSUBIND = 'GSUBIND'
143+
144+
145+
@unique
146+
class OrderSortBy(Enum):
147+
LATEST_CREATED = 'LATEST_CREATED'
148+
LATEST_STATUS_UPDATED = 'LATEST_STATUS_UPDATED'

tigeropen/push/push_client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@
6363
'latestTime': 'trade_time', 'contractId': 'contract_id', 'trailStopPrice': 'trail_stop_price',
6464
'trailingPercent': 'trailing_percent', 'percentOffset': 'percent_offset', 'action': 'action',
6565
'status': 'status', 'currency': 'currency', 'remaining': 'remaining', 'id': 'id',
66-
'segment': 'segment', 'identifier': 'identifier', 'replaceStatus': 'replace_status'}
66+
'segment': 'segment', 'identifier': 'identifier', 'replaceStatus': 'replace_status',
67+
'updateTime': 'update_time'}
6768

6869
if sys.platform == 'linux' or sys.platform == 'linux2':
6970
KEEPALIVE = True

tigeropen/trade/domain/order.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ class Order:
1616
"quantity", "filled", "_remaining", "avg_fill_price", "commission", "realized_pnl", "_status",
1717
"trail_stop_price", "limit_price", "aux_price", "trailing_percent", "percent_offset", "action",
1818
"order_type", "time_in_force", "outside_rth", "order_legs", "algo_params", "algo_strategy",
19-
"secret_key", "liquidation", "discount", "attr_desc", "source", 'adjust_limit', 'sub_ids', "user_mark"]
19+
"secret_key", "liquidation", "discount", "attr_desc", "source", 'adjust_limit', 'sub_ids', "user_mark",
20+
"update_time"]
2021

2122
def __init__(self, account, contract, action, order_type, quantity, limit_price=None, aux_price=None,
2223
trail_stop_price=None, trailing_percent=None, percent_offset=None, time_in_force=None,
@@ -31,6 +32,7 @@ def __init__(self, account, contract, action, order_type, quantity, limit_price=
3132
- order_time: 下单时间
3233
- reason: 下单失败时, 会返回失败原因的描述
3334
- trade_time: 最新成交时间
35+
- update_time: order updated time
3436
- action: 交易方向, 'BUY' / 'SELL'
3537
- quantity: 下单数量
3638
- filled: 成交数量
@@ -84,6 +86,7 @@ def __init__(self, account, contract, action, order_type, quantity, limit_price=
8486
self.percent_offset = percent_offset
8587
self.order_time = order_time
8688
self.trade_time = trade_time
89+
self.update_time = kwargs.get('update_time')
8790
self.order_legs = order_legs
8891
self.algo_params = algo_params
8992
self.secret_key = secret_key

tigeropen/trade/request/model.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,7 @@ def __init__(self):
437437
self._limit = None
438438
self._states = None
439439
self._parent_id = None
440+
self._sort_by = None
440441

441442
@property
442443
def account(self):
@@ -534,6 +535,14 @@ def parent_id(self):
534535
def parent_id(self, value):
535536
self._parent_id = value
536537

538+
@property
539+
def sort_by(self):
540+
return self._sort_by
541+
542+
@sort_by.setter
543+
def sort_by(self, value):
544+
self._sort_by = value
545+
537546
def to_openapi_dict(self):
538547
params = dict()
539548
if self.account:
@@ -572,6 +581,9 @@ def to_openapi_dict(self):
572581
if self.parent_id:
573582
params['parent_id'] = self.parent_id
574583

584+
if self.sort_by:
585+
params['sort_by'] = self.sort_by
586+
575587
return params
576588

577589

tigeropen/trade/response/orders_response.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
'contractId': 'contract_id', 'algoStrategy': 'algo_strategy',
2323
'trailStopPrice': 'trail_stop_price', 'trailingPercent': 'trailing_percent',
2424
'percentOffset': 'percent_offset', 'identifier': 'identifier', 'algoParameters': 'algo_params',
25-
'userMark': 'user_mark'
25+
'userMark': 'user_mark', 'updateTime': 'update_time'
2626
}
2727

2828

@@ -115,6 +115,8 @@ def parse_order(item, secret_key=None):
115115
order.order_time = order_fields.get('order_time')
116116
if 'trade_time' in order_fields:
117117
order.trade_time = order_fields.get('trade_time')
118+
if 'update_time' in order_fields:
119+
order.update_time = order_fields.get('update_time')
118120
if 'reason' in order_fields:
119121
order.reason = order_fields.get('reason')
120122
if secret_key is not None:

tigeropen/trade/trade_client.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ def get_prime_assets(self, account=None):
287287
return None
288288

289289
def get_orders(self, account=None, sec_type=None, market=Market.ALL, symbol=None, start_time=None, end_time=None,
290-
limit=100, is_brief=False, states=None):
290+
limit=100, is_brief=False, states=None, sort_by=None):
291291
"""
292292
获取订单列表
293293
:param account:
@@ -300,6 +300,8 @@ def get_orders(self, account=None, sec_type=None, market=Market.ALL, symbol=None
300300
:param limit: 每次获取订单的数量
301301
:param is_brief: 是否返回精简的订单数据
302302
:param states: 订单状态枚举对象列表, 可选, 若传递则按状态筛选
303+
:param sort_by: Field used to sort and filter start_time and end_time,available value can be imported from
304+
tigeropen.common.consts.OrderSortBY, like LATEST_CREATED or LATEST_STATUS_UPDATED
303305
:return: Order 对象构成的列表. Order 对象信息参见 tigeropen.trade.domain.order
304306
"""
305307
params = OrdersParams()
@@ -313,6 +315,8 @@ def get_orders(self, account=None, sec_type=None, market=Market.ALL, symbol=None
313315
params.limit = limit
314316
params.is_brief = is_brief
315317
params.states = [get_enum_value(state) for state in states] if states else None
318+
params.sort_by = get_enum_value(sort_by)
319+
316320
request = OpenApiRequest(ORDERS, biz_model=params)
317321
response_content = self.__fetch_data(request)
318322
if response_content:
@@ -325,7 +329,7 @@ def get_orders(self, account=None, sec_type=None, market=Market.ALL, symbol=None
325329
return None
326330

327331
def get_open_orders(self, account=None, sec_type=None, market=Market.ALL, symbol=None, start_time=None,
328-
end_time=None, parent_id=None):
332+
end_time=None, parent_id=None, sort_by=None):
329333
"""
330334
获取待成交订单列表. 参数同 get_orders
331335
:param parent_id: 主订单 order_id
@@ -339,6 +343,7 @@ def get_open_orders(self, account=None, sec_type=None, market=Market.ALL, symbol
339343
params.start_date = start_time
340344
params.end_date = end_time
341345
params.parent_id = parent_id
346+
params.sort_by = get_enum_value(sort_by)
342347
request = OpenApiRequest(ACTIVE_ORDERS, biz_model=params)
343348
response_content = self.__fetch_data(request)
344349
if response_content:
@@ -351,7 +356,7 @@ def get_open_orders(self, account=None, sec_type=None, market=Market.ALL, symbol
351356
return None
352357

353358
def get_cancelled_orders(self, account=None, sec_type=None, market=Market.ALL, symbol=None, start_time=None,
354-
end_time=None):
359+
end_time=None, sort_by=None):
355360
"""
356361
获取已撤销订单列表. 参数同 get_orders
357362
"""
@@ -363,6 +368,7 @@ def get_cancelled_orders(self, account=None, sec_type=None, market=Market.ALL, s
363368
params.symbol = symbol
364369
params.start_date = start_time
365370
params.end_date = end_time
371+
params.sort_by = get_enum_value(sort_by)
366372
request = OpenApiRequest(INACTIVE_ORDERS, biz_model=params)
367373
response_content = self.__fetch_data(request)
368374
if response_content:
@@ -375,7 +381,7 @@ def get_cancelled_orders(self, account=None, sec_type=None, market=Market.ALL, s
375381
return None
376382

377383
def get_filled_orders(self, account=None, sec_type=None, market=Market.ALL, symbol=None, start_time=None,
378-
end_time=None):
384+
end_time=None, sort_by=None):
379385
"""
380386
获取已成交订单列表. 参数同 get_orders
381387
"""
@@ -387,6 +393,7 @@ def get_filled_orders(self, account=None, sec_type=None, market=Market.ALL, symb
387393
params.symbol = symbol
388394
params.start_date = start_time
389395
params.end_date = end_time
396+
params.sort_by = get_enum_value(sort_by)
390397
request = OpenApiRequest(FILLED_ORDERS, biz_model=params)
391398
response_content = self.__fetch_data(request)
392399
if response_content:

0 commit comments

Comments
 (0)