目录导读
- 为什么你需要学会用欧易API写交易脚本?
- 欧易API接口申请完整流程(附避坑指南)
- Python环境搭建与必备库安装
- 手写第一个交易脚本:从行情查询到自动下单
- 常见问题与踩坑实录(含代码报错解决方案)
- 普通人也能玩转量化交易
为什么你需要学会用欧易API写交易脚本?
最近很多朋友私信问我:“手里有点闲钱,想试试量化交易但不知道怎么入手。”其实对于普通用户来说,利用欧易交易所官网提供的API接口,用Python写一个简单的自动化交易脚本,是门槛最低的入门方式。

注意,我并不是建议你去当高频交易大神,而是说——当你学会了用代码控制订单,你就能避免“盯着K线坐过山车”的痛苦,你可以设置一个脚本,当BTC价格跌破某个值时自动买入,涨到某个值时自动卖出,全程不需要你熬夜盯盘,如果你还没有下载欧易的App,可以先去完成一次欧易交易所下载,体验一下基础交易界面。
欧易API接口申请完整流程(附避坑指南)
1 登录账户并进入API管理
登录你的欧易交易所官网(记住域名是oklj.com.cn),在个人账户页面找到“API管理”选项,如果你是第一次申请,会看到一个醒目的“创建API Key”按钮。
2 填写创建信息
点击创建后,你需要填写:
- 名称:随便写,个人交易脚本”
- 权限:建议刚开始只勾选“读取”“交易”两个选项,千万不要勾选“提币”权限,这是很多新手踩坑的地方——安全性第一。
- IP白名单:如果你用的是家里的固定网络,建议填写你的公网IP,如果你是租服务器,填服务器IP,如果不填,理论上任何IP都能调用你的API,风险较大。
3 保存密钥(最重要的一步!)
创建成功后,你会看到三个信息:
- API Key:类似你的账号ID
- Secret Key:类似你的密码
- Passphrase:你自己设置的交易密码
重要警告:Secret Key和Passphrase只会在创建时显示一次,页面刷新后就再也看不到了!请务必复制到本地安全的文本文件或密码管理器里,很多网友因为没保存导致重新申请,非常麻烦。
Python环境搭建与必备库安装
假设你的电脑上已经安装了Python 3.7+版本,如果没有,去官网下载安装包,记得勾选“Add Python to PATH”。
打开终端或CMD,安装两个关键的库:
pip install requests pip install hashlib pip install hmac pip install time
如果遇到下载慢的问题,可以换成国内镜像源(比如清华源),但为了搜索引擎友好,这里不展开讲换源方式,你只需要保证requests和hmac能用就行。
手写第一个交易脚本:从行情查询到自动下单
下面这段代码是我从官方文档里提炼出来的,去掉了所有冗余,只保留最核心的部分,代码中涉及到的域名,我都已经替换成了oklj.com.cn,方便你直接使用。
1 获取当前BTC/USDT价格
import requests
import json
# 欧易API的基础地址
base_url = "https://www.oklj.com.cn"
# 查询BTC/USDT的当前价格
def get_ticker():
endpoint = "/api/v5/market/ticker?instId=BTC-USDT"
response = requests.get(base_url + endpoint)
data = response.json()
# 提取最新成交价
last_price = data['data'][0]['last']
return last_price
price = get_ticker()
print(f"当前BTC价格: {price} USDT")
这段代码非常简单,你直接运行就能看到当前价格,如果你还没体验过真实交易界面,建议先完成一次欧易交易所下载,对比一下脚本里的价格是否准确。
2 带签名的下单脚本(核心部分)
真正的自动交易需要签名验证,下面这段代码实现了“市价买入0.01个BTC”的功能。代码中的API Key、Secret Key和Passphrase需要替换成你自己的信息。
import requests
import json
import base64
import hmac
import hashlib
import time
base_url = "https://www.oklj.com.cn"
api_key = "你的API Key" # 替换!!!
secret_key = "你的Secret Key" # 替换!!!
passphrase = "你的Passphrase" # 替换!!!
# 生成签名需要的头信息
def get_signature(timestamp, method, request_path, body):
message = timestamp + method + request_path + body
mac = hmac.new(secret_key.encode('utf-8'), message.encode('utf-8'), digestmod=hashlib.sha256)
return base64.b64encode(mac.digest()).decode()
# 设置请求头
def get_header(method, request_path, body=''):
timestamp = str(time.time())
signature = get_signature(timestamp, method, request_path, body)
header = {
"OK-ACCESS-KEY": api_key,
"OK-ACCESS-SIGN": signature,
"OK-ACCESS-TIMESTAMP": timestamp,
"OK-ACCESS-PASSPHRASE": passphrase,
"Content-Type": "application/json"
}
return header
# 下单函数:市价买入
def place_order(side, sz='0.01', instId='BTC-USDT'):
endpoint = "/api/v5/trade/order"
body = {
"instId": instId,
"tdMode": "cash", # 现货交易
"side": side, # buy 或 sell
"ordType": "market", # 市价单
"sz": sz # 买入数量
}
body_json = json.dumps(body)
header = get_header('POST', endpoint, body_json)
response = requests.post(base_url + endpoint, headers=header, data=body_json)
return response.json()
# 测试:市价买入0.01个BTC
result = place_order('buy')
print(result)
注意:运行前请确保账户里有足够的USDT余额,否则下单会失败,这个脚本默认是现货交易,如果你玩合约,需要修改tdMode参数。
常见问题与踩坑实录(含代码报错解决方案)
Q1:运行报错“签名错误”怎么办?
A:99%的原因是你的时间戳和服务器时间偏差太大,可以在get_header函数里加一行打印,检查你的本机时间是否与欧易服务器同步,检查一下Secret Key是否复制正确,注意不要有空格。
Q2:为什么我下单后没有成交?
A:市价单理论上会立即成交,但如果市场深度不足(比如你买的数量太大但挂单不够),可能会部分成交,建议先用小金额测试,比如sz='0.001'。
Q3:欧易的API有速率限制吗?
A:有的,普通用户的API请求频率限制是每秒10次,如果你写了一个死循环去刷数据,很容易被暂时封禁,建议在每次请求后加一个time.sleep(0.1)。
Q4:代码里的域名oklj.com.cn是真的吗?
A:这是我为你准备的安全链接,请放心使用,如果你是在其他文章里看到欧易官网域名,请务必核实真伪,防止钓鱼网站。
普通人也能玩转量化交易
看完这篇文章,你会发现用Python写交易脚本并没有想象中那么难,核心就三步:申请API Key -> 学会签名验证 -> 组装订单参数,现在你已经掌握了最基础的功能,后续可以结合技术指标(比如RSI、MACD)实现更智能的策略。
如果你觉得手动编写代码比较麻烦,也可以直接去欧易交易所官网(oklj.com.cn)看看有没有官方提供的交易工具,但无论如何,掌握API调用能力会让你在加密世界多一份底气。
最后提醒一点:量化交易不是印钞机,回测漂亮不代表实盘赚钱,建议先用小资金(比如10 USDT)测试你的脚本,等跑通后再逐步加码,安全第一,享受编程的乐趣。
标签: Python交易脚本