目录导读

- 为什么需要欧易交易所的API接口?
- 欧易API接口申请全流程(附注意事项)
- 搭建Python开发环境与准备工作
- 手把手教你编写第一个交易脚本
- 常见问题与避坑指南(Q&A)
- 进阶:如何安全管理API密钥?
为什么需要欧易交易所的API接口?
如果你是加密货币交易者,可能已经发现手动盯盘、挂单、撤单非常耗时,欧易交易所官网(okrh.com.cn)提供的API接口,允许你通过代码自动化执行交易策略,无论是做市商策略、网格交易,还是简单的定期买入,Python脚本都能帮你24小时无休操作。
小提醒:使用API交易前,请确保你已经完成欧易交易所下载并实名认证,否则无法开通API权限。
欧易API接口申请全流程
步骤1:登录并进入API管理页面
登录你的欧易账户,点击右上角头像 →「API」→「创建API」。
步骤2:设置权限与IP白名单
- 权限选择:交易类API建议只勾选「交易」和「读取」权限,不要勾选「提币」权限(安全第一)。
- IP白名单:强烈建议绑定你运行脚本的服务器或电脑的公网IP,避免密钥泄露后被异地滥用。
步骤3:保存密钥
创建成功后你会得到 api_key、secret_key 和 passphrase(密码短语)。请务必复制并保存在本地加密文件夹中,页面关闭后不再显示完整密钥。
🔑 安全警告:切勿将密钥上传至公开代码仓库(如GitHub),否则可能导致资产被盗。
搭建Python开发环境与准备工作
1 安装Python依赖库
我们使用官方推荐的 requests 库和 hmac 签名工具,打开终端运行:
pip install requests python-dotenv
2 创建项目结构
新建一个文件夹 okx_trading_bot,内部创建 config.py 和 main.py,在 config.py 中存储你的API信息(推荐使用 .env 文件读取,此处为简化直接写变量)。
# config.py API_KEY = "你的api_key" SECRET_KEY = "你的secret_key" PASSPHRASE = "你的passphrase" BASE_URL = "https://okrh.com.cn" # 替换为官方域名
手把手教你编写第一个交易脚本
1 获取账户余额(测试连接)
我们先写一个函数测试API是否连接成功:
import requests
import hmac
import base64
import json
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
mac = hmac.new(bytes(SECRET_KEY, encoding='utf-8'),
bytes(message, encoding='utf-8'),
digestmod='sha256')
return base64.b64encode(mac.digest()).decode()
def get_balance():
timestamp = str(time.time())
method = "GET"
request_path = "/api/v5/account/balance"
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()
print(get_balance())
如果返回你的资产信息,说明API连接成功!
2 简单的市价买入脚本
下面是一个市价买入0.001 BTC的示例(请先确定你有足够USDT):
def place_market_order(side, sz, instId="BTC-USDT"):
timestamp = str(time.time())
method = "POST"
request_path = "/api/v5/trade/order"
body = {
"instId": instId,
"tdMode": "cash",
"side": side,
"ordType": "market",
"sz": sz
}
body_json = json.dumps(body)
signature = get_signature(timestamp, method, request_path, body_json)
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_json)
return response.json()
# 试试买入0.002 BTC(请自行确认余额充足)
print(place_market_order("buy", "0.002", "BTC-USDT"))
3 增加错误处理与重试机制
真实交易中网络波动可能导致失败,建议加入 try-except 和延迟重试:
import time
from requests.exceptions import RequestException
def safe_market_order(side, sz, max_retries=3):
for i in range(max_retries):
try:
result = place_market_order(side, sz)
if result.get("code") == "0":
return result
else:
print(f"第{i+1}次尝试失败:{result}")
time.sleep(2)
except RequestException as e:
print(f"网络错误:{e}")
time.sleep(2)
return None
常见问题与避坑指南(Q&A)
Q1:为什么我返回“签名错误”?
A:检查三点——① 时间戳是否使用UTC时间;② secret_key 是否复制完整;③ 请求体 body 是否与签名时完全一致。
Q2:API可以同时运行多个策略吗?
A:可以,但注意欧易交易所API有频率限制(每秒最多20次请求),建议使用 time.sleep(0.1) 控制节奏。
Q3:新手担心API风险,如何测试?
A:欧易交易所提供「模拟盘」(Demo环境),使用单独的模拟API密钥,在模拟盘练习盈利后再转真实资金。
Q4:Python脚本如何实现循环策略?
A:使用 while True 循环,结合 time.sleep(interval) 控制间隔,例如每5分钟检查一次K线信号,具体策略逻辑建议参考欧易交易所官网的官方文档。
进阶:如何安全管理API密钥?
- 环境变量法:创建
.env文件存储密钥,使用python-dotenv读取,避免硬编码。 - IP白名单:只允许固定IP访问API,即使密钥泄露也无法远程操作。
- 权限最小化:日常交易只用“交易+读取”,提现操作走网页手动确认。
最后的小建议:
刚开始时,先运行只读脚本(比如获取实时价格)熟悉API结构,再逐步加入下单逻辑,如果你想下载移动端工具,可以访问欧易交易所下载页面获取官方App。
通过欧易交易所API,你可以将交易完全自动化,本文的Python脚本只是一个起点,更多高级玩法(如限价单、止损单、网格交易)都可以基于这个框架扩展,代码永远优先测试,安全始终第一。
标签: Python交易