欧易API接口申请教程,用Python编写一个简单的交易脚本,新手也能看懂

admin okx快讯 2

目录导读

  1. 为什么你需要欧易API?
  2. 欧易API接口申请全流程(图文详解)
  3. Python环境准备与依赖库安装
  4. 手把手教你编写第一个交易脚本
  5. 常见问题问答(FAQ)

为什么你需要欧易API?

很多刚接触加密货币交易的朋友,欧易交易所下载之后,会发现自己整天盯着K线图手动买卖,不仅累还容易错过行情,这时候,欧易API就像你的私人交易助手——通过API接口,你可以让程序自动执行买卖策略,省时省力。

欧易API接口申请教程,用Python编写一个简单的交易脚本,新手也能看懂-第1张图片-欧易交易所

举个例子:你设置一个规则——当BTC价格跌破30000美元时自动买入,涨到35000美元时自动卖出,手动操作你可能需要24小时盯着屏幕,但用欧易API写个脚本,电脑就能自动帮你执行,这就是API交易的魅力,也是越来越多人开始学习欧易API接口申请教程的原因。


欧易API接口申请全流程(图文详解)

第一步:登录你的欧易账户

打开okzn.com.cn,输入账号密码登录,如果你还没有账户,你需要先完成注册和实名认证。

第二步:进入API管理页面

登录后,点击右上角头像 → 「API」→「创建API」,这里要注意,欧易有“读取权限”和“交易权限”之分:

  • 读取权限:只能看行情、查余额,不能操作交易
  • 交易权限:可以下单、撤单,涉及资金操作

如果你是新手,建议先只开读取权限测试,熟悉后再升级到交易权限。

第三步:获取API Key和Secret Key

创建成功后,你会得到三个关键信息:

  • API Key:相当于你的账号ID
  • Secret Key:相当于你的密码(务必保存好,关掉页面后不可再次查看)
  • Passphrase:你自己设置的口令(后面代码里要用)

安全提醒:Secret Key和Passphrase不要透露给任何人,不要截图发到社交平台,建议在okzn.com.cn的API设置中,把IP白名单打开,只允许你的服务器IP调用API。

第四步:绑定IP白名单(强烈推荐)

在欧易API设置页面,你可以输入你的服务器IP或者你电脑的公网IP,这样即使有人拿到了你的API Key,也无法从其他IP访问你的账户资金。


Python环境准备与依赖库安装

安装Python

确保你的电脑安装了Python 3.7以上版本,在终端输入python --version查看版本号。

安装必要的库

打开终端(或命令行),逐条输入:

pip install requests
pip install hashlib
pip install hmac
pip install base64
pip install json

这些是编写欧易API脚本最常用的库,requests负责发送网络请求,hashlib和hmac负责签名加密——这是欧易验证你身份的关键步骤。


手把手教你编写第一个交易脚本

下面这个脚本功能很简单:查询你的账户余额,别小看这个功能,它是所有交易操作的基础,跑通了这个脚本,你就可以轻松扩展出买入、卖出、挂单等功能。

完整代码示例

import requests
import json
import base64
import hmac
import hashlib
from datetime import datetime
import time
# ========== 配置你的API信息 ==========
api_key = "你的API Key"
secret_key = "你的Secret Key"
passphrase = "你的Passphrase"
# ========== 通用函数:生成签名 ==========
def generate_sign(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():
    base_url = "https://www.okx.com"
    request_path = "/api/v5/account/balance"
    method = "GET"
    timestamp = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%f')[:-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()
# ========== 运行 ==========
if __name__ == "__main__":
    result = get_account_balance()
    print("账户余额信息:")
    print(json.dumps(result, indent=4, ensure_ascii=False))

代码解析(新手必看)

  1. 引入库:requests负责发请求,hmac和hashlib负责加密签名
  2. 配置API信息:把你在欧易申请的API Key、Secret Key、Passphrase填进去
  3. generate_sign函数:这是最核心的部分,欧易要求每次请求都要带签名,防止请求被篡改,签名生成方法:把时间戳、请求方法、请求路径拼接成一个字符串,再用Secret Key进行HMAC-SHA256加密,最后用Base64编码
  4. get_account_balance函数:构造请求头,调用欧易的/api/v5/account/balance接口,返回结果

运行结果示例

如果一切正常,你会看到类似这样的输出:

{
    "code": "0",
    "data": [
        {
            "totalEq": "1234.56",
            "details": [
                {"ccy": "BTC", "eq": "0.5", "cashBal": "0.5"},
                {"ccy": "USDT", "eq": "5000.0", "cashBal": "5000.0"}
            ]
        }
    ]
}

code: "0"表示请求成功,下面就是你各个币种的余额。

进阶:如何写一个自动买入脚本?

只需要把get_account_balance函数替换成下单接口即可,欧易的下单接口路径是/api/v5/trade/order,请求方式是POST,body里需要传instId(交易对,比如BTC-USDT)、tdMode(模式,现金交易用cash)、side(buy买入/sell卖出)、ordType(market市价单/limit限价单)、sz(数量)。

# 示例:市价买入0.001个BTC
def place_order():
    # ...(签名生成部分和上面一样)
    body = {
        "instId": "BTC-USDT",
        "tdMode": "cash",
        "side": "buy",
        "ordType": "market",
        "sz": "0.001"
    }
    response = requests.post(base_url + request_path, headers=headers, json=body)
    return response.json()

注意:请先在欧易的“模拟盘”测试(欧易官方有测试环境API),确认无误后再切换到实盘。


常见问题问答(FAQ)

Q1:我申请了欧易API,但是代码一直报错“签名错误”,怎么办?

A:签名错误90%是以下三个原因:

  1. Secret Key复制错了(注意大小写,不要有多余空格)
  2. 时间戳格式不对(必须是UTC时间,格式精确到毫秒,末尾加Z)
  3. 请求路径写错了(比如多了一个斜杠或少了一个斜杠)

建议你把签名生成的字符串打印出来,和欧易官方文档的示例对比一下。

Q2:API的“读取权限”和“交易权限”有什么区别?

A:读取权限只能查询行情数据、账户余额、历史订单等信息,不能进行任何买卖操作,交易权限则可以下单、撤单,涉及资金变动,新手建议先申请读取权限,写脚本测试通了再升级。

Q3:我的脚本可以同时运行多个交易对吗?

A:可以,你可以写一个循环遍历多个交易对(比如BTC-USDT、ETH-USDT),对每个交易对执行你的策略,但注意欧易API有频率限制,建议每次请求间隔至少200毫秒。

Q4:如何确保我的API Key安全?

A

  • 永远不要硬编码在代码里(上面示例只是为了教学,实际建议用环境变量或配置文件)
  • okzn.com.cn的设置中开启IP白名单
  • 定期更换API Key
  • 不要截图发给任何人

Q5:用API交易会触发风控吗?

A:正常使用不会,欧易允许API交易,但如果你短时间内高频请求(比如每秒发10个请求),可能会被临时限制,建议你的脚本每次请求之间加入time.sleep(0.2)

Q6:欧易API能获取实时行情数据吗?

A:可以,欧易的行情接口是/api/v5/market/candles,可以获取K线数据;/api/v5/market/ticker可以获取实时价格,这些都是公开数据,即使你只申请了读取权限也能使用。


最后总结欧易API接口申请教程看似复杂,其实核心就是三步:申请API Key → 掌握签名生成方法 → 调用对应接口,用Python写交易脚本,最大的好处是你可以完全按照自己的交易逻辑来操作,不受情绪干扰,建议新手先从“获取余额”或“获取行情”这类只读操作开始,慢慢摸熟后再升级到交易权限。

希望这篇文章能帮你打开自动化交易的大门,如果你在写脚本过程中遇到问题,欢迎在评论区留言交流——我们都是从跑通第一个Hello World开始的。

标签: Python交易脚本

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