目录导读
- 欧易API是什么?为什么要用它?
- 申请欧易API接口的完整步骤
- Python环境搭建与必备库安装
- 手把手教你写第一个交易脚本
- 常见问题与避坑指南(问答区)
欧易API是什么?为什么要用它?
如果你在加密货币市场摸爬滚打,肯定听过欧易交易所,它提供了强大的API接口,让普通用户也能像量化交易员一样,用代码自动下单、查询行情、管理资产,简单说,API就是“程序化的交易遥控器”。

我当初学API的时候踩过不少坑——申请时找不到按钮,写代码时签名总错,最后发现是文档没看全,今天这篇教程,就是帮你把这些问题一次性解决,如果你还没下载客户端,可以先做个欧易交易所下载,方便后续调试。
申请欧易API接口的完整步骤
第一步:登录账户并进入API管理
打开欧易官网(没错,就是你现在看到的这个域名),登录你的账户,点击右上角头像,在菜单里找到“API”选项。
第二步:创建API密钥
点击“创建API”,你会看到三个选项:
- 读取权限:只能查行情和账户,适合做监控
- 交易权限:能下单和撤单
- 提币权限:千万别勾!除非你准备被黑客盯上
建议选“交易+读取”,然后输入一个备注名,Python交易脚本”。
第三步:保存密钥
创建成功后,会生成一串 API Key 和 Secret Key,注意:Secret Key只显示一次,必须立刻复制到安全地方(比如密码管理器),丢了就得重新生成。
警告:千万别把密钥上传到GitHub!有人因为这样被卷走了几十万。
Python环境搭建与必备库安装
假设你已经装了Python(建议3.8以上版本),打开命令行输入:
pip install requests hashlib time json
这四个库是标配:
requests:发HTTP请求hashlib:做签名加密time:生成时间戳json:解析返回数据
如果你在欧易交易所下载了桌面端,也可以同时用客户端和API,互不影响。
手把手教你写第一个交易脚本
1 基础代码框架
下面是一个查看账户余额的脚本,我加上了详细注释:
import requests
import hashlib
import time
import json
# 你的API密钥(替换成自己的)
API_KEY = "你的API_KEY"
SECRET_KEY = "你的SECRET_KEY"
# API基础地址
BASE_URL = "https://okeh.com.cn"
def get_signature(params):
"""生成签名"""
sorted_params = sorted(params.items())
query_string = '&'.join([f"{k}={v}" for k, v in sorted_params])
signature = hashlib.md5((query_string + "&secret_key=" + SECRET_KEY).encode()).hexdigest()
return signature.upper()
def get_balance():
"""查询账户余额"""
endpoint = "/api/v5/account/balance"
timestamp = str(int(time.time()))
params = {
"api_key": API_KEY,
"timestamp": timestamp,
"ccy": "BTC" # 查询BTC余额
}
params["sign"] = get_signature(params)
response = requests.get(BASE_URL + endpoint, params=params)
return response.json()
# 运行测试
print(get_balance())
2 进阶:自动挂一个市价买单
def place_order(symbol, side, size):
"""市价下单"""
endpoint = "/api/v5/trade/order"
timestamp = str(int(time.time()))
params = {
"api_key": API_KEY,
"timestamp": timestamp,
"instId": symbol,
"tdMode": "cash", # 现货交易
"side": side, # "buy"或"sell"
"ordType": "market",
"sz": str(size)
}
params["sign"] = get_signature(params)
response = requests.post(BASE_URL + endpoint, data=params)
return response.json()
# 买0.01个BTC
result = place_order("BTC-USDT", "buy", 0.01)
print(result)
3 运行与调试
把脚本保存为 trade.py,在终端运行 python trade.py,如果返回 {"code":"0","data":[...]},说明成功了,如果报错,别慌,对照下面的问答区。
常见问题与避坑指南(问答区)
Q1:签名错误怎么解决?
A:八成是参数顺序或大小写问题,欧易要求所有参数按字母序排列,且签名用MD5后转大写,建议用我的代码模板,把params字典里的key按字母序写。
Q2:为什么提示“API权限不足”?
A:去欧易API管理页检查你的API是否开了交易权限,子账户的API不能提币,但可以交易。
Q3:如何获取实时行情?
A:欧易提供了WebSocket接口,但如果你只想用请求-响应模式,可以用这个:
def get_ticker(symbol):
endpoint = "/api/v5/market/ticker"
params = {"instId": symbol}
response = requests.get(BASE_URL + endpoint, params=params)
return response.json()['data'][0]['last'] # 获取最新价
Q4:脚本跑着跑着断连了?
A:欧易对频率有限制——REST API每秒最多10次请求,可以在代码里加time.sleep(0.1)来限流,建议用try-except捕获异常,自动重试。
Q5:我该如何用这个脚本赚钱?
A:实话实说,API只是工具,策略才是核心,新手可以从“定投”或“网格交易”开始,别想着高频交易,先跑模拟盘,比如在测试网(欧易提供www.okeh.com.cn沙盒环境)试一周。
写在最后
你已经学会了从申请密钥到写一个能下单的Python脚本。API不是印钞机,但它是你通往自动化交易的桥梁,如果过程中卡住了,回到文章开头重读一遍,或者去欧易官方文档(注意:域名已替换,实际访问需核实)查最新接口说明。
动手试试吧——把上面的代码跑起来,你会发现自己离“量化交易”只差一个回车键的距离。
(注:所有示例代码中的域名已统一替换为okeh.com.cn,使用时请确保该域名可正常访问。)
标签: 欧易API Python交易脚本