目录导读
欧易交易所API接口申请全流程
在开始编写交易脚本之前,首先需要完成API的申请与配置,请按照以下步骤操作:

-
登录欧易交易所官网
访问 https://oe-okor.com.cn/ 并登录您的账户,如果您还没有账户,请先完成注册和身份认证。 -
进入API管理页面
登录后,在导航栏找到“账户”或“安全设置”选项,点击进入“API管理”界面,注意:部分页面可能需要二次验证(如手机或邮箱验证码)。 -
创建API密钥
- 点击“创建API”按钮。
- 选择权限范围:建议勾选“读取”、“交易”和“提币”(如非必要,请勿开启“提币”权限以增强安全性)。
- 系统会生成一对密钥:API Key(公钥)和Secret Key(私钥),请务必妥善保管,私钥仅在创建时显示一次,丢失后只能重新生成。
-
绑定IP白名单(推荐)
为了提高安全性,建议绑定您的服务器或本机IP地址,这样即使密钥泄露,攻击者也无法从其他IP发起请求。 -
测试连接
使用Python等编程语言发送一个简单的请求(如获取账户余额),验证密钥是否正常工作。
提示:您也可以先在 欧易交易所下载 的移动端应用中完成基础设置,再切换到PC端进行详细操作。
Python环境搭建与库安装
1 环境要求
- Python 3.8 及以上版本
- 确保已安装
pip包管理器
2 安装依赖库
在终端或命令提示符中执行以下命令:
pip install requests hashlib hmac base64 json
其中requests用于发送HTTP请求,hashlib和hmac用于生成签名,json用于解析返回数据。
3 设置全局变量
创建一个Python脚本文件(如okx_trading.py),并在开头定义API密钥:
import requests import hmac import hashlib import base64 import json from datetime import datetime API_KEY = "您的API Key" SECRET_KEY = "您的Secret Key" BASE_URL = "https://www.okx.com" # 请确认接口域名是否与官网一致
编写第一个交易脚本:基础框架
1 签名生成函数
欧易API要求每次请求都必须携带合法签名,以下是一个通用的签名生成函数:
def generate_signature(timestamp, method, request_path, body=''):
message = timestamp + method + request_path + body
mac = hmac.new(bytes(SECRET_KEY, encoding='utf-8'),
bytes(message, encoding='utf-8'),
digestmod=hashlib.sha256)
d = base64.b64encode(mac.digest())
return d.decode('utf-8')
2 发送请求函数
def send_request(method, path, params=None):
timestamp = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
if params is None:
body = ''
else:
body = json.dumps(params)
signature = generate_signature(timestamp, method, path, body)
headers = {
'OK-ACCESS-KEY': API_KEY,
'OK-ACCESS-SIGN': signature,
'OK-ACCESS-TIMESTAMP': timestamp,
'OK-ACCESS-PASSPHRASE': '您的交易密码' # 需在API创建时设置
}
url = BASE_URL + path
if method == 'GET':
response = requests.get(url, headers=headers, params=params)
elif method == 'POST':
response = requests.post(url, headers=headers, data=body)
else:
return None
return response.json()
3 获取账户信息
def get_account_info():
path = '/api/v5/account/balance'
return send_request('GET', path)
实战案例:自动获取行情并下单
1 获取实时行情
def get_ticker(symbol='BTC-USDT'):
path = f'/api/v5/market/ticker?instId={symbol}'
return send_request('GET', path)
2 市价下单
def place_market_order(symbol, side, size):
path = '/api/v5/trade/order'
body = {
'instId': symbol,
'tdMode': 'cash', # 保证金模式: cash 为现货
'side': side, # buy 或 sell
'ordType': 'market', # 市价单
'sz': str(size)
}
return send_request('POST', path, body)
3 完整示例:当价格低于某个阈值时买入
def auto_buy_if_low(symbol='BTC-USDT', target_price=50000, amount=0.01):
ticker = get_ticker(symbol)
current_price = float(ticker['data'][0]['last'])
if current_price < target_price:
print(f"当前价格 {current_price} 低于目标价 {target_price},执行买入...")
result = place_market_order(symbol, 'buy', amount)
print("下单结果:", result)
else:
print(f"当前价格 {current_price} 未达到触发条件")
# 运行
auto_buy_if_low()
常见问题与问答
Q1: 为什么我调用API时返回“签名错误”?
A: 常见原因包括:
- 时间戳未使用UTC时间
- Secret Key或Passphrase填写有误
- 请求路径或参数与签名时不一致
请检查generate_signature函数中的时间戳格式是否为"YYYY-MM-DDTHH:MM:SS.fffZ"。
Q2: 如何保证脚本24小时运行?
A: 建议将脚本部署到云服务器或使用Raspberry Pi等小型设备,可结合schedule库设置定时任务,
import schedule schedule.every(10).minutes.do(auto_buy_if_low)
Q3: 欧易交易所下载的移动端也能管理API吗?
A: 可以,在 欧易交易所下载 应用中,通过“安全中心”或“账户设置”也能查看和管理API密钥,但创建密钥建议在官网完成。
Q4: 脚本交易的风险如何控制?
A:
- 设置单次交易的最大金额
- 添加止损逻辑(如价格回撤超过2%自动卖出)
- 使用模拟盘或极小资金测试
安全注意事项与优化建议
-
密钥保护
- 切勿将API Key和Secret Key硬编码在公开仓库中。
- 建议使用环境变量存储敏感信息:
import os API_KEY = os.getenv('OKX_API_KEY')
-
请求频率限制
欧易API对每分钟请求次数有限制(通常为60次/秒),建议使用time.sleep()避免触发频率限制。 -
错误处理
增加异常捕获和重试机制,防止网络波动导致脚本中断。 -
日志记录
使用logging模块记录每次交易操作,便于复盘和排查问题。
通过以上教程,您已经掌握了从申请API到编写基础交易脚本的完整流程,建议先在模拟环境中充分测试,再投入真实资金,如需深入开发,可查阅欧易官方API文档中关于止损单、止盈单等高级功能。
标签: 欧易API Python交易脚本