64 lines
2.3 KiB
Python
64 lines
2.3 KiB
Python
import os
|
|
import logging
|
|
import sys
|
|
|
|
# Configure logging
|
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
logger = logging.getLogger(__name__)
|
|
|
|
# Add project root to path
|
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
|
|
from NN.exchanges.mexc_interface import MEXCInterface
|
|
from core.config import get_config
|
|
|
|
def test_mexc_private_api():
|
|
"""Test MEXC private API endpoints"""
|
|
# Load configuration
|
|
config = get_config('config.yaml')
|
|
mexc_config = config.get('mexc_trading', {})
|
|
|
|
# Get API credentials
|
|
api_key = os.getenv('MEXC_API_KEY', mexc_config.get('api_key', ''))
|
|
api_secret = os.getenv('MEXC_SECRET_KEY', mexc_config.get('api_secret', ''))
|
|
|
|
if not api_key or not api_secret:
|
|
logger.error("API key or secret not found. Please set MEXC_API_KEY and MEXC_SECRET_KEY environment variables.")
|
|
return
|
|
|
|
# Initialize MEXC interface in test mode
|
|
mexc = MEXCInterface(api_key=api_key, api_secret=api_secret, test_mode=True, trading_mode='simulation')
|
|
|
|
# Test connection
|
|
if not mexc.connect():
|
|
logger.error("Failed to connect to MEXC API")
|
|
return
|
|
|
|
# Test getting account information
|
|
logger.info("Testing account information retrieval...")
|
|
account_info = mexc.get_account_info()
|
|
if account_info:
|
|
logger.info(f"Account info retrieved: {account_info}")
|
|
else:
|
|
logger.error("Failed to retrieve account info")
|
|
|
|
# Test getting balance for a specific asset
|
|
asset = "USDT"
|
|
logger.info(f"Testing balance retrieval for {asset}...")
|
|
balance = mexc.get_balance(asset)
|
|
logger.info(f"Balance for {asset}: {balance}")
|
|
|
|
# Test placing a simulated order (in test mode)
|
|
symbol = "ETH/USDT"
|
|
side = "buy"
|
|
order_type = "market"
|
|
quantity = 0.01 # Small quantity for testing
|
|
logger.info(f"Testing order placement for {symbol} ({side}, {order_type}, qty: {quantity})...")
|
|
order_result = mexc.place_order(symbol=symbol, side=side, order_type=order_type, quantity=quantity)
|
|
if order_result:
|
|
logger.info(f"Order placed successfully: {order_result}")
|
|
else:
|
|
logger.error("Failed to place order")
|
|
|
|
if __name__ == "__main__":
|
|
test_mexc_private_api() |