81 lines
2.4 KiB
Python
81 lines
2.4 KiB
Python
#!/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() |