Crypto bot - $30 max project budget

Замовник: AI | Опубліковано: 19.03.2026

Fee Structure: Leveraging MEXC’s 0% spot fee promotion for both Maker and Taker orders. Infrastructure: Python-based bot using the CCXT library hosted on a Tokyo-based AWS/cloud server for minimum latency to MEXC's matching engine. Trade Execution Logic Entry (The Breakout): Order Type: Stop-Limit Buy. Trigger: Price rises +4 points from start (e.g., ). Price Guarantee: Limit price is set exactly at the trigger () to avoid buying higher. Monitoring & Safety: Gap Protection: If the market price exceeds the limit without filling, the bot cancels the order immediately to avoid "chasing." Partial Fill Handling: If only a portion fills, the bot cancels the remainder and adjusts the exit size to match the filled amount. Exit (The Scalp): Take Profit: Limit Sell at +2 points from entry (). Stop Loss: Stop-Limit Sell at -2 points from entry (). Technical Implementation Connection: Use MEXC WebSockets for real-time price streaming instead of REST API polling to reduce latency. Rate Limits: Ensure the bot stays within MEXC's limit of 5 orders per second to avoid API bans. Order Sync: Use the post Only parameter for Limit Sells to ensure they stay on the book as Maker orders, further protecting against unexpected fee changes. import ccxt import time exchange = ccxt.mexc({'apiKey': 'YOUR_KEY', 'secret': 'YOUR_SECRET'}) symbol = 'XRP/USDT' tick = 0.0001 # 1 point def run_scalp(): # 1. Place Stop-Limit Entry (+4 points) params = {'stopPrice': trigger_price, 'type': 'STOP_LIMIT'} order = exchange.create_order(symbol, 'limit', 'buy', 680, trigger_price, params) # 2. Gap & Partial Fill Monitor while True: order_info = exchange.fetch_order(order['id'], symbol) current_price = exchange.fetch_ticker(symbol)['last'] if order_info['status'] == 'closed': place_exits(order_info['amount'], order_info['price']) break # If price gaps +2 points past limit, cancel if current_price > (trigger_price + (2 * tick)): exchange.cancel_order(order['id'], symbol) if order_info['filled'] > 0: place_exits(order_info['filled'], trigger_price) break time.sleep(0.1) # Fast Tokyo polling CAN ONLY PAY 30 USD.