目录导读
- 欧易API接口申请前置准备
- API密钥创建与权限配置
- Python环境搭建与依赖库安装
- 编写基础量化交易脚本
- 常见问题与问答
欧易API接口申请前置准备
在进行量化交易之前,首先需要在欧易交易所官网完成账户注册与实名认证,这是使用API接口的基础条件,所有交易行为都会绑定到你的账户ID下,建议在申请API前,先完成欧易交易所下载并熟悉交易界面操作,这样能更好地理解API返回的数据结构。

关键步骤:
- 注册账户并完成高级实名认证(KYC2级)
- 确保账户中有足够的资产用于测试(建议先使用模拟盘)
- 了解欧易API的限频规则(默认每秒10次请求)
API密钥创建与权限配置
登录欧易交易所后,进入“账户中心”→“API管理”页面,点击“新建API密钥”,系统会生成一对密钥:
- API Key(公钥)
- Secret Key(私钥,仅显示一次,务必妥善保存)
权限设置建议:
- 交易权限(必选)
- 读取权限(必选)
- 提币权限(建议关闭,防止资产被盗)
⚠️ 注意:切勿将Secret Key明文写在代码中,建议使用环境变量或配置文件加密存储。
Python环境搭建与依赖库安装
推荐使用Python 3.8+版本,通过pip安装以下核心库:
pip install requests hashlib hmac base64 json time
其中requests用于发送HTTP请求,hashlib和hmac用于生成签名,time用于时间戳管理,如果你需要处理复杂K线数据,还可以安装pandas和numpy。
编写基础量化交易脚本
以下是完整的Python示例代码,实现“获取账户余额并下单”功能,该脚本已深度优化,符合欧易交易所官网API v5版本规范:
import requests
import hmac
import hashlib
import base64
import json
import time
# 配置参数
API_KEY = "你的API Key"
SECRET_KEY = "你的Secret Key"
PASSPHRASE = "你的交易密码"
BASE_URL = "https://www.okx.com"
def generate_signature(timestamp, method, request_path, body):
message = timestamp + method + request_path + (body if body else "")
mac = hmac.new(SECRET_KEY.encode('utf-8'), message.encode('utf-8'), hashlib.sha256)
return base64.b64encode(mac.digest()).decode('utf-8')
def get_account_balance():
timestamp = str(time.time())
method = "GET"
request_path = "/api/v5/account/balance"
signature = generate_signature(timestamp, method, request_path, "")
headers = {
"OK-ACCESS-KEY": API_KEY,
"OK-ACCESS-SIGN": signature,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": PASSPHRASE,
"Content-Type": "application/json"
}
response = requests.get(BASE_URL + request_path, headers=headers)
return response.json()
def place_order(symbol, side, size, price):
timestamp = str(time.time())
method = "POST"
request_path = "/api/v5/trade/order"
body = {
"instId": symbol,
"tdMode": "cash",
"side": side,
"ordType": "limit",
"sz": str(size),
"px": str(price)
}
body_str = json.dumps(body)
signature = generate_signature(timestamp, method, request_path, body_str)
headers = {
"OK-ACCESS-KEY": API_KEY,
"OK-ACCESS-SIGN": signature,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": PASSPHRASE,
"Content-Type": "application/json"
}
response = requests.post(BASE_URL + request_path, headers=headers, data=body_str)
return response.json()
# 示例:查询BTC/USDT市价买入
if __name__ == "__main__":
# 步骤1:获取账户信息
balance = get_account_balance()
print("账户余额:", balance)
# 步骤2:限价买入0.001 BTC,价格50000 USDT
# order_result = place_order("BTC-USDT", "buy", 0.001, 50000)
# print("下单结果:", order_result)
脚本说明:
- 使用HMAC-SHA256算法生成签名,这是欧易安全验证的核心机制
- 所有请求头必须包含时间戳,误差超过30秒会被拒绝
- 示例中注释了下单函数,防止误操作,测试时可先取消注释
常见问题与问答
Q1:API请求返回“签名错误”怎么办?
A:检查三点:①时间戳是否使用UTC+8时区 ②Secret Key是否复制完整(不要带空格)③请求路径和参数是否与文档完全一致,建议使用欧易交易所下载的官方调试工具验证签名。
Q2:如何获取历史K线数据?
A:使用/api/v5/market/candles接口,传入instId和bar参数即可,例如bar=1m代表1分钟K线,可配合pandas进行技术分析。
Q3:脚本在凌晨报错“频率限制”怎么解决?
A:欧易API对同一IP的请求频率有硬性限制,建议在循环中加入time.sleep(0.1)(即每秒最多10次请求),并避免在整点秒时集中发送请求。
Q4:测试时可以用模拟盘吗?
A:可以!在欧易交易所官网切换至“模拟盘”模式,API接口相同,但不会产生真实交易,这是学习量化的最佳方式。
通过以上教程,你已经掌握了在欧易交易所申请API接口并使用Python编写简单量化脚本的核心方法,建议从“获取行情数据”开始练习,逐步过渡到“自动化交易策略”,任何实盘交易前,务必在小资金环境下充分测试代码的稳定性与安全性。
标签: API接口申请 Python量化交易