This commit is contained in:
lz_db
2025-11-29 23:45:55 +08:00
parent efd59755d8
commit 0795f47168
4 changed files with 33 additions and 35 deletions

View File

@@ -19,6 +19,7 @@ from ccxt.base.errors import ExchangeNotAvailable
from ccxt.base.errors import InvalidNonce
from ccxt.base.decimal_to_precision import TICK_SIZE
from ccxt.base.precise import Precise
from datetime import datetime, timedelta
class mt5(Exchange, ImplicitAPI):
@@ -713,23 +714,31 @@ class mt5(Exchange, ImplicitAPI):
"""异步获取已平仓订单 - 修复版本"""
if not hasattr(self, 'token') or not self.token:
await self.get_token()
yesterday = datetime.now() - timedelta(days=3)
from_day = yesterday.strftime('%Y-%m-%d') + 'T00:00:00'
tomorrow = datetime.now() + timedelta(days=1)
to_day = tomorrow.strftime('%Y-%m-%d') + 'T00:00:00'
request = {
'id': self.token,
'from': from_day,
'to': to_day,
'sort': 'OpenTime',
'ascending': 'true',
}
response = await self.private_get_closedorders(self.extend(request, params))
response = await self.private_get_orderhistory(self.extend(request, params))
data = self.safe_list(response, 'orders')
# 如果指定了特定交易对,进行过滤
if symbol is not None:
market = self.market(symbol)
filtered_orders = []
for order in response:
for order in data:
if isinstance(order, dict) and order.get('symbol') == market['id']:
filtered_orders.append(order)
return self.parse_orders(filtered_orders, market, since, limit)
else:
return self.parse_orders(response, None, since, limit)
return self.parse_orders(data, None, since, limit)
def parse_order(self, order, market=None):
"""解析订单信息 - 修复市场符号问题"""

View File

@@ -24,6 +24,7 @@ from ccxt.base.errors import InvalidNonce
from ccxt.base.errors import RequestTimeout
from ccxt.base.decimal_to_precision import TICK_SIZE
from ccxt.base.precise import Precise
from datetime import datetime, timedelta
class mt5(Exchange, ImplicitAPI):
@@ -730,11 +731,20 @@ class mt5(Exchange, ImplicitAPI):
def fetch_closed_orders(self, symbol=None, since=None, limit=None, params={}):
"""获取已平仓订单"""
self.load_token()
yesterday = datetime.now() - timedelta(days=3)
from_day = yesterday.strftime('%Y-%m-%d') + 'T00:00:00'
tomorrow = datetime.now() + timedelta(days=1)
to_day = tomorrow.strftime('%Y-%m-%d') + 'T00:00:00'
request = {
'id': self.token,
'from': from_day,
'to': to_day,
'sort': 'OpenTime',
'ascending': 'true',
}
response = self.private_get_closedorders(self.extend(request, params))
response = self.private_get_orderhistory(self.extend(request, params))
data = self.safe_list(response, 'orders')
if symbol is not None:
market = self.market(symbol)