=你的API信息(改成自己的)

admin okx快讯 2

欧易API接口申请教程:三步学会用Python编写自动化交易脚本

=你的API信息(改成自己的)-第1张图片-欧易交易所

📚 目录导读

  1. 欧易API是什么?为什么交易员都在用?
  2. 手把手教你申请欧易API接口(含权限设置避坑)
  3. 环境搭建:Python+库安装只需5分钟
  4. 实战代码:一个完整的行情获取+下单脚本
  5. 常见错误与排雷指南
  6. 问答集中营:新手最关心的5个问题
  7. 进阶玩法:如何让脚本24小时自动运行

1️⃣ 欧易API是什么?为什么交易员都在用?

很多朋友刚接触加密货币交易时,都会问:“手动下单太累了,有没有办法让电脑帮我盯着盘?” 答案是肯定的——通过欧易交易所官网的API接口。

API就像是一把“数字钥匙”,让你用代码直接连接欧易交易平台,你可以用它实现:

  • 自动获取实时行情
  • 按设定条件自动买卖
  • 批量管理订单
  • 跑量化策略

要知道,在快节奏的币圈,人眼盯盘根本拼不过机器,用欧易API写个脚本,哪怕只实现简单的“跌破支撑价自动止损”,都能帮你省下大量精力和情绪波动。


2️⃣ 手把手教你申请欧易API接口

你需要一个欧易交易所账号(如果还没注册,可以通过欧易交易所下载先注册,完成身份认证),步骤如下:

  1. 登录欧易交易所官网 → 点击右上角头像 → 进入“API管理”
  2. 创建API Key → 输入备注名(如“自动交易测试”)
  3. 设置权限 — 这里要特别留意:
    • 只读权限:只能查行情、查持仓,无法交易(适合练手)
    • 交易权限:可以下单、撤单(开始实战时选这个)
    • 提现权限:不建议开启,保障资金安全
  4. 安全验证 → 输入短信+邮箱验证码 → 生成Key

⚠️ 重要:API Key和Secret Key只会显示一次!请立即复制保存到本地TXT文件,别截图存手机(容易丢失或泄露),如果忘记,可以删除旧的重新生成。


3️⃣ 环境搭建:Python+库安装只需5分钟

假设你已经安装了Python(推荐3.9以上版本),接下来安装两个关键库:

pip install requests hmac hashlib base64 json time

这些库都是Python自带的或轻量级的,如果遇到慢的情况,可以换国内镜像源:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

小提示:建议使用虚拟环境(venv),避免和其他项目冲突,具体命令:

python -m venv okx_bot
cd okx_bot
Scripts\activate  # Windows
source bin/activate  # Mac/Linux

4️⃣ 实战代码:一个完整的行情获取+下单脚本

下面是一个可直接运行的例子,能获取BTC/USDT当前价格,并自动挂一个限价买单。

import requests
import hmac
import hashlib
import base64
import json
import time
api_key = "你的API_KEY"
secret_key = "你的SECRET_KEY"
passphrase = "你的交易密码"
# ==== 签名函数(官方推荐写法)====
def generate_sign(timestamp, method, request_path, body=''):
    message = timestamp + method + request_path + body
    mac = hmac.new(bytes(secret_key, encoding='utf8'), 
                   bytes(message, encoding='utf-8'), 
                   digestmod=hashlib.sha256)
    d = mac.digest()
    return base64.b64encode(d).decode('utf-8')
# ==== 获取行情 ====
def get_ticker():
    url = "https://www.okx.com/api/v5/market/ticker?instId=BTC-USDT"
    headers = {
        'OK-ACCESS-KEY': api_key,
        'OK-ACCESS-PASSPHRASE': passphrase,
        'Content-Type': 'application/json'
    }
    timestamp = str(time.time())
    headers['OK-ACCESS-TIMESTAMP'] = timestamp
    headers['OK-ACCESS-SIGN'] = generate_sign(timestamp, 'GET', '/api/v5/market/ticker')
    response = requests.get(url, headers=headers)
    return response.json()
# ==== 下单(限价买入0.001个BTC)====
def place_order(price):
    url = "https://www.okx.com/api/v5/trade/order"
    body = {
        "instId": "BTC-USDT",
        "tdMode": "cash",   # 现金交易
        "side": "buy",
        "ordType": "limit",
        "sz": "0.001",
        "px": str(price)
    }
    body_json = json.dumps(body)
    timestamp = str(time.time())
    headers = {
        'OK-ACCESS-KEY': api_key,
        'OK-ACCESS-PASSPHRASE': passphrase,
        'Content-Type': 'application/json',
        'OK-ACCESS-TIMESTAMP': timestamp,
        'OK-ACCESS-SIGN': generate_sign(timestamp, 'POST', '/api/v5/trade/order', body_json)
    }
    response = requests.post(url, headers=headers, data=body_json)
    return response.json()
# ==== 主程序 ====
if __name__ == "__main__":
    print("正在获取BTC当前价格...")
    ticker = get_ticker()
    current_price = float(ticker['data'][0]['last'])
    print(f"当前价格: {current_price} USDT")
    # 设置比当前价低1%的买单
    buy_price = round(current_price * 0.99, 2)
    print(f"准备挂单: 买入价格 {buy_price}")
    result = place_order(buy_price)
    print("下单结果:", result)

运行效果

正在获取BTC当前价格...
当前价格: 67500 USDT
准备挂单: 买入价格 66825.0
下单结果: {'code': '0', 'data': [{'ordId': '1234567890', 'clOrdId': '', 'ts': '1735689600000'}]}

如果返回 code: '0',说明下单成功,如果出现其他错误码,看下一节排雷。


5️⃣ 常见错误与排雷指南

错误码 含义 解决方案
50013 时间戳偏差过大 检查系统时间是否准确,需与API服务器同步(误差不超过30秒)
50019 签名错误 确认Secret Key和passphrase是否正确
50021 权限不足 检查API Key的权限设置,需开启交易权限
51006 价格不满足最小变动 调整价格精度,比如BTC只能到0.01 USDT

时间戳同步小技巧:打开浏览器访问 time.is 对比,如果系统时间不准,右击时间设置 → 同步时钟。


6️⃣ 问答集中营:新手最关心的5个问题

Q1:API Key泄露了怎么办? A:立即登录欧易交易所官网,进入API管理界面删除泄露的Key,再重新生成,如果你的Key有交易权限而资金被盗,可以联系客服处理。强烈建议:每次只生成短期使用的Key,且不要开启提现权限。

Q2:能不能用这个脚本做网格交易? A:当然可以!只要循环运行脚本,设定价格区间,每次达到条件就下单,不过建议先用模拟盘测试,不要在实盘里直接跑未验证的策略。

Q3:为什么我的订单总是成交不了? A:限价单需要等市场价达到你的挂单价才会成交,如果想立即成交,可以把 ordType 改为 market(市价单),但注意市价单会有滑点。

Q4:运行脚本时提示“Too Many Requests”? A:欧易API有频率限制(通常每秒10次),建议在每次请求后加上 time.sleep(0.1) 来降低频率。

Q5:可以同时操作多个币种吗? A:可以,把 instId 换成其他币种,ETH-USDTSOL-USDT,并在循环里用列表来管理多个币种。


7️⃣ 进阶玩法:如何让脚本24小时自动运行

写好的Python脚本不可能一直开着电脑跑吧?这里有两个方案:

  • 云服务器方案:买一台最低配的腾讯云或阿里云服务器,配置好Python环境,用 nohup python script.py & 后台运行。
  • 本地计划任务:Windows用任务计划程序,Mac/Linux用crontab,定时执行脚本。

给新手的提醒:自动交易有风险,建议先用最小金额(比如10U)测试一周,确认脚本没有bug再逐步加资金,千万不要把全部身家直接丢进去自动跑!


最后再啰嗦一句:加密市场波动剧烈,任何自动化脚本都无法保证100%盈利,不要把API Key和资金密码告诉任何人,也不要在公共场合共享脚本截图(可能会暴露Key信息),祝你交易顺利,早日实现交易自由!

抱歉,评论功能暂时关闭!