#!/usr/bin/env python3 """ Test Small MEXC Order Try to place a very small real order to see what happens """ import os import sys from pathlib import Path # Add project root to path project_root = Path(__file__).parent sys.path.insert(0, str(project_root)) from NN.exchanges.mexc_interface import MEXCInterface def test_small_order(): """Test placing a very small order""" print("Testing Small MEXC Order...") print("=" * 50) # Get API credentials api_key = os.getenv('MEXC_API_KEY', '') api_secret = os.getenv('MEXC_SECRET_KEY', '') if not api_key or not api_secret: print("❌ No MEXC API credentials found") return # Create MEXC interface mexc = MEXCInterface(api_key=api_key, api_secret=api_secret, test_mode=False) if not mexc.connect(): print("❌ Failed to connect to MEXC API") return print("✅ Connected to MEXC API") # Get current price ticker = mexc.get_ticker("ETH/USDT") # Will be converted to ETHUSDC if not ticker: print("❌ Failed to get ticker") return current_price = ticker['last'] print(f"Current ETHUSDC Price: ${current_price:.2f}") # Calculate a very small quantity (minimum possible) min_order_value = 10.0 # $10 minimum quantity = min_order_value / current_price quantity = round(quantity, 5) # MEXC precision print(f"Test order: {quantity} ETH at ${current_price:.2f} = ${quantity * current_price:.2f}") # Try placing the order print("\nPlacing test order...") try: result = mexc.place_order( symbol="ETH/USDT", # Will be converted to ETHUSDC side="BUY", order_type="MARKET", # Will be converted to LIMIT quantity=quantity ) if result: print("✅ Order placed successfully!") print(f"Order result: {result}") # Try to cancel it immediately if 'orderId' in result: print(f"\nCanceling order {result['orderId']}...") cancel_result = mexc.cancel_order("ETH/USDT", result['orderId']) print(f"Cancel result: {cancel_result}") else: print("❌ Order placement failed") except Exception as e: print(f"❌ Order error: {e}") if __name__ == "__main__": test_small_order()