Skip to content

Commit 0011c19

Browse files
committed
Merge branch 'revert-1f4f55ca' into 'master'
Revert "Merge branch 'revert-72034881' into 'master'" See merge request server/openapi/openapi-python-sdk!103
2 parents e8dbff2 + adf932f commit 0011c19

File tree

5 files changed

+27
-17
lines changed

5 files changed

+27
-17
lines changed

tigeropen/trade/domain/order.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ class Order:
1515
__slots__ = ["account", "id", "order_id", "parent_id", "order_time", "reason", "trade_time", "contract", "action",
1616
"quantity", "filled", "_remaining", "avg_fill_price", "commission", "realized_pnl", "_status",
1717
"trail_stop_price", "limit_price", "aux_price", "trailing_percent", "percent_offset", "action",
18-
"order_type", "time_in_force", "outside_rth", "order_legs", "algo_params", "secret_key", "liquidation",
19-
"algo_strategy", "discount", "attr_desc", "source"]
18+
"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']
2020

2121
def __init__(self, account, contract, action, order_type, quantity, limit_price=None, aux_price=None,
2222
trail_stop_price=None, trailing_percent=None, percent_offset=None, time_in_force=None,
@@ -39,7 +39,7 @@ def __init__(self, account, contract, action, order_type, quantity, limit_price=
3939
- realized_pnl: 实现盈亏
4040
- trail_stop_price: 跟踪止损单--触发止损单的价格
4141
- limit_price: 限价单价格
42-
- aux_price: 在止损单中, 表示出发止损单的价格, 在移动止损单中, 表示跟踪的价差
42+
- aux_price: 在止损单中, 表示触发止损单的价格, 在移动止损单中, 表示跟踪的价差
4343
- trailing_percent: 跟踪止损单-百分比, 取值范围为0-100
4444
- percent_offset: None,
4545
- order_type: 订单类型, 'MKT' 市价单 / 'LMT' 限价单 / 'STP' 止损单 / 'STP_LMT' 止损限价单 / 'TRAIL' 跟踪止损单
@@ -54,6 +54,9 @@ def __init__(self, account, contract, action, order_type, quantity, limit_price=
5454
- liquidation
5555
- algo_strategy
5656
- discount
57+
- adjust_limit 价格微调幅度(默认为0表示不调整,正数为向上调整,负数向下调整),对传入价格自动调整到合法价位上.
58+
例如:0.001 代表向上调整且幅度不超过 0.1%;-0.001 代表向下调整且幅度不超过 0.1%。默认 0 表示不调整
59+
- sub_ids id list of sub orders.
5760
"""
5861

5962
self.id = id
@@ -87,7 +90,9 @@ def __init__(self, account, contract, action, order_type, quantity, limit_price=
8790
self.algo_strategy = kwargs.get('algo_strategy')
8891
self.discount = kwargs.get('discount')
8992
self.attr_desc = kwargs.get('attr_desc')
90-
self.source = kwargs.get("source")
93+
self.source = kwargs.get('source')
94+
self.adjust_limit = kwargs.get('adjust_limit')
95+
self.sub_ids = kwargs.get('sub_ids')
9196

9297
def to_dict(self):
9398
dct = {name: getattr(self, name) for name in self.__slots__ if name not in ORDER_FIELDS_TO_IGNORE}

tigeropen/trade/request/model.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -724,6 +724,7 @@ def __init__(self):
724724
self.outside_rth = None
725725
self.order_legs = None
726726
self.algo_params = None
727+
self.adjust_limit = None
727728

728729
def to_openapi_dict(self):
729730
params = dict()
@@ -777,6 +778,8 @@ def to_openapi_dict(self):
777778
params['time_in_force'] = self.time_in_force
778779
if self.outside_rth is not None:
779780
params['outside_rth'] = self.outside_rth
781+
if self.adjust_limit is not None:
782+
params['adjust_limit'] = self.adjust_limit
780783

781784
if self.order_legs:
782785
if len(self.order_legs) > 2:

tigeropen/trade/response/order_id_response.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def __init__(self):
1313
super(OrderIdResponse, self).__init__()
1414
self.order_id = None
1515
self.id = None
16+
self.sub_ids = None
1617
self._is_success = None
1718

1819
def parse_response_content(self, response_content):
@@ -32,3 +33,6 @@ def parse_response_content(self, response_content):
3233

3334
if 'id' in data_json:
3435
self.id = data_json['id']
36+
37+
if 'subIds' in data_json:
38+
self.sub_ids = data_json['subIds']

tigeropen/trade/response/orders_response.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
'timeInForce': 'time_in_force', 'openTime': 'order_time', 'latestTime': 'trade_time',
2222
'contractId': 'contract_id', 'algoStrategy': 'algo_strategy',
2323
'trailStopPrice': 'trail_stop_price', 'trailingPercent': 'trailing_percent',
24-
'percentOffset': 'percent_offset', 'identifier': 'identifier', 'algoParameters': 'algo_params'}
24+
'percentOffset': 'percent_offset', 'identifier': 'identifier', 'algoParameters': 'algo_params'
25+
}
2526

2627

2728
class OrdersResponse(TigerResponse):

tigeropen/trade/trade_client.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ def get_order(self, account=None, id=None, order_id=None, is_brief=False):
399399

400400
def create_order(self, account, contract, action, order_type, quantity, limit_price=None, aux_price=None,
401401
trail_stop_price=None, trailing_percent=None, percent_offset=None, time_in_force=None,
402-
outside_rth=None, order_legs=None, algo_params=None):
402+
outside_rth=None, order_legs=None, algo_params=None, **kwargs):
403403
"""
404404
创建订单对象.
405405
:param account:
@@ -431,7 +431,7 @@ def create_order(self, account, contract, action, order_type, quantity, limit_pr
431431
aux_price=aux_price, trail_stop_price=trail_stop_price,
432432
trailing_percent=trailing_percent, percent_offset=percent_offset,
433433
time_in_force=time_in_force, outside_rth=outside_rth, order_id=order_id,
434-
order_legs=order_legs, algo_params=algo_params, secret_key=params.secret_key)
434+
order_legs=order_legs, algo_params=algo_params, secret_key=params.secret_key, **kwargs)
435435
return order
436436
else:
437437
raise ApiException(response.code, response.message)
@@ -505,6 +505,7 @@ def place_order(self, order):
505505
params.order_legs = order.order_legs
506506
params.algo_params = order.algo_params
507507
params.secret_key = order.secret_key if order.secret_key else self._secret_key
508+
params.adjust_limit = order.adjust_limit
508509

509510
request = OpenApiRequest(PLACE_ORDER, biz_model=params)
510511
response_content = self.__fetch_data(request)
@@ -513,17 +514,16 @@ def place_order(self, order):
513514
response.parse_response_content(response_content)
514515
if response.is_success():
515516
order.id = response.id
517+
order.sub_ids = response.sub_ids
516518
if order.order_id is None and response.order_id:
517519
order.order_id = response.order_id
518-
return True
520+
return response.id
519521
else:
520522
raise ApiException(response.code, response.message)
521523

522-
return False
523-
524524
def modify_order(self, order, quantity=None, limit_price=None, aux_price=None,
525525
trail_stop_price=None, trailing_percent=None, percent_offset=None,
526-
time_in_force=None, outside_rth=None):
526+
time_in_force=None, outside_rth=None, **kwargs):
527527
"""
528528
修改订单
529529
:param order:
@@ -553,19 +553,18 @@ def modify_order(self, order, quantity=None, limit_price=None, aux_price=None,
553553
params.time_in_force = time_in_force if time_in_force is not None else order.time_in_force
554554
params.outside_rth = outside_rth if outside_rth is not None else order.outside_rth
555555
params.secret_key = order.secret_key if order.secret_key else self._secret_key
556+
params.adjust_limit = kwargs.get('adjust_limit', order.adjust_limit)
556557

557558
request = OpenApiRequest(MODIFY_ORDER, biz_model=params)
558559
response_content = self.__fetch_data(request)
559560
if response_content:
560561
response = OrderIdResponse()
561562
response.parse_response_content(response_content)
562563
if response.is_success():
563-
return response.order_id == order.order_id if order.order_id else response.id == order.id
564+
return response.id
564565
else:
565566
raise ApiException(response.code, response.message)
566567

567-
return False
568-
569568
def cancel_order(self, account=None, id=None, order_id=None):
570569
"""
571570
取消订单
@@ -585,12 +584,10 @@ def cancel_order(self, account=None, id=None, order_id=None):
585584
response = OrderIdResponse()
586585
response.parse_response_content(response_content)
587586
if response.is_success():
588-
return response.order_id == order_id if order_id else response.id == id
587+
return response.id
589588
else:
590589
raise ApiException(response.code, response.message)
591590

592-
return False
593-
594591
def get_transactions(self, account=None, order_id=None, symbol=None, sec_type=None, start_time=None, end_time=None,
595592
limit=100, expiry=None, strike=None, put_call=None):
596593
"""

0 commit comments

Comments
 (0)