Python CCXT 套件示範圖

—2025/06/01 更新—

## Python CCXT 套件介紹

在這篇文章中,我們將探討如何使用 CCXT 套件來實現自動化虛擬貨幣交易。CCXT 是一個用於加密交易的 Python 套件,支持數百家加密交易所。在本文中,我們將使用 CCXT 套件來實現自動化交易,並使用 Binance(币安)作為示範交易所。

## Step 1: 安裝 CCXT 套件

在開始之前,首先需要安裝 CCXT 套件。你可以使用以下命令來安裝:

“`bash
pip3 install ccxt
“`

CCXT 的 GitHub 網址:[https://pypi.org/project/ccxt/](https://pypi.org/project/ccxt/)

CCXT 安裝示範圖

## Step 2: 連接 Binance API

在開始交易之前,需要使用 Binance API 連接到 Binance 交易所。要連接到 Binance API,需要在 Binance 註冊一個帳戶,然後生成 API 密鑰。在生成 API 密鑰後,可以使用以下代碼連接到 Binance API:

### 連接方法 1

“`python
import ccxt

exchange = ccxt.binance({
‘apiKey’: ‘YOUR_API_KEY’,
‘secret’: ‘YOUR_SECRET_KEY’,
})
“`

### 連接方法 2

“`python
import ccxt

exchange = ccxt.binance()
exchange.apiKey = ‘YOUR_API_KEY’
exchange.secret = ‘YOUR_SECRET_KEY’
“`

## Step 3: 查詢市場數據

在開始交易之前,需要查詢市場數據,以了解目前市場的狀況和價格。可以使用以下代碼查詢市場數據:

“`python
markets = exchange.load_markets()

for market in markets:
print(market)
“`

這段代碼會輸出所有可用的市場。你可以使用市場的符號(symbol)來指定要交易的貨幣對。例如:

“`json
{
“id”: “btcusd”,
“symbol”: “BTC/USD”,
“base”: “BTC”,
“quote”: “USD”,

}
“`

## Step 4: 賬戶資產查詢

使用 CCXT 進行虛擬貨幣交易時,確認在交易所的帳戶中擁有多少資金和資產是非常重要的。這可以通過調用 `fetch_balance()` 方法來完成。以下是一個示例代碼,展示如何使用 `fetch_balance()` 方法來獲取資產和資金:

“`python
balance = exchange.fetch_balance()
print(balance) # 獲得所有錢包資訊
print(balance[‘free’]) # 可用的資產數量
print(balance[‘used’]) # 已經使用的資產數量
print(balance[‘total’]) # 總資產數量
“`

### 打印 USDT 資產

“`python
print(balance[‘USDT’]) # USDT這個資產的數量
“`

## Step 5: 自動化交易

以下是一個簡單的自動化交易策略的代碼,LEND/USDT市場上進行簡單的交易:

“`python
symbol = ‘LEND/USDT’
amount = balance[‘LEND’][‘total’] # 賣出所有 LEND

# 市價單,市價單不需要輸入價格
order_info = exchange.create_market_buy_order(symbol=symbol, amount=amount) # 買單
order_info = exchange.create_market_sell_order(symbol=symbol, amount=amount) # 賣單
“`

另一個簡單的自動化交易策略代碼,用於在 BTC/USDT 市場上進行簡單的交易:

“`python
import time

while True:
ticker = exchange.fetch_ticker(‘BTC/USDT’)
balance = exchange.fetch_balance()

# 如果 BTC 的價格小於 41000 USDT 並且賬戶中有足夠的 USDT
if ticker[‘last’] < 41000 and balance['USDT']['free'] > 100:
order = exchange.create_order(symbol=’BTC/USDT’, type=’limit’, side=’buy’, amount=0.001, price=40000)
print(order)

# 如果 BTC 的價格大於 45000 USDT 並且賬戶中有足夠的 BTC
elif ticker[‘last’] > 45000 and balance[‘BTC’][‘free’] > 0.001:
order = exchange.create_order(symbol=’BTC/USDT’, type=’limit’, side=’sell’, amount=0.001, price=46000)
print(order)

time.sleep(60)
“`

## 完整範例

以下是一個使用 CCXT Python 庫進行虛擬貨幣交易的完整範例,這個範例可以實現以下三個步驟:

1. 查詢可交易的幣種。
2. 查詢你在交易所中的資源和資金。
3. 下單購買 BTC。

“`python
import ccxt

# 初始化交易所對象
exchange = ccxt.binance({
‘apiKey’: ‘YOUR_API_KEY’,
‘secret’: ‘YOUR_SECRET_KEY’,
‘enableRateLimit’: True,
})

# 查詢可交易幣種
markets = exchange.load_markets()
print(‘可交易幣種:’)
for market in markets:
print(market)

# 查詢你在交易所中的資源和資金
balance = exchange.fetch_balance()
print(‘你的資源和資金:’)
for key, value in balance[‘total’].items():
print(key, ‘:’, value)

# 下單購買 BTC
symbol = ‘BTC/USDT’ # 交易對
amount = 0.001 # 購買數量
price = exchange.fetch_ticker(symbol)[‘ask’] # 購買價格
order = exchange.create_order(symbol, ‘limit’, ‘buy’, amount, price)
print(‘下單成功:’, order)
“`


Python 更多文章


Python 檢查 dict 是否有這個 key


## Q&A(常見問題解答)

### Q1: CCXT 套件支援哪些交易所?
A1: CCXT 套件支援數百家加密貨幣交易所,包括 Binance、Coinbase、Kraken 等等。你可以在官方文檔中查看完整列表。

### Q2: 如何獲得 Binance 的 API 密鑰?
A2: 你需要在 Binance 註冊一個帳戶,然後在用戶中心生成 API 密鑰。確保妥善保管這些密鑰,以免洩漏。

### Q3: 如何處理交易錯誤?
A3: 在進行交易時,建議使用 try-except 語句來捕獲可能出現的錯誤,並進行適當的錯誤處理,例如重試機制或記錄錯誤信息。

希望這篇文章能幫助你更輕鬆地使用 Python CCXT 套件進行虛擬貨幣交易!如果你有更多問題,隨時可以參考 [這篇教學](https://vocus.cc/article/642d9b47fd897300019e78cc) 獲取更多資源。

Categorized in: