使用 Python 与 OKX API 进行现货交易的全方位指南

·

在本教程中,我们将详细介绍如何利用 python-okx 库在 Jupyter Notebook 环境中进行现货交易。无论您是量化交易新手还是希望自动化策略的开发者,本指南都将帮助您快速上手。

环境准备与工具配置

Jupyter Notebook 简介

Jupyter Notebook 是一款强大的交互式 Python 开发工具,广泛用于数据分析和算法交易。它支持 Windows、Mac OS 和 Linux 系统,允许用户编写和运行代码片段,并实时查看结果。

安装 python-okx 包

在启动 Jupyter Notebook 后,通过以下命令安装或升级 python-okx 包:

pip install python-okx --upgrade

API 密钥的创建与管理

要使用 OKX API,首先需要创建 API 密钥:

  1. 登录 OKX 账户,进入“账户”菜单下的“API”页面。
  2. 如需模拟交易,可前往“资产”中的“模拟交易”板块。
  3. 选择“交易”权限,生成 API 密钥、秘密密钥和口令。
  4. 妥善保管这些信息,并在代码中实例化变量:
api_key = "您的API密钥"
secret_key = "您的秘密密钥"
passphrase = "您的口令"

核心功能模块与数据访问

导入 OKX 模块

python-okx 提供了多个功能模块,包括交易、资金、市场数据等。例如,导入交易模块:

import okx.Trade as Trade

获取市场数据

通过市场数据模块,可以实时获取交易对信息和行情数据:

import okx.MarketData as MarketData

flag = "1"  # 模拟交易模式
marketDataAPI = MarketData.MarketAPI(flag=flag)
result = marketDataAPI.get_tickers(instType="SPOT")
print(result)

账户余额与模式管理

OKX 提供四种账户模式:简单、单币种保证金、多币种保证金和组合保证金。现货交易中,需根据账户模式设置 tdMode 参数:

👉 查看实时账户配置工具

现货交易操作详解

下单策略与参数

下单时支持限价单和市价单,关键参数包括:

限价单示例

以 19,000 USDT 价格购买 0.01 BTC:

order_data = {
    "instId": "BTC-USDT",
    "tdMode": "cash",
    "side": "buy",
    "ordType": "limit",
    "px": "19000",
    "sz": "0.01"
}

市价单示例

购买价值 100 USDT 的 BTC:

order_data = {
    "instId": "BTC-USDT",
    "tdMode": "cash",
    "side": "buy",
    "ordType": "market",
    "sz": "100",
    "tgtCcy": "quote_ccy"
}

订单管理与查询

常见问题

如何选择正确的账户模式?

现货交易通常使用简单或单币种保证金模式,设置 tdModecash。多币种交易则需设置为 cross。账户模式决定了保证金计算方式和风险控制规则。

API 密钥权限如何配置?

创建密钥时务必勾选“交易”权限,否则无法执行下单操作。建议根据实际需求最小化权限分配,保障资产安全。

市价单的规模参数如何设置?

使用 tgtCcy 参数指定规模单位:设为 base_ccy 时按基础货币数量计算,设为 quote_ccy 则按报价货币价值计算。例如,购买100 USDT的BTC需设置 tgtCcy="quote_ccy"

为什么需要客户端订单ID?

自定义 clOrdId 可简化订单管理流程,便于后续查询、修改或取消操作。建议采用有意义的标识符体系,如结合时间戳和策略编号。

如何获取历史订单数据?

通过订单历史接口可查询最近7天或3个月内的记录。需注意历史数据仅保留一定期限,重要数据请及时本地保存。

进阶应用与资源

掌握基础操作后,可进一步探索:

👉 获取进阶API使用策略

通过本指南,您已了解使用 OKX API 进行现货交易的核心流程。建议从模拟交易开始熟悉操作,再逐步过渡到实盘环境。不断实践和优化,将能充分发挥程序化交易的优势。