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

admin 欧易中心 2

目录导读

  1. 欧易API接口简介
  2. API接口申请步骤详解
  3. Python环境与依赖库准备
  4. 编写简单交易脚本的完整流程
  5. 常见问题与问答(FAQ)

欧易API接口简介

欧易(OKX)作为全球领先的数字资产交易平台,提供了功能强大的API接口,允许开发者通过程序化方式实现自动化交易、市场数据获取、账户管理等操作,对于量化交易爱好者而言,掌握欧易API的使用是迈入自动化交易的重要一步。

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

在开始之前,您需要访问 欧易交易所官网oe-okor.com.cn)完成账户注册与API申请,该平台不仅支持现货交易,还提供合约、期权等多品类接口,适合不同层次的交易策略。欧易交易所下载 官方客户端同样支持通过API进行无缝对接,为脚本运行提供稳定的数据源。


API接口申请步骤详解

步骤1:登录账户并进入API管理
欧易交易所官网完成登录后,点击右上角头像,选择“API管理”选项。

步骤2:创建API密钥

  • 点击“创建API”按钮,选择“交易API”类型。
  • 系统会要求进行安全验证(短信或谷歌验证器)。
  • 设置权限:建议勾选“交易”和“读取”权限(如无需提币,请勿勾选“提币”权限以避免安全风险)。

步骤3:保存密钥与安全注意事项

  • 创建成功后,您将获得 API KeySecret KeyPassphrase(密码短语)。
  • 请立即保存这些信息,因为Secret Key仅展示一次,丢失后需重新创建。
  • 建议将密钥存储于环境变量或加密配置文件中,切勿直接硬编码到脚本内。

欧易交易所下载 的API文档中提供了完整的接口列表与请求示例,可作为开发参考。


Python环境与依赖库准备

依赖库安装
使用Python3编写脚本,需安装以下库:

pip install requests hashlib base64 hmac

requests 用于发送HTTP请求,hashlibhmac 用于生成签名。

设置请求头(Header)
欧易API要求每次请求必须包含以下签名信息:
OK-ACCESS-KEY:您的API Key
OK-ACCESS-SIGN:使用HMAC-SHA256加密的签名
OK-ACCESS-TIMESTAMP:UTC时间戳
OK-ACCESS-PASSPHRASE:您在创建API时设置的密码短语


编写简单交易脚本的完整流程

以下是一个基于Python的示例脚本,用于获取账户余额并执行一笔市价买入交易。

导入库与定义全局变量

import requests
import json
import hmac
import base64
import datetime
from hashlib import sha256
# 请替换为您在——[oe-okor.com.cn](https://oe-okor.com.cn/)——申请的密钥
API_KEY = "您的API Key"
SECRET_KEY = "您的Secret Key"
PASSPHRASE = "您的密码短语"
BASE_URL = "https://www.okx.com"

生成签名函数

def generate_sign(timestamp, method, request_path, body):
    message = str(timestamp) + str.upper(method) + request_path + (body if body else "")
    mac = hmac.new(SECRET_KEY.encode('utf-8'), message.encode('utf-8'), digestmod=sha256)
    return base64.b64encode(mac.digest()).decode('utf-8')

获取账户余额(GET请求)

def get_account():
    method = "GET"
    request_path = "/api/v5/account/balance"
    timestamp = datetime.datetime.utcnow().isoformat()[:-3] + "Z"
    sign = generate_sign(timestamp, method, request_path, "")
    headers = {
        "OK-ACCESS-KEY": API_KEY,
        "OK-ACCESS-SIGN": sign,
        "OK-ACCESS-TIMESTAMP": timestamp,
        "OK-ACCESS-PASSPHRASE": PASSPHRASE,
        "Content-Type": "application/json"
    }
    response = requests.get(BASE_URL + request_path, headers=headers)
    return response.json()
# 调用函数
print(get_account())

执行市价买入(POST请求)

def place_market_order(symbol, side, sz):
    method = "POST"
    request_path = "/api/v5/trade/order"
    body = json.dumps({
        "instId": symbol,      # "BTC-USDT"
        "tdMode": "cash",      # 保证金模式(现货为cash)
        "side": side,          # "buy" 或 "sell"
        "ordType": "market",   # 市价单
        "sz": str(sz)          # 数量(市价买单时,此处为买入金额单位:USDT)
    })
    timestamp = datetime.datetime.utcnow().isoformat()[:-3] + "Z"
    sign = generate_sign(timestamp, method, request_path, body)
    headers = {
        "OK-ACCESS-KEY": API_KEY,
        "OK-ACCESS-SIGN": sign,
        "OK-ACCESS-TIMESTAMP": timestamp,
        "OK-ACCESS-PASSPHRASE": PASSPHRASE,
        "Content-Type": "application/json"
    }
    response = requests.post(BASE_URL + request_path, headers=headers, data=body)
    return response.json()
# 示例:以市价买入0.001 BTC(金额单位按报价币种)
print(place_market_order("BTC-USDT", "buy", "0.001"))

运行与调试

将脚本保存为 okx_trading.py,通过终端执行:

python okx_trading.py

若一切正常,将返回包含交易详情的JSON数据,建议先在模拟盘(如欧易的测试网)上运行,确保逻辑无误后再切换至实盘。


常见问题与问答(FAQ)

Q1:申请API时提示“安全验证失败”怎么办?
A:请检查绑定的手机或谷歌验证器是否正常工作,若多次失败,可在欧易交易所官网重新绑定安全设备后再次尝试。欧易交易所下载 的最新版APP也支持安全验证设置。

Q2:脚本运行返回“签名错误”是什么原因?
A:常见原因包括:

  • Secret Key或Passphrase复制错误(注意大小写)。
  • 时间戳未使用UTC格式或未精确到毫秒。
  • 请求路径与参数未按文档要求编码,请对照欧易API文档核对签名生成逻辑。

Q3:如何在交易脚本中加入止盈止损功能?
A:可在市价单成交后,通过 POST /api/v5/trade/order-algo 接口设置止盈止损条件单,需传入触发价格、委托价格等参数,具体示例可参考欧易交易所下载 的官方开发者文档。

Q4:Python脚本中的API密钥如何安全存储?
A:建议使用环境变量,

import os
API_KEY = os.getenv("OKX_API_KEY")
SECRET_KEY = os.getenv("OKX_SECRET_KEY")

并通过 .env 文件管理,这样即使代码公开,密钥也不会泄露。


通过以上教程,您已成功掌握欧易API接口的申请流程,并能够使用Python编写基础交易脚本,下一步可以尝试加入数据订阅(WebSocket)、策略回测或多币种自动网格交易,进一步提升自动化交易能力,切记,实盘交易需谨慎,建议从小额资金开始验证策略稳定性。

标签: 欧易API Python交易脚本

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