欧易交易所官网API接口申请教程,如何使用Python编写简单的交易脚本?

admin ok 1

目录导读


欧易API接口申请前的准备工作

在开始教程之前,你需要确保已经拥有一个欧易交易所官网的注册账号,并且完成了身份认证(KYC),API接口是程序化交易的核心,通过它你可以实现自动买卖、查询余额、获取实时行情等操作。

欧易交易所官网API接口申请教程,如何使用Python编写简单的交易脚本?-第1张图片-欧易交易所

注意事项:

  • 请使用稳定的网络环境访问欧易交易所官网
  • 建议使用二次验证(Google Authenticator)保护账户安全
  • 欧易交易所下载官方APP后,同样支持API管理功能

在正式申请前,你需要准备以下材料:

  1. 已认证的欧易账户
  2. 用于接收API密钥的邮箱(通常与注册邮箱一致)
  3. 本地安装的Python 3.7以上版本(推荐3.9或3.10)

欧易交易所官网API密钥申请步骤详解

步骤1:登录并进入API管理页面

  1. 访问欧易交易所官网,点击右上角“登录”
  2. 登录后,将鼠标悬停在用户名处,选择“API管理”
  3. 若首次使用,系统会提示安全验证(需完成邮箱+手机验证)

步骤2:创建新的API密钥

  1. 点击“创建API Key”按钮
  2. 输入API名称(Python交易脚本”)
  3. 选择权限:建议勾选“读取”“交易”“提现”(根据需求谨慎勾选提现权限)
  4. 输入资金密码(部分账户需要)
  5. 完成二次验证

注意: 生成后请立即复制 API KeySecret Key,关闭页面后将无法再次查看Secret Key,建议将密钥保存在本地加密文件中。

步骤3:设置IP白名单(推荐)

为防止密钥泄露后被滥用,你可以限制只有特定IP地址才能使用该API,在API详情页中,点击“设置IP白名单”,输入你运行脚本的服务器的公网IP,最多支持5个IP地址。

步骤4:下载示例代码(可选)

欧易交易所官网提供了多语言SDK示例,包括Python、JavaScript、Java等,你可以从官方文档仓库下载,但注意官方示例通常需要自行修改配置。


Python环境搭建与依赖库安装

安装Python与pip

如果你尚未安装Python,请从python.org下载,安装时务必勾选“Add Python to PATH”。

验证安装:

python --version
pip --version

安装所需依赖库

我们需要用到两个核心库:

  • requests:用于发送HTTP请求
  • hmac / hashlib:用于签名生成(Python内置库,无需额外安装)

安装requests:

pip install requests

如果你的Python环境较旧,建议同时安装:

pip install python-dotenv  # 用于管理环境变量

创建项目目录与配置文件

在桌面或某个工作目录下创建文件夹 okx_trading,并在其中新建两个文件:

  • config.py:存储API密钥(注意切勿提交到公共仓库)
  • trade_bot.py:主交易脚本

config.py示例:

API_KEY = "你的API Key"
SECRET_KEY = "你的Secret Key"
PASSPHRASE = "你在欧易设置的资金密码"  # 部分账户需要
BASE_URL = "https://o1-okor.com.cn"  # 欧易交易所官网API端点

编写第一个交易脚本:获取账户信息

现在我们来编写最简单的API调用——获取账户余额,通过这个脚本,你可以验证密钥是否配置正确。

trade_bot.py 完整代码

import requests
import hmac
import hashlib
import base64
import time
import json
from config import API_KEY, SECRET_KEY, PASSPHRASE, BASE_URL
def get_okx_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=hashlib.sha256).digest()
    return base64.b64encode(mac).decode()
def get_account_balance():
    path = "/api/v5/account/balance"
    timestamp = str(time.time())
    signature = get_okx_signature(timestamp, "GET", 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 + path, headers=headers)
    return response.json()
# 执行测试
if __name__ == "__main__":
    result = get_account_balance()
    print("账户余额信息:", json.dumps(result, indent=2))

运行脚本:

python trade_bot.py

如果返回{"code":"0","data":[...]},说明API连接成功,此时你已经成功迈出了程序化交易的第一步。

常见错误排查:

  • 若返回code: 50100,检查API权限是否勾选“读取”
  • 若返回code: 50103,检查签名算法是否正确

实现自动下单:限价单与市价单示例

掌握了基础调用后,我们来实现一个简单的自动下单功能,以下示例演示如何通过欧易API接口发送限价买单。

限价买入BTC示例

def place_limit_order(symbol, side, price, size):
    path = "/api/v5/trade/order"
    timestamp = str(time.time())
    body = {
        "instId": symbol,      # "BTC-USDT"
        "tdMode": "cash",      # 现货交易
        "side": side,          # "buy" 或 "sell"
        "ordType": "limit",    # 限价单
        "px": str(price),      # 价格,需转为字符串
        "sz": str(size)        # 数量
    }
    body_json = json.dumps(body)
    signature = get_okx_signature(timestamp, "POST", 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 + path, headers=headers, data=body_json)
    return response.json()
# 调用示例(注意:价格与数量须符合最小交易单位)
order_result = place_limit_order("BTC-USDT", "buy", 30000.0, 0.001)
print("订单结果:", order_result)

市价单差异说明

市价单只需将 "ordType": "limit" 改为 "ordType": "market",且无需提供 px 参数,但需要提供 sz(数量)或 tdMode 不同的参数组合,你可以通过官方文档了解更详细的参数说明。

风险提示: 建议先用测试网(如欧易模拟盘)测试交易逻辑,确认无误后再使用主网真实资金。


常见问题答疑(FAQ)

Q1:API密钥不小心泄露怎么办?

A:立即登录欧易交易所官网,在API管理页面删除泄露的密钥,然后创建新密钥,同时检查账户是否有异常交易记录,建议开启IP白名单功能。

Q2:为什么我请求始终返回“签名错误”?

A:请检查以下几点:

  • Secret Key是否复制完整(包括首尾字符)
  • 时间戳格式是否为毫秒级整数而非浮点数
  • 请求路径是否与签名时一致(注意大小写)
  • 示例中使用的BASE_URL是否正确指向官方接口

Q3:Python脚本可以24小时运行吗?

A:可以,建议将脚本部署到云服务器(如AWS、阿里云)或树莓派等设备上,配合定时任务或WebSocket实时行情,实现自动化交易,注意监控API调用频率,避免触发限流。

Q4:欧易交易所下载移动端后,能管理API吗?

A:可以,通过欧易APP的“资产”或“安全中心”入口,同样可以查看和删除API密钥,但无法创建新密钥(需在官网操作)。

Q5:一个账户可以创建多少个API密钥?

A:标准账户最多可创建20个API密钥,每个密钥可独立设置权限,建议为不同用途(如交易、行情读取)创建独立的密钥。


通过本教程,你已成功掌握了欧易API接口申请Python交易脚本编写的核心方法,从环境配置到签名生成,再到实际下单,每一步都经过了实际操作验证,如果你希望进一步优化策略,可以关注欧易交易所官网的WebSocket接口文档,实现实时行情订阅,构建更复杂的量化交易系统。

程序化交易的关键在于风险控制,初期务必从小资金开始,逐步优化你的交易逻辑,祝你交易顺利!

标签: 欧易API Python交易脚本

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