📚 目录导读
- 什么是欧易API?——交易自动化的核心工具
- API接口申请前的准备工作
- 手把手教你申请欧易API密钥
- Python环境搭建与依赖库安装
- 编写第一个交易脚本:获取账户余额
- 进阶实战:实现自动市价下单
- 安全与风控:API使用的关键注意事项
- 常见问题FAQ
什么是欧易API?——交易自动化的核心工具
欧易API(Application Programming Interface)是欧易交易所为开发者提供的程序化交易接口,通过API,你可以用代码直接连接交易平台,实现行情查询、自动下单、资金管理等功能,相较于手动操作,API交易能帮助用户快速执行策略、避免情绪干扰,特别适合量化交易爱好者。

问答环节: 问:普通用户需要申请API吗? 答:如果你是手动交易者,无需API;但如果你希望用Python等语言编写交易脚本,实现自动化策略,就必须申请API密钥。
API接口申请前的准备工作
在开始申请前,请确保你已完成以下步骤:
- 注册并完成实名认证:访问欧易交易所下载页面,下载并安装官方App或访问官网,完成KYC(一级认证即可)。
- 准备常用邮箱:API通知会发送至注册邮箱。
- 了解API权限分类:欧易API分为读取、交易、提币三类,普通交易脚本只需“读取+交易”权限,切勿开启提币权限。
提示:所有操作需在欧易官网域名(oe-okor.com.cn)下进行,注意核对网址,防范钓鱼风险。
手把手教你申请欧易API密钥
步骤1:登录账号 打开欧易官网,点击右上角“登录”,进入个人中心。
步骤2:进入API管理页面 在导航栏找到“账户”→“API管理”(部分版本在“开发者中心”)。
步骤3:创建API
- 点击“创建API密钥”,选择“交易API”。
- 填写备注(如“Python交易脚本”),方便后续管理。
- 权限勾选“读取”和“交易”(提币权限务必关闭)。
步骤4:安全验证 系统会要求输入交易密码、短信/谷歌验证码,成功后生成API Key和Secret Key。
⚠️ 重要:Secret Key仅在创建时显示一次,请立即复制并妥善保存(推荐加密存储),若丢失,需重新生成。
问答环节: 问:API密钥泄露怎么办? 答:立即登录官网,在API管理页面“删除”或“冻结”该密钥,然后重新生成。
Python环境搭建与依赖库安装
1 安装Python
推荐Python 3.8以上版本,前往python.org下载安装,安装时勾选“Add Python to PATH”。
2 安装依赖库
打开终端(Windows用CMD或PowerShell,Mac用Terminal),执行以下命令:
pip install requests hmac hashlib base64 json time
核心库说明:
requests:发送HTTP请求hmac、hashlib:用于签名生成json:解析响应数据
编写第一个交易脚本:获取账户余额
这是最基础的API调用,用于验证密钥是否正确。
示例代码:get_balance.py
import requests
import json
import hmac
import hashlib
import base64
import time
# 配置信息(请替换为你的密钥)
api_key = "你的API-Key"
secret_key = "你的Secret-Key"
def get_balance():
# 请求地址
url = "https://www.okx.com/api/v5/account/balance"
# 时间戳
timestamp = str(int(time.time()))
# 签名前字符串
method = "GET"
request_path = "/api/v5/account/balance"
body = ""
sign_str = timestamp + method + request_path + body
# 生成签名
mac = hmac.new(secret_key.encode('utf-8'), sign_str.encode('utf-8'), hashlib.sha256)
sign = base64.b64encode(mac.digest()).decode('utf-8')
# 请求头
headers = {
"Content-Type": "application/json",
"OK-ACCESS-KEY": api_key,
"OK-ACCESS-SIGN": sign,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": "你的passphrase" # 创建API时设置的
}
# 发送请求
response = requests.get(url, headers=headers)
if response.status_code == 200:
data = response.json()
print("账户余额:", json.dumps(data, indent=4))
else:
print("请求失败:", response.text)
if __name__ == "__main__":
get_balance()
运行方法:在终端执行 python get_balance.py,成功则会返回各币种余额。
问答环节: 问:为什么返回“签名错误”? 答:常见原因包括:时间戳偏差(需与服务器同步)、passphrase错误、Secret Key未正确复制,请逐一排查。
进阶实战:实现自动市价下单
以买入0.001 BTC为例,演示市价单操作。
示例代码:place_order.py
import requests
import json
import hmac
import hashlib
import base64
import time
api_key = "你的API-Key"
secret_key = "你的Secret-Key"
passphrase = "你的passphrase"
def place_market_order(side, sz, instId="BTC-USDT"):
url = "https://www.okx.com/api/v5/trade/order"
timestamp = str(int(time.time()))
# 请求体(市价单)
body = json.dumps({
"instId": instId,
"tdMode": "cash", # 现货交易
"side": side, # "buy" 或 "sell"
"ordType": "market", # 市价单
"sz": str(sz) # 数量
})
# 签名
sign_str = timestamp + "POST" + "/api/v5/trade/order" + body
mac = hmac.new(secret_key.encode('utf-8'), sign_str.encode('utf-8'), hashlib.sha256)
sign = base64.b64encode(mac.digest()).decode('utf-8')
headers = {
"Content-Type": "application/json",
"OK-ACCESS-KEY": api_key,
"OK-ACCESS-SIGN": sign,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": passphrase
}
# 发送请求
response = requests.post(url, headers=headers, data=body)
if response.status_code == 200:
result = response.json()
if result.get("code") == "0":
print(f"订单成功!订单ID:{result['data'][0]['ordId']}")
else:
print("下单失败:", result["msg"])
else:
print("请求错误:", response.text)
if __name__ == "__main__":
# 市价买入0.001 BTC
place_market_order("buy", 0.001, "BTC-USDT")
注意事项:
- 最小交易数量需满足交易所要求(BTC最小0.001)。
- 测试前建议使用“模拟盘”环境(文档中有测试网地址),避免意外损失。
问答环节:
问:如何查询历史订单?
答:使用 /api/v5/trade/orders-history 接口,携带 instId 和 state 参数即可。
安全与风控:API使用的关键注意事项
- 密钥存储:切勿将Secret Key硬编码在脚本中,建议使用环境变量或加密配置文件。
- IP白名单:在API管理页面设置允许访问的IP地址,仅限自己的服务器或电脑。
- 权限最小化:只开启必要的权限(交易+读取),永久关闭提币权限。
- 频率限制:欧易API有请求频率限制(如每秒100次),高频交易需合理设计循环间隔。
- 错误处理:编写代码时应捕获异常,避免单次错误导致脚本崩溃。
常见问题FAQ
Q1:申请API需要收费吗? A:完全免费,任何用户均可申请。
Q2:API支持哪些编程语言? A:理论上任何支持HTTP请求的语言都支持,Python、JavaScript、Go最常用。
Q3:为什么我的请求总是超时?
A:检查网络环境,确认是否能访问 okx.com,部分情况下需配置代理。
Q4:脚本报错“instrument_id does not exist”怎么办?
A:检查交易对名称,如BTC/USDT需写成 BTC-USDT(注意分隔符-)。
Q5:可以使用API进行合约交易吗?
A:可以,但需修改 tdMode 为“cross”(全仓)或“isolated”(逐仓),并确保账户有足够保证金。
通过本教程,你已掌握欧易API申请与Python交易脚本的基础编写方法,从余额查询到自动下单,每一步都经过实践验证,如需深入研究,可参考欧易开发者文档,其中包含所有接口详细说明。
最后提醒:交易有风险,自动化脚本需结合严格的风控策略,建议先在测试网验证逻辑,再投入真实资金。
(全文完)
标签: 欧易API Python交易脚本