CCXT 是一個強大的 Python 套件,專為加密貨幣交易者與開發者設計。它支援超過 100 個交易所,並提供統一的 API 接口,讓你能夠輕鬆地進行交易、獲取市場數據、管理帳戶等操作。無論你是新手還是專業交易者,CCXT 都能幫助你快速實現自動化交易策略。
在開始使用 CCXT 之前,你需要先安裝它。你可以使用 pip 來安裝:
pip install ccxt
CCXT 支援超過 100 個交易所,以下是一些常見的交易所列表:
print(ccxt.exchanges)
# 以下為可使用的交易所
['ace', 'alpaca', 'ascendex', 'bequant', 'bigone', 'binance', 'binancecoinm',
'binanceus', 'binanceusdm', 'bingx', 'bit2c', 'bitbank', 'bitbns', 'bitcoincom',
'bitfinex', 'bitfinex1', 'bitflyer', 'bitget', 'bithumb', 'bitmart', 'bitmex',
'bitopro', 'bitpanda', 'bitrue', 'bitso', 'bitstamp', 'bitteam', 'bitvavo',
'bl3p', 'blockchaincom', 'blofin', 'btcalpha', 'btcbox', 'btcmarkets', 'btcturk',
'bybit', 'cex', 'coinbase', 'coinbaseadvanced', 'coinbaseexchange',
'coinbaseinternational', 'coincatch', 'coincheck', 'coinex', 'coinlist',
'coinmate', 'coinmetro', 'coinone', 'coinsph', 'coinspot', 'cryptocom',
'currencycom', 'defx', 'delta', 'deribit', 'digifinex', 'ellipx', 'exmo',
'fmfwio', 'gate', 'gateio', 'gemini', 'hashkey', 'hitbtc', 'hollaex', 'htx',
'huobi', 'huobijp', 'hyperliquid', 'idex', 'independentreserve', 'indodax',
'kraken', 'krakenfutures', 'kucoin', 'kucoinfutures', 'kuna', 'latoken', 'lbank',
'luno', 'mercado', 'mexc', 'myokx', 'ndax', 'novadax', 'oceanex', 'okcoin', 'okx',
'onetrading', 'oxfun', 'p2b', 'paradex', 'paymium', 'phemex', 'poloniex',
'poloniexfutures', 'probit', 'timex', 'tokocrypto', 'tradeogre', 'upbit',
'vertex', 'wavesexchange', 'whitebit', 'woo', 'woofipro', 'xt', 'yobit', 'zaif',
'zonda']
首先,你需要初始化一個交易所對象。以下是一個簡單的例子,展示如何初始化 Binance 交易所:
import ccxt
# 初始化 Binance 交易所(無需 API Key 和 Secret)
exchange = ccxt.binance()
你可以使用 CCXT 來獲取市場數據,例如交易對的 ticker 信息:
# 獲取 BTC/USDT 的 ticker 信息
ticker = exchange.fetch_ticker('BTC/USDT')
print(ticker)
輸出結果將包含以下信息:
symbol
: 交易對名稱(例如 BTC/USDT)last
: 最新成交價high
: 24 小時內最高價low
: 24 小時內最低價volume
: 24 小時內成交量你可以獲取交易所支援的所有交易對列表:
# 獲取所有交易對
markets = exchange.load_markets()
print(markets.keys()) # 輸出所有交易對名稱
如果你想進行技術分析,可以獲取歷史 K 線數據(例如 1 小時、1 天的 K 線):
# 獲取 BTC/USDT 的 1 小時 K 線數據
ohlcv = exchange.fetch_ohlcv('BTC/USDT', timeframe='1h', limit=10)
print(ohlcv)
輸出結果將是一個列表,每個元素包含以下信息:
如果你想獲取即時市場數據,可以使用 CCXT 的 WebSocket 功能。以下是一個簡單的例子:
import asyncio
import ccxt.pro as ccxtpro
import ccxt # 這是同步 API
async def watch_ticker(symbol):
exchange = ccxtpro.binance()
# 測試同步 API 確保網絡連線正常
try:
ticker = ccxt.binance().fetch_ticker(symbol)
print("初始測試 ticker:", ticker)
except ccxt.NetworkError as e:
print("網絡錯誤:", e)
return
except ccxt.ExchangeError as e:
print("交易所錯誤:", e)
return
except Exception as e:
print("其他錯誤:", e)
return
# WebSocket 監聽
try:
while True:
ticker = await exchange.watch_ticker(symbol)
print("WebSocket ticker:", ticker)
except ccxt.NetworkError as e:
print("WebSocket 網絡錯誤:", e)
except ccxt.ExchangeError as e:
print("WebSocket 交易所錯誤:", e)
except Exception as e:
print("WebSocket 其他錯誤:", e)
finally:
await exchange.close()
if __name__ == "__main__":
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) # 適用於 Windows
asyncio.run(watch_ticker("BTC/USDT"))
即使不需要使用 API 下單功能,CCXT 仍然是一個強大的工具,可以幫助你輕鬆獲取加密貨幣市場數據。透過本教學,你已經學會了如何初始化交易所、獲取市場數據、獲取交易對列表、以及獲取歷史 K 線數據。
現在,你可以開始使用 CCXT 來分析市場趨勢,並為你的交易策略提供數據支持!如果你有任何問題或建議,歡迎在下方留言討論。