You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过OKX API获取完整交易历史与收益数据及相关问题

OKX API 数据聚合问题解决方案

一、完整交易历史获取优化

1. 解决/api/v5/trade/order-history返回空结果的问题

  • 该接口默认仅返回最近7天的订单,需指定after或before参数(毫秒级时间戳)配合limit(最大100)分页拉取历史数据。
  • 需按品类分别请求:SPOT、FUTURES、MARGIN、SWAP等不同品类的订单数据不互通,需单独指定instType参数拉取。
  • 确保签名时查询参数正确包含在签名路径中(当前代码已处理此逻辑,但需注意参数顺序不影响签名有效性)。

2. 高效分页与增量获取策略

  • 首次全量拉取:从最早的已知时间点开始,用before参数向后分页,直到返回空数据,每次记录最后一条订单的ts作为下一页的before值。
  • 每日增量拉取:存储本地最新的订单时间戳,每次请求用after参数获取该时间戳之后的新订单。
  • 存提币历史同样支持after/before分页参数,可复用上述逻辑。

二、收益与奖励数据API端点

  • 质押收益:使用/api/v5/asset/staking/history接口,可获取质押、赎回、收益发放明细,支持stakingType(locked定期/flexible活期)和时间范围筛选。
  • 返佣记录:/api/v5/asset/rebate-history
  • 活动奖励:/api/v5/asset/activity-reward-history
  • DeFi挖矿收益:/api/v5/defi/yield-records

三、机器人交易记录追踪

机器人交易记录与普通用户订单无区别,通过以下接口获取:

  • 订单记录:/api/v5/trade/order-history
  • 成交明细:/api/v5/trade/fills-history
    若机器人使用了自定义订单ID(clOrdId),可通过该参数过滤查询,快速区分机器人操作。

四、自动化增量获取实现

  • 存储基准时间戳:每次拉取后,将结果中最大的ts(时间戳)保存到本地文件/数据库,作为下一次请求的after参数值。
  • 去重机制:用ordId(订单ID)或fillId(成交ID)作为唯一标识,避免重复插入数据。
  • 异常重试:针对限流或错误响应,实现指数退避重试(如首次等待1秒,第二次2秒,以此类推),避免触发账号限制。

五、法币交易API参数说明

/api/v5/asset/fiat/orders接口必填参数:

  • type:交易类型,1(买入)/2(卖出)
  • state:订单状态,0(待支付)/1(已支付)/2(已完成)/3(已取消)
    示例请求参数:?type=1&state=2&limit=100
    注意:该接口仅返回C2C法币交易记录,法币充值/提现需用存提币接口。

六、速率限制与大数据集处理最佳实践

  • 速率限制:OKX API V5单用户限制为普通接口100次/2秒,交易类接口50次/2秒,可通过time.sleep(0.02)控制请求间隔。
  • 大数据集处理:
    • 分品类并行拉取(控制并发数不超过速率限制)。
    • 批量写入本地数据库(如SQLite、PostgreSQL),减少IO操作。
    • 超一年历史数据分时间段批量请求(如按月份拆分),避免单次请求数据量过大。

优化代码片段示例

增量获取订单历史方法

def fetch_order_history_incremental(self, instType="SPOT", after_ts=None):
    path = "/api/v5/trade/order-history"
    method = "GET"
    params = {
        'instType': instType,
        'limit': 100
    }
    if after_ts:
        params['after'] = after_ts
    query = '?' + urlencode(params)
    url = f"{self.base_url}{path}{query}"
    headers = self._get_headers(method, path + query)
    response = requests.get(url, headers=headers)
    return response.json()

内容的提问来源于stack exchange,提问作者Mark Tamaev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:58:11