AlphaFeed Blog

Python 算经典枢轴点(Pivot Points):日内支撑压力 P/R1-R3/S1-S3 怎么算

分析与指标 · 代码验证于 2026-10-20

Python 怎么算经典枢轴点(Pivot Points)?日内支撑压力位公式一次讲清

一句话回答: 经典枢轴点用前一交易日的最高、最低、收盘算出一组当日支撑/阻力:枢轴 P=(H+L+C)/3,然后 R1=2P−L、S1=2P−H、R2=P+(H−L)、S2=P−(H−L)、R3=H+2(P−L)、S3=L−2(H−P)。用 AlphaFeed 取前复权日线后几行就能算出来,不用任何第三方指标库。实测 600519(贵州茅台)用前一日 H/L/C=1329.88/1301.68/1329.00 得 P=1320.19,阻力 R1/R2/R3=1338.69/1348.39/1366.89,支撑 S1/S2/S3=1310.49/1291.99/1282.29,次日实际开在 1322.50(P 上方略偏多)。

为什么会有这个问题 / 传统做法的痛点

日内交易者想在开盘前就知道「今天大概在哪里有支撑、哪里有压力」。枢轴点就是最经典的答案:它完全由昨天的 H/L/C 决定、盘前即可算好、全天固定不动,因此不同人算出来的点位一致,天然成为自我实现的参考位。痛点只在于:很多人记不住 R2/R3/S2/S3 的公式,或者错用了当日自身的数据(会造成未来函数),导致点位错位。

分步骤解决(每步配可运行代码)

第 1 步:取前复权日线

from alphafeed import AlphaFeed

af = AlphaFeed(api_key="your-api-key")  # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()

df = af.klines.get("600519.SH", period="1d", count=30,
                   adjust="forward", to_dataframe=True)
df = df.sort_values("trade_date").reset_index(drop=True)

第 2 步:用「前一日」H/L/C 算当日枢轴点

prev = df.iloc[-2]                      # 关键:用前一日,不用当日(否则是未来函数)
H, L, C = float(prev["high"]), float(prev["low"]), float(prev["close"])

P  = (H + L + C) / 3
R1 = 2 * P - L
S1 = 2 * P - H
R2 = P + (H - L)
S2 = P - (H - L)
R3 = H + 2 * (P - L)
S3 = L - 2 * (H - P)

print(round(P, 2), [round(R1,2), round(R2,2), round(R3,2)],
      [round(S1,2), round(S2,2), round(S3,2)])
# 实测 600519 → 1320.19 [1338.69, 1348.39, 1366.89] [1310.49, 1291.99, 1282.29]

第 3 步:整列滚动计算(给每一天都标好当日枢轴)

h, l, c = df["high"].shift(1), df["low"].shift(1), df["close"].shift(1)  # 全部用前一日
df["P"]  = (h + l + c) / 3
df["R1"] = 2 * df["P"] - l
df["S1"] = 2 * df["P"] - h
df["R2"] = df["P"] + (h - l)
df["S2"] = df["P"] - (h - l)
# shift(1) 保证“今天的枢轴只用到昨天及更早的数据”,不含未来信息

公式与读盘对照

名称公式含义
P(枢轴)(H+L+C)/3多空分界,价在 P 上方偏多
R12P−L第一阻力
S12P−H第一支撑
R2P+(H−L)第二阻力
S2P−(H−L)第二支撑
R3H+2(P−L)第三阻力
S3L−2(H−P)第三支撑

H/L/C 为前一交易日的最高/最低/收盘。正常数据应满足 S3<S2<S1<P<R1<R2<R3,可用它做一行自检。

常见读法:价在 P 之上偏多、之下偏空;上涨触及 R1/R2 可能遇阻,回落触及 S1/S2 可能获支撑;突破 R1 常把它视为新支撑。日内可配合分钟线使用。

关键坑与注意事项

常见问题(FAQ)

Q:枢轴点和「摆动高低点支撑压力」有什么区别? A:摆动高低点是从历史 K 线里找真实拐点/成交密集区(见本站支撑压力位一文);枢轴点是用昨日 H/L/C 按固定公式算出的点位,盘前即定、全天不变,更适合日内。

Q:和 R-Breaker 有什么关系? A:R-Breaker 也以枢轴点为基础再派生出买卖触发线并做成一套完整回测策略;本文只讲「如何算出并读懂经典枢轴点」这一基础。

Q:要用复权价吗? A:日内盯当日点位可用不复权原始价;若做跨越除权日的历史回测,请统一用前复权以免跳空扭曲。

Q:需要付费吗? A:免费额度即可取日线算枢轴;多标的批量、全市场与更长历史建议 Starter 及以上,详见官网定价页。

小结

经典枢轴点的本质是「用昨天的高低收,按固定公式算出今天一组对称的支撑/阻力参考位」。它简单、确定、盘前即知,关键只有一条——用前一日的数据,别把今天算进去。AlphaFeed 负责把干净的前复权 K 线取回来,公式本身几行就够。

相关链接:


免责声明:本文仅为技术与数据接口使用示例,代码与策略仅供学习研究,不构成投资建议。市场有风险,历史数据不代表未来表现。