Gemini API 综合指南:密钥管理、数据获取、交易与账户管理
本文档旨在提供一个全面的 Gemini API 使用指南,涵盖密钥管理、数据获取、交易接口以及账户管理等关键方面,并提供相应的 Python 示例。无论您是经验丰富的交易员还是初学者,本指南都将帮助您更好地理解和使用 Gemini API。
1. Gemini API 密钥管理
在使用 Gemini API 之前,您需要生成 API 密钥。请务必妥善保管您的 API 密钥,并了解其权限范围。Gemini 提供两种类型的 API 密钥:
- 主 API 密钥: 拥有完全权限,可以进行交易、提款、访问账户信息等操作。务必谨慎使用,并将其存储在安全的地方,例如硬件钱包或者加密的密钥管理系统。
- 次 API 密钥: 可以设置不同的权限,例如只读权限,仅能获取市场数据。建议使用次 API 密钥进行数据分析或者其他不需要交易的场景,以降低安全风险。
密钥生成步骤:
- 登录您的 Gemini 账户。
- 导航到 "API" 部分。
- 创建一个新的 API 密钥,选择相应的权限。
- 复制生成的 API 密钥和 Secret。
- 安全存储您的 API 密钥和 Secret。
重要提示:
- 切勿将 API 密钥硬编码到您的代码中。
- 使用环境变量或配置文件来管理 API 密钥。
- 定期轮换您的 API 密钥。
- 启用双因素认证 (2FA) 以增加账户安全性。
2. Gemini API 数据获取
Gemini API 提供了丰富的数据接口,可以获取各种市场信息,包括实时价格、历史交易数据、订单簿信息等。
常用数据接口:
/v1/pubticker/{symbol}
: 获取指定交易对的最新价格。/v1/trades/{symbol}
: 获取指定交易对的最新成交记录。/v1/book/{symbol}
: 获取指定交易对的订单簿信息。/v1/candles/{symbol}/{timeframe}
: 获取指定交易对的历史 K 线数据。
Python 示例:
import requests import
GEMINIAPIURL = "https://api.gemini.com/v1"
def getticker(symbol): url = f"{GEMINIAPIURL}/pubticker/{symbol}" response = requests.get(url) if response.statuscode == 200: return response.() else: print(f"Error: {response.status_code} - {response.text}") return None
if name == "main": tickerdata = getticker("BTCUSD") if tickerdata: print(.dumps(tickerdata, indent=4))
这段 Python 代码演示了如何使用 requests
库从 Gemini API 获取 BTCUSD 交易对的最新价格信息。
3. Gemini API 交易接口
Gemini API 允许用户通过编程方式进行交易,包括下单、取消订单、查询订单状态等。
交易接口:
/v1/order/new
: 创建新订单。/v1/order/cancel
: 取消订单。/v1/order/status
: 查询订单状态。/v1/orders
: 查询所有活跃订单。
交易示例 (需要 API 密钥和 Secret):
import requests import import hashlib import hmac import time import base64
GEMINIAPIURL = "https://api.gemini.com/v1" GEMINIAPIKEY = "YOURAPIKEY" # 替换为您的 API 密钥 GEMINIAPISECRET = "YOURAPISECRET" # 替换为您的 API Secret
def createorder(symbol, amount, price, side, type="exchange limit"): endpoint = "/order/new" url = GEMINIAPIURL + endpoint nonce = str(int(time.time() * 1000)) payload = { "request": endpoint, "nonce": nonce, "symbol": symbol, "amount": str(amount), "price": str(price), "side": side, "type": type } payload = .dumps(payload) payloadb64 = base64.b64encode(payload.encode()) signature = hmac.new(GEMINIAPISECRET.encode(), payload_b64, hashlib.sha384).hexdigest()
headers = {
"Content-Type": "application/",
"X-GEMINI-APIKEY": GEMINI_API_KEY,
"X-GEMINI-PAYLOAD": payload_b64.decode(),
"X-GEMINI-SIGNATURE": signature
}
response = requests.post(url, headers=headers)
return response.()
if name == "main": # 例如:以 0.001 BTC 的数量,以价格 30000 USD 买入 BTCUSD orderresult = createorder("BTCUSD", 0.001, 30000, "buy") print(.dumps(order_result, indent=4))
注意: 以上代码示例需要您提供有效的 API 密钥和 Secret,并且账户需要有足够的资金才能成功执行交易。
4. Gemini API 账户管理
Gemini API 允许您访问账户信息,例如余额、交易历史等。
账户管理接口:
/v1/balances
: 获取账户余额。/v1/transfers
: 获取交易记录。/v1/notionalvolume
: 获取交易量。
Python 示例 (需要 API 密钥和 Secret):
import requests import import hashlib import hmac import time import base64
GEMINIAPIURL = "https://api.gemini.com/v1" GEMINIAPIKEY = "YOURAPIKEY" # 替换为您的 API 密钥 GEMINIAPISECRET = "YOURAPISECRET" # 替换为您的 API Secret
def getbalances(): endpoint = "/balances" url = GEMINIAPIURL + endpoint nonce = str(int(time.time() * 1000)) payload = { "request": endpoint, "nonce": nonce } payload = .dumps(payload) payloadb64 = base64.b64encode(payload.encode()) signature = hmac.new(GEMINIAPISECRET.encode(), payload_b64, hashlib.sha384).hexdigest()
headers = {
"Content-Type": "application/",
"X-GEMINI-APIKEY": GEMINI_API_KEY,
"X-GEMINI-PAYLOAD": payload_b64.decode(),
"X-GEMINI-SIGNATURE": signature
}
response = requests.post(url, headers=headers)
return response.()
if name == "main": balances = get_balances() print(.dumps(balances, indent=4))
此代码片段展示了如何获取您的 Gemini 账户余额。请确保替换 YOUR_API_KEY
和 YOUR_API_SECRET
为您自己的 API 密钥和 Secret。
学习了这些基础操作后,建议可以阅读专业的Gemini API教程,进一步提高API使用水平。
请注意,在实际使用 Gemini API 时,需要根据 Gemini 官方文档进行调整,以确保代码的正确性和安全性。