欧易API接口申请教程,Python交易脚本从零到实战

admin okx快讯 1

目录导读

  1. 为什么需要欧易API?交易员的“第二双手”
  2. 手把手教你申请欧易API密钥(附避坑指南)
  3. Python环境搭建与必备库安装
  4. 编写第一个交易脚本:行情获取+自动下单
  5. 常见问题与代码调试技巧
  6. 问答环节:新手最常踩的五个坑

为什么需要欧易API?交易员的“第二双手”

在加密货币市场,手动盯盘下单就像用手挡瀑布——既累又慢,欧易API接口允许你用代码直接连接交易所服务器,实现自动监控价格、执行买卖、管理订单,无论你是做量化套利,还是想设置止损机器人,Python脚本+欧易API都是最佳入门组合。

欧易API接口申请教程,Python交易脚本从零到实战-第1张图片-欧易交易所

API就是交易所给你的“遥控器”,而Python脚本则是帮你按遥控器的“机械臂”。


手把手申请欧易API密钥

登录账号
打开欧易交易所官网,登录你的账户,如果没有账号,建议先完成KYC认证(否则API权限受限)。

进入API管理页面
点击右上角头像 → “API” → “创建API Key”,注意:不同版本页面可能叫“API管理”或“开发者中心”。

填写信息

  • 备注名:随便写,我的交易机器人”
  • 权限选择:新手建议勾选“读取”+“交易”(不要勾“提现”,安全第一)
  • 安全验证:需要邮箱+谷歌验证器双重确认

保存密钥
创建成功后,你会看到两个关键字符串:

  • API Key(类似用户名)
  • Secret Key(交易密码,只显示一次!)

⚠️ 重要提醒:立刻把Secret Key复制到本地TXT文件,关闭页面后永不显示,建议同时开启IP白名单(只允许你自己的服务器IP调用)。

想要手机端操作?欧易交易所下载后,在APP的“个人中心-API”同样可以创建密钥。


Python环境搭建与必备库安装

打开终端或CMD,依次执行:

pip install requests pandas

如果你要处理实时数据,建议加装:

pip install websocket-client

推荐IDE:VSCode或PyCharm(社区版免费),新手直接下载Python 3.9+版本,别碰3.12以下(可能部分库不兼容)。


编写第一个交易脚本:行情获取+自动下单

以下是一个完整脚本,实现BTC/USDT市价买入0.001个:

import requests
import json
import time
import hashlib
import base64
import hmac
# 从文件读取密钥
with open('api_key.txt', 'r') as f:
    api_key = f.readline().strip()
    secret_key = f.readline().strip()
base_url = "https://www.okx.com"
def get_timestamp():
    return str(int(time.time()))
def sign(message, secret_key):
    mac = hmac.new(bytes(secret_key, encoding='utf8'), bytes(message, encoding='utf-8'), digestmod='sha256')
    d = mac.digest()
    return base64.b64encode(d)
def place_order(side, sz, tdMode='cash'):
    """下单函数 side: 'buy' or 'sell', sz: 数量"""
    path = '/api/v5/trade/order'
    body = {
        "instId": "BTC-USDT",
        "tdMode": tdMode,
        "side": side,
        "ordType": "market",
        "sz": str(sz)
    }
    timestamp = get_timestamp()
    message = timestamp + 'POST' + path + json.dumps(body)
    signature = sign(message, secret_key)
    headers = {
        "OK-ACCESS-KEY": api_key,
        "OK-ACCESS-SIGN": signature,
        "OK-ACCESS-TIMESTAMP": timestamp,
        "OK-ACCESS-PASSPHRASE": "你的交易密码",
        "Content-Type": "application/json"
    }
    response = requests.post(base_url + path, headers=headers, json=body)
    return response.json()
# 获取当前BTC价格(用于判断)
def get_ticker():
    path = '/api/v5/market/ticker?instId=BTC-USDT'
    response = requests.get(base_url + path)
    return response.json()['data'][0]['last']
# 执行:当价格低于60000时买入
current_price = float(get_ticker())
print(f"当前BTC价格: {current_price}")
if current_price < 60000:
    result = place_order('buy', 0.001)
    print("买入结果:", result)
else:
    print("价格过高,等待时机...")

关键点解释

  • sign()函数用于生成加密签名,欧易要求每次请求都必须带签名
  • 市价单ordType: "market"适合新手,但注意滑点风险
  • tdMode: 'cash'表示现货交易,合约交易需要改成'isolated'

常见问题与代码调试技巧

错误码 含义 解决方法
400 参数错误 检查请求体字段是否拼错
401 签名失败 重新核对Secret Key和Passphrase
50013 余额不足 检查账户资产,或者缩小下单数量

调试技巧
requests.post前加print(body, headers),对比欧易API文档的示例请求格式。


问答环节:新手最常踩的五个坑

Q1:为什么我的签名总是报错?
A:99%的情况是Passphrase拼写错误,Passphrase是创建API时自己设的密码,不是Secret Key!

Q2:脚本能24小时运行吗?
A:建议部署在云服务器(比如阿里云轻量应用服务器),每月几十块成本,本地电脑关机就废了。

Q3:如何避免被交易所风控?
A:请求频率别超过每秒5次,建议加time.sleep(0.2),另外不要用脚本刷单,欧易对异常交易监控很严。

Q4:脚本下单后没反应怎么办?
A:检查是否开启“交易权限”,部分用户默认只开“读取”,登录欧易交易所官网重新编辑API权限。

Q5:如何实现止损自动化?
A:可以写个循环监控价格,当跌幅超过3%时自动卖出,但更建议用WebSocket实时推送,避免轮询延迟。


延伸阅读:如果你需要更复杂的策略(如网格交易、套利监控),可以学习ccxt库,它封装了欧易等50多家交易所的API,只需几行代码就能切换平台。

最后提醒:实盘测试先用最小单位(0.0001 BTC),等逻辑验证无误再加大投入,市场有风险,代码需谨慎。

标签: 欧易API Python交易脚本

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