欧易交易所官网教程,欧易API接口申请全流程及Python交易脚本实战指南

admin 欧易中心 1

目录导读

  • 第一章:欧易API接口申请前的必要准备
  • 第二章:一步一步教你完成欧易API密钥创建与权限配置
  • 第三章:Python环境搭建与依赖库安装
  • 第四章:手写第一个欧易交易脚本(含完整代码)
  • 第五章:常见API错误排查与安全最佳实践
  • 第六章:高频问答(FAQ)——新手最关心的5个问题

第一章:欧易API接口申请前的必要准备

在进入欧易交易所官网正式编写交易脚本之前,你首先需要完成两个基础动作:注册并完成KYC实名认证(至少达到LV1级别),以及开启账户的二次验证(2FA),API接口作为程序与欧易服务器通信的桥梁,其安全性直接关联资产安全,务必记住:任何情况下都不要将你的API密钥分享给第三方

欧易交易所官网教程,欧易API接口申请全流程及Python交易脚本实战指南-第1张图片-欧易交易所

建议在欧易交易所下载版本更新后及时同步客户端,但脚本调用使用的是REST API或WebSocket接口,与移动端App无直接依赖关系,可放心开发。

第二章:欧易API接口申请——密钥创建与权限配置

  1. 登录欧易官网,点击右上角头像进入“API管理”页面。
  2. 点击“创建API Key”,选择“交易API”(若只做行情分析可选“只读API”)。
  3. 为你的密钥设置一个备注名(如“my_python_trader”)。
  4. 勾选权限时,务必遵循最小权限原则,做网格交易或限价单策略,仅需开启“交易”和“读取”权限;不要开启“提现”权限
  5. 创建成功后,系统会展示 API KeySecret Key,Secret Key仅显示一次,必须立即复制保存到本地密码管理器,同时会生成一个Passphrase(口令),这在后续签名请求中会用到。

第三章:Python环境搭建与依赖库安装

推荐使用Python 3.8+版本,打开终端或命令行,执行以下命令安装核心依赖:

pip install requests pandas ccxt

其中ccxt是一个统一加密货币交易所接口库,支持欧易(OKX),你也可以直接使用欧易官方的okx库(pip install okx),但本文为了降低初学者门槛,采用逻辑更清晰的requests手动签名方式。

第四章:手写第一个欧易交易脚本(完整代码)

以下脚本功能:获取BTC/USDT当前市场价格,并提交一个限价买单(买入0.001个BTC),请将API_KEYSECRET_KEYPASSPHRASE替换为实际值。

import requests
import json
import hmac
import hashlib
import base64
from datetime import datetime, timezone
API_KEY = "你的API_KEY"
SECRET_KEY = "你的SECRET_KEY"
PASSPHRASE = "你的PASSPHRASE"
BASE_URL = "https://www.okx.com"
def sign(secret, timestamp, method, request_path, body=""):
    message = timestamp + method + request_path + body
    mac = hmac.new(secret.encode(), message.encode(), hashlib.sha256)
    return base64.b64encode(mac.digest()).decode()
def get_ticker():
    path = "/api/v5/market/ticker?instId=BTC-USDT"
    resp = requests.get(BASE_URL + path)
    return resp.json()["data"][0]["last"]
def place_order(px, sz):
    timestamp = datetime.now(timezone.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
    body = {
        "instId": "BTC-USDT",
        "tdMode": "cash",  # 现货模式
        "side": "buy",
        "ordType": "limit",
        "px": str(px),
        "sz": str(sz)
    }
    body_str = json.dumps(body)
    path = "/api/v5/trade/order"
    header = {
        "OK-ACCESS-KEY": API_KEY,
        "OK-ACCESS-SIGN": sign(SECRET_KEY, timestamp, "POST", path, body_str),
        "OK-ACCESS-TIMESTAMP": timestamp,
        "OK-ACCESS-PASSPHRASE": PASSPHRASE,
        "Content-Type": "application/json"
    }
    resp = requests.post(BASE_URL + path, headers=header, data=body_str)
    return resp.json()
if __name__ == "__main__":
    price = float(get_ticker())
    print(f"当前BTC价格: {price} USDT")
    # 以当前价格下浮0.5%作为限价买单
    buy_price = round(price * 0.995, 2)
    result = place_order(buy_price, 0.001)
    print("下单结果:", json.dumps(result, indent=2))

代码逻辑解析

  • sign函数使用HMAC-SHA256算法对时间戳+请求方式+请求路径+请求体进行签名。
  • 获取行情走公开接口,无需签名。
  • 下单必须携带带签名的请求头,注意tdModecash表示现货逐仓交易。

第五章:常见API错误排查与安全最佳实践

错误代码速查表

  • 50111:请求频率超限,欧易默认限频为20次/2秒(普通APIKey),建议使用requests.Session()复用连接,并在循环中加time.sleep(0.1)
  • 50102:时间戳偏移过大,检查系统时间是否与网络时间同步(UTC)。
  • 50113:签名不匹配,仔细核对Secret Key和Passphrase,特别注意密钥内包含的特殊字符不要被截断。

安全建议

  1. 将API密钥保存在环境变量或.env文件中,切勿硬编码在脚本内
  2. 服务器本地防火墙仅放行你的IP白名单(欧易支持绑定IP限制)。
  3. 定期在欧易交易所官网轮换API密钥。

第六章:高频问答(FAQ)——新手最关心的5个问题

Q1:欧易API接口申请需要收费吗?
完全免费,任何用户完成实名认证后即可创建最多10个APIKey。

Q2:使用Python脚本下单,如何模拟测试?
欧易提供了模拟盘(demo trading)环境,域名与实盘不同,API地址为https://www.okx.com(用demo账号登录后获取独立的APIKey),强烈建议先在模拟盘跑通全部逻辑。

Q3:脚本在下单时提示“资金不足”,但我账户明明有余额?
请检查tdModeccy(币种)参数,现货买入时,需要确保你账户有足够的USDT,且合约和现货的保证金是分开的,下单数量sz需满足最小交易限制(BTC-USDT最小为0.00001)。

Q4:API密钥被泄露怎么办?
立即登录官网删除该密钥,并调整账户资金,同时检查账户历史委托是否有异常单。

Q5:Python脚本如何获取实时K线数据?
调用/api/v5/market/candles接口,传入instId=BTC-USDTbar=1m,可通过pandas轻松转换为DataFrame进行策略回测。


延伸阅读:完成上述基础教程后,你可以进一步研究欧易的WebSocket私有频道推送(适合做高频策略),以及尝试接入ccxt库来快速封装多交易所支持,祝你的量化之路顺利!

标签: Python交易脚本

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