📚 目录导读
- 欧易交易所API简介与申请准备
- API密钥申请详细步骤
- Python环境搭建与依赖库安装
- 编写第一个量化交易脚本——获取实时行情
- 进阶功能:执行限价单与止损单
- 常见问题解答(FAQ)
- 总结与安全建议
欧易交易所API简介与申请准备
欧易交易所(OKX)作为全球领先的数字资产交易平台,提供了功能强大的API接口,允许开发者通过程序化方式实现自动化交易、市场数据获取、资产管理等操作,对于量化交易者而言,掌握欧易API的申请与使用是入门的第一步。

1 API类型说明
欧易交易所提供REST API和WebSocket API两种接口:
- REST API:适用于一次性请求,如查询账户余额、下单、撤单等。
- WebSocket API:适用于实时数据流,如订阅行情、订单簿变化等。
2 申请前准备
在申请API密钥前,请确保您已完成以下操作:
- 注册并登录欧易交易所账号(建议通过欧易交易所下载最新版本客户端)
- 完成二级实名认证(KYC Level 2)
- 建议为API密钥单独设置资金密码与提现密码
API密钥申请详细步骤
1 进入API管理页面
登录欧易官网后,点击右上角头像 → “API” → “创建API密钥”。
2 填写API信息
- API名称:自定义,如“量化交易脚本”
- 权限设置:建议勾选“读取”、“交易”、“提现”按需勾选
- IP白名单:建议填写您的服务器IP,增强安全性
3 完成安全验证
通过手机验证码、邮箱验证码或谷歌验证器完成身份确认,创建成功后,您将获得:
- API Key(公钥)
- Secret Key(私钥,仅展示一次,务必妥善保管)
- Passphrase(交易密码短语)
⚠️ 私钥和Passphrase请勿泄露,建议存储在密码管理器中。
Python环境搭建与依赖库安装
1 环境准备
推荐使用Python 3.8及以上版本,使用以下命令安装核心依赖:
pip install requests pip install websocket-client pip install python-dotenv
2 创建配置文件
创建.env文件保存敏感信息:
API_KEY=your_api_key_here
SECRET_KEY=your_secret_key_here
PASSPHRASE=your_passphrase_here
编写第一个量化交易脚本——获取实时行情
1 基础API调用示例
以下脚本演示如何通过REST API获取BTC/USDT的实时行情数据:
import requests
import json
import hmac
import base64
import datetime
from dotenv import load_dotenv
import os
load_dotenv()
BASE_URL = "https://www.okx.com"
def get_timestamp():
return datetime.datetime.utcnow().isoformat()[:-3] + "Z"
def sign(message, secret_key):
mac = hmac.new(bytes(secret_key, encoding='utf-8'), bytes(message, encoding='utf-8'), digestmod='sha256')
d = mac.digest()
return base64.b64encode(d).decode()
def get_market_data(instrument_id="BTC-USDT"):
endpoint = "/api/v5/market/ticker"
url = BASE_URL + endpoint + f"?instId={instrument_id}"
timestamp = get_timestamp()
message = timestamp + "GET" + endpoint + f"?instId={instrument_id}"
headers = {
"OK-ACCESS-KEY": os.getenv("API_KEY"),
"OK-ACCESS-SIGN": sign(message, os.getenv("SECRET_KEY")),
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": os.getenv("PASSPHRASE")
}
response = requests.get(url, headers=headers)
return response.json()
if __name__ == "__main__":
data = get_market_data()
print(json.dumps(data, indent=2))
2 运行与结果解析
执行脚本后,您将获得包含最新价格、24小时涨跌幅、成交量等信息的JSON数据,这是构建任何量化策略的基础数据源。
进阶功能:执行限价单与止损单
1 限价单下单函数
def place_limit_order(instrument_id, side, price, size):
endpoint = "/api/v5/trade/order"
url = BASE_URL + endpoint
body = {
"instId": instrument_id,
"tdMode": "cash", # 现货交易
"side": side, # buy或sell
"ordType": "limit",
"px": str(price),
"sz": str(size)
}
timestamp = get_timestamp()
message = timestamp + "POST" + endpoint + json.dumps(body)
headers = {
"OK-ACCESS-KEY": os.getenv("API_KEY"),
"OK-ACCESS-SIGN": sign(message, os.getenv("SECRET_KEY")),
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": os.getenv("PASSPHRASE"),
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers, data=json.dumps(body))
return response.json()
2 止损单实现
止损单可通过条件委托实现:
def place_stop_order(instrument_id, side, trigger_price, order_price, size):
endpoint = "/api/v5/trade/order-algo"
url = BASE_URL + endpoint
body = {
"instId": instrument_id,
"tdMode": "cash",
"side": side,
"ordType": "conditional",
"sz": str(size),
"triggerPx": str(trigger_price),
"orderPx": str(order_price)
}
# 签名与请求流程同上
# ...
3 完整策略示例
以下是一个简单的网格交易脚本片段,结合上述函数实现自动低买高卖:
# 伪代码示例
price = get_market_data()["data"][0]["last"]
if price < grid_bottom:
place_limit_order("BTC-USDT", "buy", price*0.99, 0.01)
elif price > grid_top:
place_limit_order("BTC-USDT", "sell", price*1.01, 0.01)
更多高级策略(如均值回归、动量突破)可参考欧易官方文档或社区教程。
常见问题解答(FAQ)
Q1:API密钥不小心泄露了怎么办? A:立即登录欧易官网 → API管理 → 删除对应API密钥,同时建议修改账户资金密码与提现白名单。
Q2:为什么我的脚本无法连接API? A:请检查:
- 服务器时间是否与UTC时间同步(误差需在5秒内)
- API权限是否勾选正确
- IP白名单是否允许您的服务器IP
- 是否使用了正确的欧易交易所下载官方API域名
Q3:如何提高API调用频率? A:欧易API对普通用户有速率限制(如每秒20次),可通过:
- 使用WebSocket接收实时数据
- 批量请求合并
- 申请更高等级的API权限
Q4:可以在同一账户运行多个量化脚本吗? A:可以,但注意API Key的权限分离——建议为不同策略创建独立API密钥,并设置不同IP白名单。
总结与安全建议
通过本教程,您已掌握欧易交易所API申请及Python量化脚本编写的基础知识,总结关键点:
✅ 安全第一:API密钥、私钥、Passphrase三者务必分开存储,推荐使用环境变量或加密配置。
✅ 测试优先:先在模拟盘(Demo环境)测试策略,再投入真实资金。
✅ 持续优化:量化交易是长期工程,建议从简单网格策略入手,逐步迭代。
✅ 合规提醒:请遵守当地法律法规,合理使用API进行交易。
如需获取最新版本应用程序,请务必通过欧易交易所下载官方渠道,避免使用第三方未经验证的安装包。
标签: 量化交易脚本