Files
ccxt_with_mt5/test/atest_mt5_quick.py
lz_db 0fab423a18 add
2025-11-16 12:31:03 +08:00

136 lines
3.9 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import asyncio
import logging
from ccxt import mt5 as mt5_sync
from ccxt.async_support import mt5 as mt5_async
# 简单日志配置
logging.basicConfig(level=logging.INFO, format='%(message)s')
logger = logging.getLogger('MT5-Quick-Test')
CONFIG = {
'apiKey': '76888962',
'secret': 'LZ-trade666888',
'verbose': False, # 启用详细日志
'hostname': '43.167.188.220:5000',
'host': '18.163.85.196',
'port': 443,
}
def quick_sync_test():
"""快速同步测试"""
logger.info("🔧 快速同步测试...")
try:
exchange = mt5_sync(CONFIG)
# 测试连接
logger.info("1. 测试连接...")
token = exchange.get_token()
logger.info(f" ✅ Token: {token}")
# # 测试交易对
logger.info("4. 测试交易对...")
markets = exchange.fetch_markets()
logger.info(f" ✅ 交易对数量: {len(markets)}")
# # 测试余额
# logger.info("2. 测试余额...")
# balance = exchange.fetch_balance()
# logger.info(f" ✅ 余额: {balance['total'].get('USDT', 'N/A')}")
# 测试行情
# logger.info("3. 测试行情...")
# ticker = exchange.fetch_ticker('EUR/USD')
# logger.info(f" ✅ EUR/USD: {ticker['bid']} / {ticker['ask']}")
# 测试订单
logger.info("3. 测试订单...")
ticker = exchange.fetch_closed_orders('EUR/USD')
logger.info(f" ✅ EUR/USD: {ticker['bid']} / {ticker['ask']}")
logger.info("🎉 快速同步测试完成!")
return True
except Exception as e:
logger.error(f"❌ 快速同步测试失败: {e}")
return False
async def quick_async_test():
"""快速异步测试"""
logger.info("\n🔧 快速异步测试...")
try:
exchange = mt5_async(CONFIG)
# 测试连接
logger.info("1. 测试异步连接...")
token = await exchange.get_token()
logger.info(f" ✅ Token: {token}")
# 测试余额
logger.info("2. 测试异步余额...")
balance = await exchange.fetch_balance()
logger.info(f" ✅ 余额: {balance['total'].get('USDT', 'N/A')}")
# 测试行情
logger.info("3. 测试异步行情...")
ticker = await exchange.fetch_ticker('EUR/USD')
logger.info(f" ✅ EUR/USD: {ticker['bid']} / {ticker['ask']}")
await exchange.close()
logger.info("🎉 快速异步测试完成!")
return True
except Exception as e:
logger.error(f"❌ 快速异步测试失败: {e}")
return False
async def main():
"""运行快速测试"""
print("🚀 MT5 快速测试")
print("="*40)
# 同步测试
sync_success = quick_sync_test()
# 异步测试
# async_success = await quick_async_test()
async_success = True
print("\n" + "="*40)
print("📊 快速测试结果")
print(f"同步测试: {'✅ 通过' if sync_success else '❌ 失败'}")
print(f"异步测试: {'✅ 通过' if async_success else '❌ 失败'}")
if sync_success and async_success:
print("🎉 所有快速测试通过!")
else:
print("⚠️ 部分测试失败,请运行完整测试套件查看详情")
if __name__ == "__main__":
# asyncio.run(main())
exchange = mt5_sync(CONFIG)
# 测试连接
logger.info("1. 测试连接...")
token = exchange.get_token()
logger.info(f" ✅ Token: {token}")
# # 测试交易对
logger.info("4. 测试交易对...")
markets = exchange.fetch_markets()
logger.info(f" ✅ 交易对数量: {len(markets)}")
logger.info("3. 测试订单...")
ticker = exchange.fetch_closed_orders('BTC/USD')
logger.info(f"{ticker}")