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

admin ok快讯 1

目录导读

  1. 欧易API接口申请准备
  2. Python环境搭建与库安装
  3. 获取API密钥与签名生成
  4. 编写基础交易脚本(挂单/撤单)
  5. 常见问题与错误排查
  6. 安全建议与合规注意事项

欧易API接口申请准备

在开始编写交易脚本前,首先需要完成欧易交易所的API权限申请,登录欧易交易所官网后,进入“账户安全中心”或“API管理”页面,点击“创建API Key”,系统会要求进行身份验证(如手机短信、邮箱验证或谷歌身份验证器)。

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

申请步骤

  1. 填写API名称(如“Python交易脚本”)。
  2. 选择权限范围:通常建议勾选“交易权限”和“资金权限”(若需查询余额)。
  3. 生成后,务必保存API Key和Secret Key,Secret Key仅显示一次,丢失需重新生成。

注意:使用API时需绑定服务器IP白名单,避免密钥泄露导致资产风险,若仅用于学习,可暂不设IP限制,但测试环境应使用模拟账户。


Python环境搭建与库安装

1 环境要求

  • Python 3.7+(推荐3.9或更高版本)
  • 操作系统:Windows / macOS / Linux均可

2 安装必要依赖库

打开终端执行以下命令:

pip install requests hashlib time hmac json
  • requests:发送HTTP请求
  • hashlibhmac:生成签名
  • timejson:时间戳与数据解析

若需更高级功能(如WebSocket实时行情),可安装websocket-client

pip install websocket-client

获取API密钥与签名生成

欧易API使用HMAC-SHA256签名算法验证请求合法性,以下为Python签名生成示例:

import hmac
import hashlib
import base64
import json
import time
def generate_sign(secret_key, method, request_path, body=''):
    timestamp = str(time.time()).split('.')[0] + '.' + str(time.time()).split('.')[1][:3]
    sign_str = timestamp + method.upper() + request_path + (json.dumps(body) if body else '')
    signature = hmac.new(secret_key.encode('utf-8'), sign_str.encode('utf-8'), hashlib.sha256).hexdigest()
    return timestamp, signature

参数说明

  • secret_key:步骤一保存的Secret Key
  • method:HTTP方法(GET/POST)
  • request_path:如/api/v5/trade/order
  • body:POST请求的JSON数据

编写基础交易脚本(挂单/撤单)

1 查询账户余额(GET请求)

import requests
def get_balance(api_key, secret_key, passphrase='你的passphrase'):
    base_url = 'https://www.okx.com'
    request_path = '/api/v5/account/balance'
    method = 'GET'
    timestamp, sign = generate_sign(secret_key, method, request_path)
    headers = {
        'OK-ACCESS-KEY': api_key,
        'OK-ACCESS-SIGN': sign,
        'OK-ACCESS-TIMESTAMP': timestamp,
        'OK-ACCESS-PASSPHRASE': passphrase
    }
    response = requests.get(base_url + request_path, headers=headers)
    return response.json()

注意:欧易API目前使用OK-ACCESS-PASSPHRASE字段,申请API时需单独设置(非登录密码)。

2 创建市价买单(POST请求)

def place_market_buy(api_key, secret_key, passphrase, inst_id='BTC-USDT', sz='0.001'):
    base_url = 'https://www.okx.com'
    request_path = '/api/v5/trade/order'
    method = 'POST'
    body = {
        'instId': inst_id,
        'tdMode': 'cash',  # 现货交易
        'side': 'buy',
        'ordType': 'market',
        'sz': sz
    }
    timestamp, sign = generate_sign(secret_key, method, request_path, body)
    headers = {
        'OK-ACCESS-KEY': api_key,
        'Content-Type': 'application/json',
        'OK-ACCESS-SIGN': sign,
        'OK-ACCESS-TIMESTAMP': timestamp,
        'OK-ACCESS-PASSPHRASE': passphrase
    }
    response = requests.post(base_url + request_path, json=body, headers=headers)
    return response.json()

若需交易其他币种,可至欧易交易所下载查看最新交易对列表。

3 撤单操作

def cancel_order(api_key, secret_key, passphrase, inst_id='BTC-USDT', ord_id='你的订单ID'):
    base_url = 'https://www.okx.com'
    request_path = '/api/v5/trade/cancel-order'
    method = 'POST'
    body = {'instId': inst_id, 'ordId': ord_id}
    timestamp, sign = generate_sign(secret_key, method, request_path, body)
    # ...(headers同上)
    response = requests.post(base_url + request_path, json=body, headers=headers)
    return response.json()

常见问题与错误排查

Q1:签名总报错怎么办?

A:检查三点:

  1. Secret Key是否完整复制(无空格或换行符)。
  2. 时间戳格式是否为Unix时间戳(精确到毫秒,如123)。
  3. 请求路径是否与官方文档完全一致(区分大小写)。

Q2:提示“API key无权限”?

A:在欧易交易所官网的API管理页面,检查是否已勾选“交易”和“资金”权限,若已勾选仍报错,需删除旧API并重新生成。

Q3:如何测试脚本是否正常运行?

A:使用https://www.okx.com/api/v5/public/time获取服务器时间,验证网络连通性,若返回{"code":"0","data":[{"ts":"1700000000.123"}]},则环境配置正确。


安全建议与合规注意事项

  1. 密钥保护

    • 不要将Secret Key硬编码在脚本中,建议使用环境变量或配置文件(如.env文件)。
    • 生产环境必须启用IP白名单,避免密钥泄露。
  2. 使用模拟盘

    • 初学者可先申请欧易交易所下载的模拟账户,使用base_url = 'https://www.okx.com'进行测试(模拟盘需单独配置)。
    • 真实交易前,务必在测试环境验证所有逻辑。
  3. 风险控制

    • 建议编写“止损检查”函数,避免行情剧烈波动导致损失。
    • 控制下单频率,避免触发API限流(每秒最多5次请求)。
  4. 法律合规

    • 自动化交易需遵守目标国家/地区法规,如中国境内禁止使用API进行虚拟货币交易。
    • 保持交易记录完整,便于税务申报或审计。

通过本教程,您已掌握欧易API接入与Python基础脚本编写,如需进阶学习“止盈止损策略”或“网格交易算法”,可参考官方技术文档或社区开源项目。任何交易策略都存在风险,请务必以保护资金安全为首要目标。

标签: 欧易API Python交易脚本

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