up
This commit is contained in:
@@ -382,6 +382,7 @@ class mt5(mt5Parent):
|
||||
update_data = self.safe_value(data, 'update', {})
|
||||
order_data = self.safe_value(update_data, 'order')
|
||||
if order_data:
|
||||
order_data['update_type'] = self.safe_value(update_data, 'type', None) # 这个字段可以判断是开仓还是平仓
|
||||
order = self.parse_ws_order(order_data)
|
||||
if order:
|
||||
# 使用简单的列表而不是 ArrayCacheBySymbolById
|
||||
@@ -601,7 +602,7 @@ class mt5(mt5Parent):
|
||||
"""解析单个订单数据"""
|
||||
if not order_data:
|
||||
return None
|
||||
|
||||
# print("++++++",order_data)
|
||||
try:
|
||||
symbol = self.safe_string(order_data, 'symbol')
|
||||
if symbol and len(symbol) >= 6:
|
||||
@@ -621,17 +622,33 @@ class mt5(mt5Parent):
|
||||
if timestamp is None:
|
||||
timestamp = self.milliseconds()
|
||||
|
||||
last_trade_timestamp = None
|
||||
last_trade_timestamp = timestamp
|
||||
if is_closed:
|
||||
last_trade_timestamp = self.parse8601(close_time)
|
||||
|
||||
mt5_order_type = self.safe_string(order_data, 'update_type', None)
|
||||
|
||||
amount = self.safe_number(order_data, 'lots', 0)
|
||||
filled = self.safe_number(order_data, 'closeLots', 0)
|
||||
price = self.safe_number(order_data, 'openPrice')
|
||||
side = self.parse_order_side(self.safe_string(order_data, 'orderType'))
|
||||
|
||||
if mt5_order_type == 'MarketOpen':
|
||||
amount = self.safe_number(order_data, 'lots', 0)
|
||||
filled = self.safe_number(order_data, 'lots', 0)
|
||||
elif mt5_order_type == 'MarketClose':
|
||||
amount = self.safe_number(self.safe_dict(order_data, 'dealInternalIn', {}), 'lots', 0)
|
||||
filled = self.safe_number(order_data, 'closeLots', 0)
|
||||
price = self.safe_number(order_data, 'closePrice')
|
||||
if side == 'buy':
|
||||
side = 'sell'
|
||||
else:
|
||||
side = 'buy'
|
||||
remaining = max(amount - filled, 0) if amount is not None and filled is not None else None
|
||||
|
||||
return {
|
||||
'id': self.safe_string(order_data, 'ticket'),
|
||||
'clientOrderId': None,
|
||||
'clientOrderId': self.safe_string(order_data, 'comment'),
|
||||
'datetime': self.iso8601(timestamp),
|
||||
'timestamp': timestamp,
|
||||
'lastTradeTimestamp': last_trade_timestamp,
|
||||
@@ -641,8 +658,8 @@ class mt5(mt5Parent):
|
||||
'type': self.parse_order_type(self.safe_string(order_data, 'orderType')),
|
||||
'timeInForce': None,
|
||||
'postOnly': None,
|
||||
'side': self.parse_order_side(self.safe_string(order_data, 'orderType')),
|
||||
'price': self.safe_number(order_data, 'openPrice'),
|
||||
'side': side,
|
||||
'price': price,
|
||||
'stopLossPrice': self.safe_number(order_data, 'stopLoss'),
|
||||
'takeProfitPrice': self.safe_number(order_data, 'takeProfit'),
|
||||
'reduceOnly': None,
|
||||
|
||||
Reference in New Issue
Block a user