处理时间差,统一UTC时间

This commit is contained in:
lz_db
2025-11-30 19:29:17 +08:00
parent ef0058aded
commit 502a0c49f2
3 changed files with 33 additions and 17 deletions

View File

@@ -156,6 +156,10 @@ class mt5(Exchange, ImplicitAPI):
response = await self.private_get_connect(request)
self.token = response
self.diff_milliseconds = 0 # 重置时间差
# 获取服务器时区
await self.server_timezone()
return self.token
async def check_connect(self):
@@ -367,6 +371,7 @@ class mt5(Exchange, ImplicitAPI):
}
response = await self.private_get_servertimezone(request)
self.timezone = int(float(response))
self.diff_milliseconds = self.timezone * 3600 * 1000
return self.timezone
async def fetch_balance(self, params={}):
@@ -567,7 +572,7 @@ class mt5(Exchange, ImplicitAPI):
"""异步获取持仓信息"""
if not hasattr(self, 'token') or not self.token:
await self.get_token()
await self.server_timezone()
request = {
'id': self.token,
}
@@ -602,8 +607,8 @@ class mt5(Exchange, ImplicitAPI):
close_lots = self.safe_number(position, 'closeLots', 0)
# 解析时间戳
timestamp = self.parse8601(self.safe_string(position, 'openTime'))
open_timestamp_utc = self.safe_integer(position, 'openTimestampUTC')
timestamp = self.parse8601(self.safe_string(position, 'openTime')) - self.diff_milliseconds
open_timestamp_utc = self.safe_integer(position, 'openTimestampUTC') - self.diff_milliseconds
if open_timestamp_utc:
timestamp = open_timestamp_utc
@@ -692,10 +697,12 @@ class mt5(Exchange, ImplicitAPI):
"""异步获取未平仓订单 - 修复版本"""
if not hasattr(self, 'token') or not self.token:
await self.get_token()
request = {
'id': self.token,
}
await self.server_timezone()
response = await self.private_get_openedorders(self.extend(request, params))
@@ -714,7 +721,9 @@ class mt5(Exchange, ImplicitAPI):
"""异步获取已平仓订单 - 修复版本"""
if not hasattr(self, 'token') or not self.token:
await self.get_token()
await self.server_timezone()
if params.get('from') is None or params.get('to') is None:
yesterday = datetime.now() - timedelta(days=3)
params['from'] = yesterday.strftime('%Y-%m-%d') + 'T00:00:00'
@@ -764,8 +773,8 @@ class mt5(Exchange, ImplicitAPI):
# 如果无法解析,使用原始 market_id
symbol = market_id
timestamp = self.parse8601(self.safe_string(order, 'openTime'))
last_trade_timestamp = self.parse8601(self.safe_string(order, 'closeTime'))
timestamp = self.parse8601(self.safe_string(order, 'openTime')) - self.diff_milliseconds
last_trade_timestamp = self.parse8601(self.safe_string(order, 'closeTime')) - self.diff_milliseconds
if last_trade_timestamp is None:
last_trade_timestamp = timestamp