diff --git a/ccxt.egg-info/PKG-INFO b/ccxt.egg-info/PKG-INFO index fbafb7d..f26e936 100644 --- a/ccxt.egg-info/PKG-INFO +++ b/ccxt.egg-info/PKG-INFO @@ -1,4 +1,4 @@ -Metadata-Version: 2.4 +Metadata-Version: 2.1 Name: ccxt Version: 4.5.18 Summary: A cryptocurrency trading API with more than 100 exchanges in JavaScript / TypeScript / Python / C# / PHP / Go @@ -32,34 +32,9 @@ Classifier: Programming Language :: PHP Classifier: Operating System :: OS Independent Classifier: Environment :: Console Description-Content-Type: text/markdown -License-File: LICENSE.txt -Requires-Dist: setuptools>=60.9.0 -Requires-Dist: certifi>=2018.1.18 -Requires-Dist: requests>=2.18.4 -Requires-Dist: cryptography>=2.6.1 -Requires-Dist: typing_extensions>=4.4.0 -Requires-Dist: aiohttp>=3.10.11; python_version >= "3.5.2" -Requires-Dist: aiodns>=1.1.1; python_version >= "3.5.2" -Requires-Dist: yarl>=1.7.2; python_version >= "3.5.2" -Requires-Dist: coincurve==21.0.0; python_version >= "3.9" and python_version <= "3.13" Provides-Extra: qa -Requires-Dist: ruff==0.0.292; extra == "qa" -Requires-Dist: tox>=4.8.0; extra == "qa" Provides-Extra: type -Requires-Dist: mypy==1.6.1; extra == "type" -Dynamic: author -Dynamic: author-email -Dynamic: classifier -Dynamic: description -Dynamic: description-content-type -Dynamic: home-page -Dynamic: keywords -Dynamic: license -Dynamic: license-file -Dynamic: project-url -Dynamic: provides-extra -Dynamic: requires-dist -Dynamic: summary +License-File: LICENSE.txt # CCXT – CryptoCurrency eXchange Trading Library diff --git a/ccxt/async_support/mt5.py b/ccxt/async_support/mt5.py index c1c5116..4a945c2 100644 --- a/ccxt/async_support/mt5.py +++ b/ccxt/async_support/mt5.py @@ -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): """解析订单信息 - 修复市场符号问题""" diff --git a/ccxt/mt5.py b/ccxt/mt5.py index 661c273..35f1bbd 100644 --- a/ccxt/mt5.py +++ b/ccxt/mt5.py @@ -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) diff --git a/test/test_mt5_tools.py b/test/test_mt5_tools.py index b531a9b..762bdd8 100644 --- a/test/test_mt5_tools.py +++ b/test/test_mt5_tools.py @@ -79,8 +79,8 @@ async def quick_order_test(): # balance = await exchange.fetch_balance() # logger.info(f"✅ 连接成功,余额: {balance}") - positions = await exchange.fetch_positions() - logger.info(f"✅ 连接成功,信息: {positions}") + # positions = await exchange.fetch_positions() + # logger.info(f"✅ 连接成功,信息: {positions}") # 获取市场信息 # markets = await exchange.fetch_markets() @@ -97,6 +97,10 @@ async def quick_order_test(): # 获取开单 # open_orders = await exchange.fetch_open_orders() # logger.info(f"✅ 当前开单数量: {len(open_orders)}") + + # 获取订单 + closed_orders = await exchange.fetch_closed_orders() + logger.info(f"✅ 当前订单: {closed_orders}") # for order in open_orders: # logger.info(f" 订单 {order['id']}: {order['symbol']} {order['side']} {order['type']} {order['status']}")