Files
gogo2/get_mexc_exchange_info.py
2025-07-14 11:15:11 +03:00

97 lines
3.5 KiB
Python

#!/usr/bin/env python3
"""
Get MEXC Exchange Info for ETHUSDC
"""
import requests
import json
def get_mexc_exchange_info():
"""Get detailed MEXC exchange information for ETHUSDC"""
print("Getting MEXC Exchange Info for ETHUSDC...")
print("=" * 50)
try:
# Get exchange info from MEXC public API
resp = requests.get('https://api.mexc.com/api/v3/exchangeInfo')
data = resp.json()
# Find ETHUSDC symbol
ethusdc_info = None
for symbol_info in data.get('symbols', []):
if symbol_info['symbol'] == 'ETHUSDC':
ethusdc_info = symbol_info
break
if not ethusdc_info:
print("❌ ETHUSDC symbol not found")
return
print("✅ Found ETHUSDC symbol information")
print(f"Symbol: {ethusdc_info['symbol']}")
print(f"Status: {ethusdc_info['status']}")
print(f"Base Asset: {ethusdc_info['baseAsset']}")
print(f"Quote Asset: {ethusdc_info['quoteAsset']}")
print(f"Base Precision: {ethusdc_info['baseAssetPrecision']}")
print(f"Quote Precision: {ethusdc_info['quoteAssetPrecision']}")
print("\nFilters:")
print("-" * 20)
lot_size_filter = None
min_notional_filter = None
for filter_info in ethusdc_info.get('filters', []):
filter_type = filter_info['filterType']
print(f"\n{filter_type}:")
if filter_type == 'LOT_SIZE':
lot_size_filter = filter_info
elif filter_type == 'MIN_NOTIONAL':
min_notional_filter = filter_info
for key, value in filter_info.items():
if key != 'filterType':
print(f" {key}: {value}")
# Analyze requirements
print("\n" + "=" * 50)
print("ANALYSIS:")
if lot_size_filter:
min_qty = float(lot_size_filter['minQty'])
step_size = lot_size_filter['stepSize']
print(f"Minimum Quantity: {min_qty} ETH")
print(f"Step Size: {step_size}")
# Check our test quantity
test_qty = 0.009871
print(f"\nOur quantity: {test_qty}")
print(f"Meets minimum?: {'✅ Yes' if test_qty >= min_qty else '❌ No'}")
# Check step size compliance
if '.' in step_size:
decimal_places = len(step_size.split('.')[-1].rstrip('0'))
properly_rounded = round(test_qty, decimal_places)
print(f"Required decimals: {decimal_places}")
print(f"Properly rounded: {properly_rounded}")
if min_notional_filter:
min_notional = float(min_notional_filter['minNotional'])
test_value = 0.009871 * 3031 # approximate price
print(f"\nMinimum Order Value: ${min_notional}")
print(f"Our order value: ${test_value:.2f}")
print(f"Meets minimum?: {'✅ Yes' if test_value >= min_notional else '❌ No'}")
print("\n💡 RECOMMENDATIONS:")
if lot_size_filter and min_notional_filter:
safe_qty = max(float(lot_size_filter['minQty']) * 1.1, min_notional / 3000)
print(f"Use quantity >= {safe_qty:.6f} ETH for safe trading")
print(f"This equals ~${safe_qty * 3031:.2f} USD")
except Exception as e:
print(f"❌ Error: {e}")
if __name__ == "__main__":
get_mexc_exchange_info()