QVeris
技术指标契约

免费 RSI API:数据、限制与 Python 接入

固定源价格、周期、参数、平滑方式、时间戳和证据,让 RSI 结果可以复现。

免费 RSI API:数据、限制与 Python 接入

概览

有界振荡指标任务

获取 0–100 动量振荡值,用于过度延伸、均值回归背景、市场状态分析和价格与 RSI 背离。

平滑方法

保存回看长度、Wilder 或其他平滑、输入价格、初始值方法、周期、复权政策和边界处理。

策略边界

API 应返回测量值;超买超卖阈值属于应用策略,并会随趋势、波动率和资产变化。

QVeris 如何帮助

QVeris 可帮助 Agent 发现技术分析能力、检查输入输出,再决定是否调用。

RSI 本质上是一份计算契约

两个接口都返回“RSI(14)”,结果仍可能不同,因为源价格、周期边界、预热历史、平滑方式、时区和复权规则并不一致。

参数契约

参数需要决定要保留的证据
symbol供应商代码与交易场所映射规则和资产身份
interval分钟、小时、日线或其他窗口时区和交易时段边界
period常见为 14,但不是唯一选择精确整数和预热要求
price收盘价、复权收盘价或其他序列来源字段和复权策略
smoothingWilder、类似 EMA 或供应商自定义公式或供应商文档
timestamp每个输出对应的时间事件窗口和供应商时区

最小响应结构

{
  "symbol": "AAPL",
  "interval": "1day",
  "period": 14,
  "timestamp": "2026-08-06T20:00:00Z",
  "rsi": 58.42,
  "source": "provider-name"
}

调用 API 还是本地计算

方式适合场景需要控制的风险
供应商 API需要快速、持续维护的指标接口公式不透明与调用额度
本地计算掌握价格序列且强调复现数据清洗和实现测试
双重计算信号重要,需要交叉验证预先定义容差和分歧处理

免费 RSI API 的响应字段与参数

RSI 技术指标 API 通常根据一个回看周期内的平均上涨与平均下跌计算 0–100 区间的动量振荡值。14 周期较常见,但时间间隔、价格序列、平滑方法、精度和预热期处理各不相同,应以供应商文档为准。

确认 Wilder 平滑还是其他变体

很多服务都叫 RSI,但实际可能使用 Wilder 递归平均、简单滚动平均或库特有初始值。只有回看周期不足以复现振荡指标。

测试单边行情后的边界行为

检查平均跌幅为零、平均涨幅为零、价格不变和历史不足时的处理。不同有效实现可能在特定边界返回 100、0、50 或空值。

把 70 和 30 当作背景,而不是通用指令

超买超卖阈值取决于趋势、波动率、周期和资产。API 应返回测量值,策略规则应由应用单独定义并验证。

保留价格源与 K线完成状态

记录收盘或复权收盘、周期、回看长度、平滑、时区和当前 K线是否完成。价格与 RSI 时间戳不一致时,背离分析没有意义。

定义不含事后信息的背离

判断看涨或看跌背离,需要明确拐点规则、比较窗口、价格与 RSI 的最小差异和确认时间。如果必须等待后续 K 线才能确认拐点,信号时间应记录为真正可知的时刻,而不是更早的转折点,否则回测会产生未来数据泄漏。

不同周期必须独立处理

一分钟 K 线上的 14 周期 RSI,与小时线或日线上的同参数指标不可互换。每个数值都要保存周期和交易时段,按照有文档的边界重采样;只有参与计算的所有 K 线在决策时点都已完成,才能组合多周期信号。

明确选择 API 结果还是本地计算

只处理少量标的和固定参数时,直接指标端点更方便。若已经获取 OHLCV K 线、需要多种周期,或希望精确控制平滑与初始值,本地计算通常更经济且更易复现。判断时还要纳入数据权利和 K 线调用成本。

如何比较免费技术指标 API

要求检查内容为什么重要风险信号
端点权限RSI 属于免费层、演示还是付费端点?免费密钥可能无法调用全部指标。价格页与文档不一致。
字段RSI 数值、时间戳、标的、周期与元数据。决定响应能否直接满足任务。只提供图表或不透明评分。
参数标的、时间间隔、回看周期与价格序列类型。使输出可复现、可比较。固定默认值却没有说明。
额度与许可请求权重、429 行为、缓存、展示与存储许可。决定安全轮询方式与允许用途。宣称“不限量”却无书面条款。

供应商文档链接

免费 RSI 接口与本地计算方案怎么选

有文档的 RSI 端点调用方便,但不一定成本最低,也不一定最容易复现。如果应用本来就会获取已完成的 OHLCV K 线,本地计算可以避免为每个标的额外调用一次接口,并能完全控制平滑、初始值和历史修订。若只需要少量数值、希望多个资产类别使用统一响应,或不想维护指标代码,服务商端点更有吸引力。

候选方案文档能力适用场景免费层需确认
Alpha Vantage RSI官方 RSI 函数支持标的、周期、回看长度和价格序列类型参数,可用于股票、外汇或加密货币,并返回 JSON 或 CSV。跨多个资产类别进行少量、参数明确的指标查询。虽然可以申请免费 API Key,但仍需按目标周期确认数据时效、请求限制、底层 K 线权限和商业用途。
Twelve Data RSITwelve Data 在技术指标 API 中提供针对指定金融工具和周期的 RSI 端点。已经采用 Twelve Data 代码和时间序列规则、覆盖多个市场的应用。确认当前免费套餐是否包含 RSI、端点消耗额度、批量行为、可用周期和底层市场延迟。
Financial Modeling Prep RSIFMP 在技术指标 API 中公开了稳定版 Relative Strength Index 端点。已使用 FMP 证券标识,并希望把技术指标与其他金融数据放在同一数据体系中的团队。公开文档页不等于免费可调用;必须确认当前套餐、历史深度、周期覆盖、额度和数据许可。
基于 OHLCV 本地计算使用受控收盘价序列计算涨跌幅,初始化平均涨跌并在自有版本化实现中应用 Wilder 递归平滑。大规模证券池、多参数组合、强调研究复现性,以及已经拥有底层 K 线许可的流程。底层 K 线并不会自动获得免费存储或再分发权;仍需保存来源、复权政策、K 线完成状态和许可。

用固定数值样本验证两套 RSI 实现是否一致

保存至少 40 根已完成的收盘价,其中应包含横盘区间、单边走势、缺失周期和一次复权事件。向服务商请求基于收盘价的 14 周期 RSI,再对完全相同的时间戳进行本地复算。比较首个非空值的时间、初始窗口、舍入规则,以及此后每个数值是否落在预先记录的容差内。如果差异只在公司行动或交易时段缺口后出现,应先检查价格序列和复权规则,而不是直接判断公式错误。

判断规则:若直接端点能够通过固定样本、额度足以覆盖完整轮询任务,并且底层行情权利符合产品用途,可以直接采用;若同一套已授权 OHLCV 还要计算多种指标,或精确复现比一次调用更重要,则更适合本地计算。

Python 获取 RSI 数据:安全接入步骤

可以使用一份精简的本地实现作为供应商响应的数值基准。下面的函数采用 Wilder 递归平滑,把预热区间保留为 None,并明确处理横盘、全部上涨和全部下跌三种边界状态。

def wilder_rsi(closes: list[float], period: int = 14) -> list[float | None]:
    if period < 2:
        raise ValueError("period must be at least 2")
    if any(value is None or value <= 0 for value in closes):
        raise ValueError("closes must contain positive completed-bar values")
    if len(closes) < period + 1:
        return [None] * len(closes)

    changes = [current - previous for previous, current in zip(closes, closes[1:])]
    gains = [max(change, 0.0) for change in changes]
    losses = [max(-change, 0.0) for change in changes]
    average_gain = sum(gains[:period]) / period
    average_loss = sum(losses[:period]) / period
    values: list[float | None] = [None] * period

    def score(gain: float, loss: float) -> float:
        if gain == 0 and loss == 0:
            return 50.0
        if loss == 0:
            return 100.0
        if gain == 0:
            return 0.0
        relative_strength = gain / loss
        return 100.0 - (100.0 / (1.0 + relative_strength))

    values.append(score(average_gain, average_loss))
    for gain, loss in zip(gains[period:], losses[period:]):
        average_gain = ((period - 1) * average_gain + gain) / period
        average_loss = ((period - 1) * average_loss + loss) / period
        values.append(score(average_gain, average_loss))
    return values

只有口径一致才值得比较。基准函数必须使用供应商对应的已完成收盘价序列,并在周期、交易时段、时区、复权方式、回看长度、初始值和舍入规则一致后再比较。首个非空值时间不同,通常意味着初始值或预热规则不同,而不是普通数值误差。

1. 确认标的、资产类型与周期

先解析证券和交易所,再选择日线或小时等受支持周期,不要假设不同供应商使用相同代码映射。

2. 按官方文档发送 RSI 请求

参考供应商提供的 HTTP 或 Python 示例,将 API 密钥保存在服务端,并先检查未经修改的原始 JSON。

3. 规范化 RSI JSON 数据

按时区解析时间戳,安全转换数值字符串,保留预热期空值,并明确映射 RSI 数值与计算元数据。

4. 添加限流处理与缓存

遵守请求权重,遇到 429 时退避,按已完成 K 线缓存,并记录供应商、计算参数与抓取时间。

5. 用固定 RSI 样本复算

保存一段包含横盘、上涨、下跌与缺失周期的收盘价序列,独立复现供应商的初始值与平滑方法,并比较预热行和时间戳,预先设置明确数值容差。若支持复权股票价格,样本还应包含一个公司行动日期。

6. 监控过期与历史修订

跟踪底层 K 线年龄、收盘状态、空值率、额度消耗、Schema 变化以及与固定样本的偏差。如果最新 RSI 已过期,或历史修订改变了先前信号,应明确暴露状态,不能静默沿用旧值。

检查 RSI 工具契约

调用前检查代码、周期、计算参数、输出结构和供应商身份。 可继续打开QVeris RSI 工具详情,并通过QVeris REST API 参考核对调用契约。

免费 RSI API 常见问题

有免费的 RSI API 吗?

部分供应商为预计算 RSI 提供免费层或试用额度,但免费密钥可能不包含该端点,因此应同时检查最新价格页和接口文档。

RSI 接口会返回什么?

常见字段包括时间戳与 RSI 数值,并附带标的、时间间隔、价格序列和回看周期等元数据;还应检查数据顺序、精度与预热期空值。

如何用 Python 获取 RSI 数据?

携带密钥、标的和周期发送 HTTP 请求,解析 JSON,安全转换数值,保留时间戳,并处理限流与错误。

免费接口能返回实时 RSI 吗?

有可能,但取决于底层行情权限和免费层规则。应检查 K 线时间戳与官方延迟说明,不要仅凭接口响应速度判断数据是否实时。

免费 RSI API:数据、限制与 Python 接入 | QVeris Guides