Skip to main content

ccxt-python

CCXT cryptocurrency exchange library for Python developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in Python. Use when working with crypto exchanges in Python projects, trading bots, data analysis, or portfolio management. Supports both sync and async (asyncio) usage. Use when this capability is needed.

Zur Installation springen

Quellinformationen

Repository
tomevault-io/tomes
Letzte Quellaktivität
23. Juli 2026 um 21:48
Erkannte Sprache von SKILL.md
Englisch
Sterne
1
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
ccxt-python
description
CCXT cryptocurrency exchange library for Python developers. Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors in Python. Use when working with crypto exchanges in Python projects, trading bots, data analysis, or portfolio management. Supports both sync and async (asyncio) usage. Use when this capability is needed.
metadata
{"author":"ccxt"}
# CCXT for Python A comprehensive guide to using CCXT in Python projects for cryptocurrency exchange integration. ## Installation ### REST API (Standard) ```bash pip install ccxt ``` ### WebSocket API (Real-time, ccxt.pro) ```bash pip install ccxt ``` ### Optional Performance Enhancements ```bash pip install orjson # Faster JSON parsing pip install coincurve # Faster ECDSA signing (45ms → 0.05ms) ``` Both REST and WebSocket APIs are included in the same package. ## Quick Start ### REST API - Synchronous ```python import ccxt exchange = ccxt.binance() exchange.load_markets() ticker = exchange.fetch_ticker('BTC/USDT') print(ticker) ``` ### REST API - Asynchronous ```python import asyncio import ccxt.async_support as ccxt async def main(): exchange = ccxt.binance() await exchange.load_markets() ticker = await exchange.fetch_ticker('BTC/USDT') print(ticker) await exchange.close() # Important! asyncio.run(main()) ``` ### WebSocket API - Real-time Updates ```python import asyncio import ccxt.pro as ccxtpro async def main(): exchange = ccxtpro.binance() while True: ticker = await exchange.watch_ticker('BTC/USDT') print(ticker) # Live updates! await exchange.close() asyncio.run(main()) ``` ## REST vs WebSocket | Import | For REST | For WebSocket | |--------|----------|---------------| | **Sync** | `import ccxt` | (WebSocket requires async) | | **Async** | `import ccxt.async_support as ccxt` | `import ccxt.pro as ccxtpro` | | Feature | REST API | WebSocket API | |---------|----------|---------------| | **Use for** | One-time queries, placing orders | Real-time monitoring, live price feeds | | **Method prefix** | `fetch_*` (fetch_ticker, fetch_order_book) | `watch_*` (watch_ticker, watch_order_book) | | **Speed** | Slower (HTTP request/response) | Faster (persistent connection) | | **Rate limits** | Strict (1-2 req/sec) | More lenient (continuous stream) | | **Best for** | Trading, account management | Price monitoring, arbitrage detection | **When to use REST:** - Placing orders - Fetching account balance - One-time data queries - Order management (cancel, fetch orders) **When to use WebSocket:** - Real-time price monitoring - Live orderbook updates - Arbitrage detection - Portfolio tracking with live updates ## Creating Exchange Instance ### REST API - Synchronous ```python import ccxt # Public API (no authentication) exchange = ccxt.binance({ 'enableRateLimit': True # Recommended! }) # Private API (with authentication) exchange = ccxt.binance({ 'apiKey': 'YOUR_API_KEY', 'secret': 'YOUR_SECRET', 'enableRateLimit': True }) ``` ### REST API - Asynchronous ```python import ccxt.async_support as ccxt exchange = ccxt.binance({ 'apiKey': 'YOUR_API_KEY', 'secret': 'YOUR_SECRET', 'enableRateLimit': True }) # Always close when done await exchange.close() ``` ### WebSocket API ```python import ccxt.pro as ccxtpro # Public WebSocket exchange = ccxtpro.binance() # Private WebSocket (with authentication) exchange = ccxtpro.binance({ 'apiKey': 'YOUR_API_KEY', 'secret': 'YOUR_SECRET' }) # Always close when done await exchange.close() ``` ## Common REST Operations ### Loading Markets ```python # Load all available trading pairs exchange.load_markets() # Access market information btc_market = exchange.market('BTC/USDT') print(btc_market['limits']['amount']['min']) # Minimum order amount ``` ### Fetching Ticker ```python # Single ticker ticker = exchange.fetch_ticker('BTC/USDT') print(ticker['last']) # Last price print(ticker['bid']) # Best bid print(ticker['ask']) # Best ask print(ticker['volume']) # 24h volume # Multiple tickers (if supported) tickers = exchange.fetch_tickers(['BTC/USDT', 'ETH/USDT']) ``` ### Fetching Order Book ```python # Full orderbook orderbook = exchange.fetch_order_book('BTC/USDT') print(orderbook['bids'][0]) # [price, amount] print(orderbook['asks'][0]) # [price, amount] # Limited depth orderbook = exchange.fetch_order_book('BTC/USDT', 5) # Top 5 levels ``` ### Creating Orders #### Limit Order ```python # Buy limit order order = exchange.create_limit_buy_order('BTC/USDT', 0.01, 50000) print(order['id']) # Sell limit order order = exchange.create_limit_sell_order('BTC/USDT', 0.01, 60000) # Generic limit order order = exchange.create_order('BTC/USDT', 'limit', 'buy', 0.01, 50000) ``` #### Market Order ```python # Buy market order order = exchange.create_market_buy_order('BTC/USDT', 0.01) # Sell market order order = exchange.create_market_sell_order('BTC/USDT', 0.01) # Generic market order order = exchange.create_order('BTC/USDT', 'market', 'sell', 0.01) ``` ### Fetching Balance ```python balance = exchange.fetch_balance() print(balance['BTC']['free']) # Available balance print(balance['BTC']['used']) # Balance in orders print(balance['BTC']['total']) # Total balance ``` ### Fetching Orders ```python # Open orders open_orders = exchange.fetch_open_orders('BTC/USDT') # Closed orders closed_orders = exchange.fetch_closed_orders('BTC/USDT') # All orders (open + closed) all_orders = exchange.fetch_orders('BTC/USDT') # Single order by ID order = exchange.fetch_order(order_id, 'BTC/USDT') ``` ### Fetching Trades ```python # Recent public trades trades = exchange.fetch_trades('BTC/USDT', limit=10) # Your trades (requires authentication) my_trades = exchange.fetch_my_trades('BTC/USDT') ``` ### Canceling Orders ```python # Cancel single order exchange.cancel_order(order_id, 'BTC/USDT') # Cancel all orders for a symbol exchange.cancel_all_orders('BTC/USDT') ``` ## WebSocket Operations (Real-time) ### Watching Ticker (Live Price Updates) ```python import asyncio import ccxt.pro as ccxtpro async def main(): exchange = ccxtpro.binance() while True: ticker = await exchange.watch_ticker('BTC/USDT') print(ticker['last'], ticker['timestamp']) await exchange.close() asyncio.run(main()) ``` ### Watching Order Book (Live Depth Updates) ```python async def main(): exchange = ccxtpro.binance() while True: orderbook = await exchange.watch_order_book('BTC/USDT') print('Best bid:', orderbook['bids'][0]) print('Best ask:', orderbook['asks'][0]) await exchange.close() asyncio.run(main()) ``` ### Watching Trades (Live Trade Stream) ```python async def main(): exchange = ccxtpro.binance() while True: trades = await exchange.watch_trades('BTC/USDT') for trade in trades: print(trade['price'], trade['amount'], trade['side']) await exchange.close() asyncio.run(main()) ``` ### Watching Your Orders (Live Order Updates) ```python async def main(): exchange = ccxtpro.binance({ 'apiKey': 'YOUR_API_KEY', 'secret': 'YOUR_SECRET' }) while True: orders = await exchange.watch_orders('BTC/USDT') for order in orders: print(order['id'], order['status'], order['filled']) await exchange.close() asyncio.run(main()) ``` ### Watching Balance (Live Balance Updates) ```python async def main(): exchange = ccxtpro.binance({ 'apiKey': 'YOUR_API_KEY', 'secret': 'YOUR_SECRET' }) while True: balance = await exchange.watch_balance() print('BTC:', balance['BTC']) print('USDT:', balance['USDT']) await exchange.close() asyncio.run(main()) ``` ### Watching Multiple Symbols ```python async def main(): exchange = ccxtpro.binance() symbols = ['BTC/USDT', 'ETH/USDT', 'SOL/USDT'] while True: # Watch all symbols concurrently tickers = await exchange.watch_tickers(symbols) for symbol, ticker in tickers.items(): print(symbol, ticker['last']) await exchange.close() asyncio.run(main()) ``` ## Complete Method Reference ### Market Data Methods #### Tickers & Prices - `fetchTicker(symbol)` - Fetch ticker for one symbol - `fetchTickers([symbols])` - Fetch multiple tickers at once - `fetchBidsAsks([symbols])` - Fetch best bid/ask for multiple symbols - `fetchLastPrices([symbols])` - Fetch last prices - `fetchMarkPrices([symbols])` - Fetch mark prices (derivatives) #### Order Books - `fetchOrderBook(symbol, limit)` - Fetch order book - `fetchOrderBooks([symbols])` - Fetch multiple order books - `fetchL2OrderBook(symbol)` - Fetch level 2 order book - `fetchL3OrderBook(symbol)` - Fetch level 3 order book (if supported) #### Trades - `fetchTrades(symbol, since, limit)` - Fetch public trades - `fetchMyTrades(symbol, since, limit)` - Fetch your trades (auth required) - `fetchOrderTrades(orderId, symbol)` - Fetch trades for specific order #### OHLCV (Candlesticks) - `fetchOHLCV(symbol, timeframe, since, limit)` - Fetch candlestick data - `fetchIndexOHLCV(symbol, timeframe)` - Fetch index price OHLCV - `fetchMarkOHLCV(symbol, timeframe)` - Fetch mark price OHLCV - `fetchPremiumIndexOHLCV(symbol, timeframe)` - Fetch premium index OHLCV ### Account & Balance - `fetchBalance()` - Fetch account balance (auth required) - `fetchAccounts()` - Fetch sub-accounts - `fetchLedger(code, since, limit)` - Fetch ledger history - `fetchLedgerEntry(id, code)` - Fetch specific ledger entry - `fetchTransactions(code, since, limit)` - Fetch transactions - `fetchDeposits(code, since, limit)` - Fetch deposit history - `fetchWithdrawals(code, since, limit)` - Fetch withdrawal history - `fetchDepositsWithdrawals(code, since, limit)` - Fetch both deposits and withdrawals ### Trading Methods #### Creating Orders - `createOrder(symbol, type, side, amount, price, params)` - Create order (generic) - `createLimitOrder(symbol, side, amount, price)` - Create limit order - `createMarketOrder(symbol, side, amount)` - Create market order - `createLimitBuyOrder(symbol, amount, price)` - Buy limit order - `createLimitSellOrder(symbol, amount, price)` - Sell limit order - `createMarketBuyOrder(symbol, amount)` - Buy market order - `createMarketSellOrder(symbol, amount)` - Sell market order - `createMarketBuyOrderWithCost(symbol, cost)` - Buy with specific cost - `createStopLimitOrder(symbol, side, amount, price, stopPrice)` - Stop-limit order
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen