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

admin 欧易中心 2

目录导读

  1. 欧易API接口概述
  2. API接口申请完整步骤
  3. Python环境配置与依赖安装
  4. 编写第一个交易脚本:获取账户信息
  5. 实现自动下单与订单管理
  6. 常见问题与解答(FAQ)

欧易API接口概述

欧易交易所(OKX)作为全球领先的数字资产交易平台,其官方API接口为开发者提供了强大的自动化交易能力,通过欧易交易所下载并注册账户后,用户可申请API密钥,实现市场数据获取、交易执行、资金管理等核心功能,本文将以Python为例,手把手教你完成从API申请到脚本编写的全过程,助你快速入门量化交易。

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

欧易API采用RESTful架构,支持HTTP/HTTPS协议,返回JSON格式数据,其接口覆盖现货、合约、永续等多种交易品种,同时提供WebSocket实时数据推送,在开始编码前,你需要先完成API密钥的申请。


API接口申请完整步骤

1 登录欧易官网并进入API管理

访问欧易交易所官网,登录你的账户,在顶部导航栏找到“更多”菜单,选择“API”选项,若未注册,请先完成欧易交易所下载并注册。

2 创建API密钥

  1. 点击“创建API密钥”按钮。
  2. 为密钥命名(如“Python交易脚本”)。
  3. 设置权限:建议仅勾选“读取”和“交易”权限,确保资金安全。
  4. 完成安全验证(短信/邮箱/谷歌验证器)。
  5. 系统将生成Access Key和Secret Key。请立即保存Secret Key,它只显示一次。

3 安全注意事项

  • 切勿将Secret Key明文存储在代码中或上传至公开仓库。
  • 建议使用环境变量或加密配置文件管理密钥。
  • 为API设置IP白名单,限制访问来源。

Python环境配置与依赖安装

1 环境要求

  • Python 3.7及以上版本
  • 依赖库:requestshmachashlibjsontime

2 安装依赖

pip install requests

Python内置的hmachashlib等库无需额外安装。

3 创建配置文件(推荐)

新建config.py文件,存储API密钥(请勿提交至Git):

API_KEY = "你的Access Key"
SECRET_KEY = "你的Secret Key"
PASSPHRASE = "你的API密码"  # 创建API时设置的密码
BASE_URL = "https://www.okx.com"  # 欧易官方API地址

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

1 签名生成原理

欧易API要求每次请求均携带签名,签名算法为:

  • 时间戳 + HTTP方法 + 请求路径 + 请求体 → 使用HMAC-SHA256加密 → Base64编码

2 完整代码示例

创建okx_trading.py文件:

import requests
import json
import hmac
import hashlib
import base64
import time
from config import API_KEY, SECRET_KEY, PASSPHRASE, BASE_URL
def get_signature(timestamp, method, request_path, body):
    message = timestamp + method + request_path + (body or "")
    mac = hmac.new(SECRET_KEY.encode('utf-8'), message.encode('utf-8'), hashlib.sha256)
    return base64.b64encode(mac.digest()).decode('utf-8')
def get_account_info():
    method = "GET"
    request_path = "/api/v5/account/balance"
    timestamp = str(int(time.time()))
    signature = get_signature(timestamp, method, request_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 + request_path, headers=headers)
    return response.json()
if __name__ == "__main__":
    result = get_account_info()
    print(json.dumps(result, indent=2))

3 运行测试

执行脚本后,你将看到账户余额、可用资产等信息,若返回错误代码,请检查API权限或签名生成逻辑。


实现自动下单与订单管理

1 下单函数

def place_order(inst_id, side, ord_type, sz, px=None):
    method = "POST"
    request_path = "/api/v5/trade/order"
    timestamp = str(int(time.time()))
    body = {
        "instId": inst_id,
        "tdMode": "cash",  # 现货交易
        "side": side,      # buy/sell
        "ordType": ord_type,  # market/limit
        "sz": str(sz)
    }
    if ord_type == "limit":
        body["px"] = str(px)
    body_str = json.dumps(body)
    signature = get_signature(timestamp, method, request_path, body_str)
    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 + request_path, headers=headers, data=body_str)
    return response.json()
# 示例:以市价买入0.01个BTC
result = place_order("BTC-USDT", "buy", "market", 0.01)
print(result)

2 订单状态查询

def get_order_info(inst_id, ord_id):
    method = "GET"
    request_path = f"/api/v5/trade/order?instId={inst_id}&ordId={ord_id}"
    timestamp = str(int(time.time()))
    signature = get_signature(timestamp, method, request_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 + request_path, headers=headers)
    return response.json()

3 完整交易策略示例

结合市场数据,实现一个简单的网格交易逻辑需要实时获取价格并循环执行,注意:实盘交易前务必在模拟盘充分测试,同时提醒,所有交易请通过欧易交易所官网完成,避免使用非官方接口。


常见问题与解答(FAQ)

Q1:申请API时提示安全验证失败怎么办?
A:请确保手机/邮箱验证码填写正确,谷歌验证器时间同步,若仍失败,尝试清除浏览器缓存或更换设备。

Q2:脚本运行时报错“Invalid API Key”如何解决?
A:检查API Key是否已复制完整,且Secret Key与配置文件一致,注意:创建API时设置的“密码”是Passphrase,非登录密码。

Q3:如何限制API的IP访问?
A:在欧易官网API管理页面,为每个密钥单独设置IP白名单,仅允许你的服务器或本地IP地址访问。

Q4:Python脚本能否实现高频交易?
A:欧易API对请求频率有限制(如每2秒200次),若需高频交易,建议使用WebSocket接口或提升账户VIP等级。

Q5:API交易有手续费优惠吗?
A:通过API交易同样享受平台VIP费率,若持有OKB或达到一定交易量,可申请更低手续费。


通过本文教程,你已掌握欧易API接口的申请方法及Python交易脚本编写基础,从获取账户信息到自动下单,每一步均经过详细拆解,如需探索更多高级功能(如止损止盈、多品种套利),请持续关注欧易交易所下载官方文档,量化交易需谨慎,建议先用少量资金测试策略,逐步完善后再投入更大规模。

标签: Python交易脚本

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