幣安(Binance)是全球最大的加密貨幣交易所之一,提供豐富的API接口供用戶存取和操作其交易市場。對於開發者來說,使用Python這個強大且易學的程式語言來訪問這些API是一個很好的選擇。本文將介紹如何使用Python撰寫腳本來與幣安API互動,包括查詢訂單、下單、查詢歷史交易等基本應用。
首先,要使用幣安API,你需要一個API KEY和API SECRET。這兩個密鑰用於進行身份驗證,保護你的數據不被未經授權的訪問。登錄到你的幣安賬戶後,可以從“API與WebSocket”選項中創建並複製這些密鑰。
準備階段
在你的Python程式碼開始之前,你需要匯入幾個必要的庫:`requests`將用於發送HTTP請求,而`json`則用於處理JSON格式的回覆數據。
```python
import requests
import json
```
查詢訂單示例
要訪問幣安API,你需要定義一個基底URL(通常是`https://api.binance.com/api/v3`)和具體的API名稱(例如`/fapi/v1/userTrades`用於查詢交易記錄,`/fapi/v1/orders`用於查詢訂單等)。
```python
base_url = "https://api.binance.com"
api_name = "/fapi/v1/myTrades"
endpoint = base_url + api_name
```
在這個例子中,我們要查詢交易記錄。你需要將API密鑰加到HTTP請求的headers部分,並設置正確的內容類型為`'Application/x-www-form-urlencoded'`(雖然這是預設值,但最好還是明確指定)。
```python
url = endpoint
params = {
"symbol": "BTCUSDT", # 選擇交易的貨幣對
}
headers = {
'X-MB-APIKEY': API_KEY,
'Content-Type': 'Application/x-www-form-urlencoded'
}
response = requests.get(url, params=params, headers=headers)
print(json.loads(response.text)) # 打印JSON回覆
```
下單示例
下單時,你需要提供交易對、價格、數量、類型(限價單或市場單等)。
```python
api_name = "/fapi/v1/order"
endpoint = base_url + api_name
symbol = "BTCUSDT" # 選擇交易的貨幣對
side = 'BUY' # 交易方向,購買或出售
type_ = 'LIMIT' # 訂單類型,限價單或市場單等
time_in_force = 'GTC' # 有效時間,當前時間延長(GTC)、即刻失效(IOC)等
quantity = "0.1" # 交易數量
price = "50000" # 交易價格
params = {
"symbol": symbol,
"side": side,
"type": type_,
"timeInForce": time_in_force,
"quantity": quantity,
"price": price,
}
headers = {
'X-MB-APIKEY': API_KEY,
'Content-Type': 'Application/x-www-form-urlencoded'
}
response = requests.post(endpoint, params=params, headers=headers)
print(json.loads(response.text)) # 打印JSON回覆
```
結論
使用幣安API,Python開發者可以輕鬆地訪問和操作幣安交易所的數據。這些示例只是幣安API功能的一小部分,實際上它們支持更複雜的操作,如批量交易、OCO(Opposite-Correlation Order)策略等。在進行任何交易之前,請確保你完全理解相關的費用結構和安全措施,並且遵守當地法律規定。記得保持你的密鑰安全,因為一旦失竊,可能會導致未經授權的交易和資金損失。