🚀 AI 一键生成 ptrade 策略代码
立即体验
👉 AI 生成代码 👈

ptrade 平台 get_fundamentals 财务数据接口的流量限制详解

ptrade | 发布时间: 2026/6/1
以下内容由 EasyQuant 生成。

问题描述

get_fundamentals函数有哪些流量限制?

解决方案

在 ptrade 量化交易平台中,get_fundamentals 函数用于获取财务三大报表数据、日频估值数据及各项财务能力指标数据。由于该接口为 HTTP 在线获取,为了保证系统的稳定运行,平台对其设置了严格的流量限制。

get_fundamentals 流量限制规则

根据 ptrade API 文档,get_fundamentals 函数的流量限制主要包括以下几点:

  1. 调用频率限制:每秒不得调用超过 100次
  2. 单次调用量限制:单次最大调用量是 500条数据
  3. 数据条数定义:每一条数据的定义为“一个股票对应一个表的一个字段”,相当于单次请求最大不超过 5万条 基础数据单元。

此外,由于网络拥堵等原因,接口可能会出现应答失败的情况。如果返回数据结果为空,建议在策略中增加保护机制并多次尝试。

应对限流的策略与代码示例

如果您的策略涉及多只股票、多字段或长时间跨度的查询,极易触发上述流控限制。为了避免因限流导致的数据获取失败,建议在实际调用场景中加入 time.sleep() 做时间间隔。

示例代码

以下是一个在盘前准备阶段(before_trading_start)分批获取财务数据并使用 sleep 规避限流的示例:

import time

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)

def before_trading_start(context, data):
    # 假设取4000股*10年一季报数据为4万条,之后再取中报又是4万条
    # 因为规则要求每秒不得调用超过100次(单次最大调用量是500条数据)
    # 调用过程就需要 sleep 1秒,防止流控触发
    
    # 获取一季报数据
    funda_data_q1 = get_fundamentals(g.security, 'balance_statement', fields='total_assets', start_year='2011', end_year='2020', report_types='1')
    
    # 暂停1秒,规避流量限制
    time.sleep(1)
    
    # 获取中报数据
    funda_data_q2 = get_fundamentals(g.security, 'balance_statement', fields='total_assets', start_year='2010', end_year='2020', report_types='2')

def handle_data(context, data):
    pass

通过合理规划数据获取的批次和频率,可以有效提升策略在 ptrade 平台上的稳定性和健壮性。