This commit is contained in:
lz_db
2025-11-30 11:19:39 +08:00
parent 6bb93a3968
commit a630c42ddd
4 changed files with 68 additions and 32 deletions

View File

@@ -766,6 +766,8 @@ class mt5(Exchange, ImplicitAPI):
timestamp = self.parse8601(self.safe_string(order, 'openTime'))
last_trade_timestamp = self.parse8601(self.safe_string(order, 'closeTime'))
if last_trade_timestamp is None:
last_trade_timestamp = timestamp
status = self.parse_order_status(self.safe_string(order, 'state'))
side = self.parse_order_side(self.safe_string(order, 'orderType'))
@@ -796,7 +798,7 @@ class mt5(Exchange, ImplicitAPI):
return self.safe_order({
'id': id,
'clientOrderId': None,
'clientOrderId': self.safe_string(order, 'comment'),
'datetime': self.iso8601(timestamp),
'timestamp': timestamp,
'lastTradeTimestamp': last_trade_timestamp,
@@ -836,13 +838,22 @@ class mt5(Exchange, ImplicitAPI):
def parse_order_status(self, status):
statuses = {
'Started': 'open',
'Placed': 'open',
'Cancelled': 'canceled',
'Partial': 'open',
'Filled': 'closed',
'Rejected': 'rejected',
'Expired': 'expired',
# MT5 状态 -> CCXT 标准状态
'Started': 'open', # 订单已开始
'Placed': 'open', # 订单已放置
'RequestAdding': 'pending', # 请求添加订单(待处理)
'RequestModifying': 'pending', # 请求修改订单(待处理)
'RequestCancelling': 'pending', # 请求取消订单(待处理)
'Partial': 'open', # 订单部分成交(仍可继续成交)
'Filled': 'closed', # 订单完全成交
'Cancelled': 'canceled', # 订单已取消
'Rejected': 'rejected', # 订单被拒绝
'Expired': 'expired', # 订单已过期
# 备用映射
'New': 'open',
'Active': 'open',
'Done': 'closed',
'Canceled': 'canceled',
}
return self.safe_string(statuses, status, status)