目录导读
- 欧易API接口概述
- API接口申请完整步骤
- Python环境配置与依赖安装
- 编写第一个交易脚本:获取账户信息
- 实现自动下单与订单管理
- 常见问题与解答(FAQ)
欧易API接口概述
欧易交易所(OKX)作为全球领先的数字资产交易平台,其官方API接口为开发者提供了强大的自动化交易能力,通过欧易交易所下载并注册账户后,用户可申请API密钥,实现市场数据获取、交易执行、资金管理等核心功能,本文将以Python为例,手把手教你完成从API申请到脚本编写的全过程,助你快速入门量化交易。

欧易API采用RESTful架构,支持HTTP/HTTPS协议,返回JSON格式数据,其接口覆盖现货、合约、永续等多种交易品种,同时提供WebSocket实时数据推送,在开始编码前,你需要先完成API密钥的申请。
API接口申请完整步骤
1 登录欧易官网并进入API管理
访问欧易交易所官网,登录你的账户,在顶部导航栏找到“更多”菜单,选择“API”选项,若未注册,请先完成欧易交易所下载并注册。
2 创建API密钥
- 点击“创建API密钥”按钮。
- 为密钥命名(如“Python交易脚本”)。
- 设置权限:建议仅勾选“读取”和“交易”权限,确保资金安全。
- 完成安全验证(短信/邮箱/谷歌验证器)。
- 系统将生成Access Key和Secret Key。请立即保存Secret Key,它只显示一次。
3 安全注意事项
- 切勿将Secret Key明文存储在代码中或上传至公开仓库。
- 建议使用环境变量或加密配置文件管理密钥。
- 为API设置IP白名单,限制访问来源。
Python环境配置与依赖安装
1 环境要求
- Python 3.7及以上版本
- 依赖库:
requests、hmac、hashlib、json、time
2 安装依赖
pip install requests
Python内置的hmac、hashlib等库无需额外安装。
3 创建配置文件(推荐)
新建config.py文件,存储API密钥(请勿提交至Git):
API_KEY = "你的Access Key" SECRET_KEY = "你的Secret Key" PASSPHRASE = "你的API密码" # 创建API时设置的密码 BASE_URL = "https://www.okx.com" # 欧易官方API地址
编写第一个交易脚本:获取账户信息
1 签名生成原理
欧易API要求每次请求均携带签名,签名算法为:
- 时间戳 + HTTP方法 + 请求路径 + 请求体 → 使用HMAC-SHA256加密 → Base64编码
2 完整代码示例
创建okx_trading.py文件:
import requests
import json
import hmac
import hashlib
import base64
import time
from config import API_KEY, SECRET_KEY, PASSPHRASE, BASE_URL
def get_signature(timestamp, method, request_path, body):
message = timestamp + method + request_path + (body or "")
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_info():
method = "GET"
request_path = "/api/v5/account/balance"
timestamp = str(int(time.time()))
signature = get_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()
if __name__ == "__main__":
result = get_account_info()
print(json.dumps(result, indent=2))
3 运行测试
执行脚本后,你将看到账户余额、可用资产等信息,若返回错误代码,请检查API权限或签名生成逻辑。
实现自动下单与订单管理
1 下单函数
def place_order(inst_id, side, ord_type, sz, px=None):
method = "POST"
request_path = "/api/v5/trade/order"
timestamp = str(int(time.time()))
body = {
"instId": inst_id,
"tdMode": "cash", # 现货交易
"side": side, # buy/sell
"ordType": ord_type, # market/limit
"sz": str(sz)
}
if ord_type == "limit":
body["px"] = str(px)
body_str = json.dumps(body)
signature = get_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()
# 示例:以市价买入0.01个BTC
result = place_order("BTC-USDT", "buy", "market", 0.01)
print(result)
2 订单状态查询
def get_order_info(inst_id, ord_id):
method = "GET"
request_path = f"/api/v5/trade/order?instId={inst_id}&ordId={ord_id}"
timestamp = str(int(time.time()))
signature = get_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()
3 完整交易策略示例
结合市场数据,实现一个简单的网格交易逻辑需要实时获取价格并循环执行,注意:实盘交易前务必在模拟盘充分测试,同时提醒,所有交易请通过欧易交易所官网完成,避免使用非官方接口。
常见问题与解答(FAQ)
Q1:申请API时提示安全验证失败怎么办?
A:请确保手机/邮箱验证码填写正确,谷歌验证器时间同步,若仍失败,尝试清除浏览器缓存或更换设备。
Q2:脚本运行时报错“Invalid API Key”如何解决?
A:检查API Key是否已复制完整,且Secret Key与配置文件一致,注意:创建API时设置的“密码”是Passphrase,非登录密码。
Q3:如何限制API的IP访问?
A:在欧易官网API管理页面,为每个密钥单独设置IP白名单,仅允许你的服务器或本地IP地址访问。
Q4:Python脚本能否实现高频交易?
A:欧易API对请求频率有限制(如每2秒200次),若需高频交易,建议使用WebSocket接口或提升账户VIP等级。
Q5:API交易有手续费优惠吗?
A:通过API交易同样享受平台VIP费率,若持有OKB或达到一定交易量,可申请更低手续费。
通过本文教程,你已掌握欧易API接口的申请方法及Python交易脚本编写基础,从获取账户信息到自动下单,每一步均经过详细拆解,如需探索更多高级功能(如止损止盈、多品种套利),请持续关注欧易交易所下载官方文档,量化交易需谨慎,建议先用少量资金测试策略,逐步完善后再投入更大规模。
标签: Python交易脚本