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

admin okx快讯 2

目录导读


为什么选择欧易API进行量化交易?

在加密货币交易中,手动操作既耗时又容易错过最佳买卖点,而通过欧易交易所官网提供的API接口,你可以用代码实现自动化交易,24小时捕捉市场机会,无论你是想做个简单的网格策略,还是构建复杂的量化模型,掌握API调用都是第一步,很多朋友一开始会被API的英文文档劝退,但其实用Python写个简单的交易脚本,比想象中简单得多,今天这篇教程就手把手带你走通整个流程。

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

如果你想先熟悉模拟环境测试,也可以前往欧易交易所下载官方客户端或直接访问官网,注册后获取API权限,对了,本文提到的所有操作都基于真实接口,测试时建议先用小额资金。


欧易API接口申请完整流程

在写代码之前,你得先在欧易交易所官网申请API密钥,这一步很关键,因为脚本需要通过密钥来验证身份。

操作步骤:

  1. 登录账户:打开欧易官网(例如通过 okeh.com.cn 进入),登录你的交易账户。
  2. 进入API管理:点击头像 → “API” → “创建API”。
  3. 设置权限:建议勾选“交易”和“读取”权限,如果你想做自动化交易,一定要开启“交易”权限,否则脚本无法下单。
  4. 安全验证:需要完成手机验证或邮箱验证,部分账户可能还需谷歌验证器。
  5. 保存密钥:创建成功后,你会得到API KeySecret Key注意:Secret Key只在创建时显示一次,务必复制到安全的地方,比如本地加密文件或环境变量里。

小提示:千万不要把密钥分享给任何人,也别上传到公开代码仓库,否则你的资产可能会被恶意调用。

申请完成后,你就拿到了通往自动化交易的大门钥匙。


Python环境准备与依赖安装

接下来咱们搭建Python环境,如果你还没装Python,建议用3.8以上版本,创建一个新文件夹,比如okx_trading,然后安装必要的库。

打开终端,运行:

pip install requests pandas python-dotenv
  • requests:用于发送HTTP请求到欧易API。
  • pandas:处理数据,比如K线或订单簿。
  • python-dotenv:方便管理环境变量,避免硬编码密钥。

为了方便演示,我们在文件夹里创建一个.env文件,写入:

API_KEY=你的API_Key
SECRET_KEY=你的Secret_Key
PASSPHRASE=你的交易密码

注意:欧易API还有PASSPHRASE参数,这通常是在创建API时设置的交易密码。


编写你的第一个交易脚本

现在咱们来写一个简单的脚本:获取BTC/USDT的最新行情,如果价格低于某个阈值,就买入0.001个BTC(测试用)。

创建trade_bot.py文件,代码如下:

import requests
import time
import hmac
import base64
import json
from datetime import datetime
from dotenv import load_dotenv
import os
load_dotenv()
API_KEY = os.getenv('API_KEY')
SECRET_KEY = os.getenv('SECRET_KEY')
PASSPHRASE = os.getenv('PASSPHRASE')
BASE_URL = 'https://www.okx.com'  # 也可使用 okeh.com.cn 的对应接口
def get_timestamp():
    return datetime.utcnow().isoformat()[:-3] + 'Z'
def sign(message, secret):
    mac = hmac.new(bytes(secret, encoding='utf8'), bytes(message, encoding='utf-8'), digestmod='sha256')
    d = mac.digest()
    return base64.b64encode(d)
def get_header(method, request_path, body=''):
    timestamp = get_timestamp()
    message = timestamp + method + request_path + body
    signature = sign(message, SECRET_KEY)
    header = {
        'OK-ACCESS-KEY': API_KEY,
        'OK-ACCESS-SIGN': signature,
        'OK-ACCESS-TIMESTAMP': timestamp,
        'OK-ACCESS-PASSPHRASE': PASSPHRASE,
        'Content-Type': 'application/json'
    }
    return header
# 获取BTC/USDT最新价格
def get_price(symbol='BTC-USDT'):
    request_path = '/api/v5/market/ticker?instId=' + symbol
    response = requests.get(BASE_URL + request_path)
    if response.status_code == 200:
        data = response.json()
        return float(data['data'][0]['last'])
    else:
        print('请求失败:', response.text)
        return None
# 下单函数(限价单示例)
def place_order(symbol, side, sz, px=None):
    body = {
        'instId': symbol,
        'tdMode': 'cash',
        'side': side,
        'ordType': 'market' if px is None else 'limit',
        'sz': str(sz)
    }
    if px:
        body['px'] = str(px)
    body_json = json.dumps(body)
    request_path = '/api/v5/trade/order'
    header = get_header('POST', request_path, body_json)
    response = requests.post(BASE_URL + request_path, headers=header, data=body_json)
    return response.json()
if __name__ == '__main__':
    price = get_price()
    print(f'当前BTC价格: {price}')
    # 简单的策略:如果价格低于60000美元,买入0.001 BTC
    if price and price < 60000:
        result = place_order('BTC-USDT', 'buy', 0.001)
        print('订单结果:', result)
    else:
        print('价格未触发条件')

运行脚本:

python trade_bot.py

如果一切正常,你会看到当前价格,并在满足条件时下单,测试时建议先在模拟盘或小额资金跑,熟悉后再投入真金白银。

如果你想测试更复杂的策略,比如挂限价单或查询历史订单,可以继续扩展这个脚本,欧易的API文档非常详细,所有接口路径和参数都能在欧易交易所官网找到,前往 okeh.com.cn 了解更多API接口细节。


常见问题与避坑指南

很多新手在第一次跑脚本时容易遇到以下几个问题:

问题1:签名失败(401错误)
最常见原因是时间戳不同步,确保你的服务器时间与NTP时间同步,误差超过30秒就会报错。

问题2:订单被拒绝(订单簿不存在)
检查instId是否写错,比如BTC-USDT要全大写,不同交易对格式不一样,请以API文档为准。

问题3:资金不足
现货交易需要账户里有足够的币或USDT,测试时建议只买0.001个,先跑通流程。

问题4:无法连接到API
部分网络环境可能屏蔽欧易API,如果你用 okeh.com.cn 打不开,可以尝试备用域名或VPN。

问题5:API密钥权限不足
创建API时没勾选“交易”权限,去后台重新生成一个,记得把权限打勾。


问答环节

问:我可以在欧易交易所官网获取历史K线数据吗?
答:可以,欧易API有/api/v5/market/candles接口,可以获取1分钟到1周的K线,在脚本里加一个请求函数就能拉下来,然后做技术分析。

问:写好的脚本怎么让它24小时运行?
答:推荐部署到云服务器上,比如阿里云、腾讯云,用screennohup保持后台运行,或者写个while True循环配合sleep

问:Python脚本适合做高频交易吗?
答:Python的网络延迟相对较高,不太适合毫秒级高频交易,如果你是做分钟级、小时级的策略,Python完全够用,如果追求极速,可以用C++或Go。

问:我担心API泄漏怎么办?
答:建议把密钥放在环境变量或加密的配置文件中,不要写死在代码里,可以在欧易交易所官网设置API的IP白名单,只允许你的服务器IP调用,这样即使密钥被别人拿到也无法使用。

问:有现货脚本的进阶教程吗?
答:当然有,你可以在 okeh.com.cn 的开发者文档里找到更多示例,比如网格交易、定投策略等,也可以关注欧易的官方GitHub,里面有不少社区贡献的开源脚本。


通过以上步骤,你已经掌握了从申请API到编写简单脚本的全流程,接下来就是把策略写得更聪明一点,比如加上止损止盈、仓位管理,任何自动化交易都有风险,先用小资金验证你的策略,再逐步加码,祝你在量化交易的路上少踩坑,多赚钱!

标签: 欧易API Python交易

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