第三.06 枢轴点策略

📘 本章重点

  • 理解枢轴点策略的核心逻辑:通过前一交易日的价格数据计算当日关键支撑/阻力位,在价格突破或回归这些关键位时进行交易
  • 掌握经典五点系统的计算公式(PP、R1、R2、S1、S2)
  • 学会区分枢轴点策略与菲阿里四价的本质差异(“价格重心”vs“价格边界”)
  • 了解枢轴点策略在外汇市场中的特殊优势与统计支撑
  • 掌握策略中止盈止损的核心地位——不同交易模式的止盈止损逻辑完全不同
  • 学会在策略连续止损时进行心理应对和失效切换

⚠️ 本章难点

  • 理解“枢轴点”与“昨日高点/低点”的本质区别——前者是“价格重心”,后者是“价格边界”
  • 掌握不同时间框架下枢轴点的选择(日枢轴、周枢轴、月枢轴)
  • 理解枢轴点在无重大新闻时的统计规律——70%-80%的时间在R1与S1之间波动
  • 区分“突破交易”与“回归交易”两种不同的枢轴点用法,以及各自的止盈止损设计
  • 理解止盈止损在枢轴点策略中的核心地位——比入场信号更关键
  • 掌握策略连续亏损时的应对方法

⏱️ 预估学习时间

  • 35~50分钟

一、策略简述与一句话定性

一句话定性:枢轴点策略是一种基于前一交易日价格数据计算当日关键支撑/阻力位的日内交易系统——通过枢轴点(PP)、阻力位(R1、R2)和支撑位(S1、S2)构成价格“地图”,在价格突破关键位时顺势交易,或在价格回归枢轴点时逆势交易。

“枢轴点”(Pivot Point)这个名字本身就暗示了它的核心思想——价格的“旋转中心” 。就像门围绕门轴转动一样,价格围绕枢轴点上下摆动。

枢轴点最早起源于纽约证券交易所场内交易员(Floor Traders)的实战方法。在每个交易日开始时,他们通过前一日的最高价、最低价和收盘价,快速计算出一个“价格轴心”和围绕它的支撑/阻力区间,作为当日交易的“作战地图”。

与大多数技术指标不同,枢轴点的起源并非来自学术研究或理论推导,而是来自交易大厅的实战需求。这种务实的出身,让枢轴点至今仍然是市场上最实用的工具之一。

如果说菲阿里四价(第三.05)是用“昨日最高/最低”画出一条“楚河汉界”,那枢轴点就是用“昨日最高/最低/收盘”算出一个“价格重心”——前者是“边界思维”,后者是“重心思维”。

如果用一个比喻来理解这两个策略的区别:

想象你在一片草场上放羊。

菲阿里四价,是在草场的边界(昨日高低点)守着——羊一旦冲出了边界,不管它是往东跑还是往西跑,你都跟上去。它相信:羊冲出边界后,会继续往那个方向跑下去。这是“守边”的哲学

枢轴点策略,是在草场的中心(PP,枢轴点)立一个桩——羊跑到边界附近(R1/S1),你把它赶回中心附近;羊要是真冲出了围栏(突破R2/S2),你就跟着它往外跑。它相信:大部分时间羊会在中心附近吃草,但如果它真冲出去了,说明那边有更好的草,你就要跟着它走。这是“守心”的哲学

一个是边界思维(破了就追),一个是重心思维(远了就赶、真破就跟)。两种思维没有对错,适用于不同的市场状态:菲阿里适合趋势行情,枢轴点适合震荡行情。

一句话总结:枢轴点就是交易员的“每日作战地图”——开盘前画好,盘中按图作战。五个关键位,两种交易逻辑,一套完整的日内交易框架。

策略的核心要素:“五点系统”速览

枢轴点最经典的形式是“五点系统”(5-Point System),包含一个枢轴点和四个关键位。计算公式如下:

枢轴点(PP)=(昨日最高价 + 昨日最低价 + 昨日收盘价)/ 3
阻力位1(R1)= PP × 2 - 昨日最低价
支撑位1(S1)= PP × 2 - 昨日最高价
阻力位2(R2)= PP +(昨日最高价 - 昨日最低价)
支撑位2(S2)= PP -(昨日最高价 - 昨日最低价)

价格层级

R2(第二阻力位)—— 强阻力,突破意味着极端行情
R1(第一阻力位)—— 主要阻力,日内多空分界
PP(枢轴点)—— 价格重心,日内均衡点
S1(第一支撑位)—— 主要支撑,日内多空分界
S2(第二支撑位)—— 强支撑,跌破意味着极端行情

老陈点评
枢轴点本质上是“加权平均价格”的一种变形——它给收盘价赋予了与最高价、最低价相同的权重。从统计学的角度看,枢轴点是对“市场均衡价格”的一种估计。当价格偏离这个均衡点过远时,会产生回归的动力;当价格强势突破均衡点的支撑/阻力区间时,则可能意味着新的趋势正在形成。它既能用于均值回归,也能用于趋势跟踪——这是枢轴点比菲阿里四价更灵活的地方。

老王补充
枢轴点是我在外汇市场上用得最多的工具之一。外汇市场24小时交易,没有传统的“开盘价”概念,但枢轴点用前一日的最高/最低/收盘价算出一个“参考中心”,让交易者在任何时间都有一个清晰的“价格坐标”。没有枢轴点,你在外汇市场上就像在茫茫大海里没有指南针。

二、策略的使用范围与条件

维度适用范围与条件说明
适用市场外汇、期货、股指、股票、加密货币适用于任何有明确开盘/收盘周期的品种
品种要求流动性好、价格连续流动性差的品种枢轴点计算不稳定
交易机制双向(做多/做空)或单向均可策略可灵活适应多空双向或仅做多市场
适用周期分钟级(日内交易)日枢轴点配合M30或更短周期使用
资金门槛极低单品种即可运行
不适合的市场状态重大新闻/数据发布时枢轴点在剧烈波动中可能被直接击穿

适用品种举例

  • 外汇:EUR/USD、GBP/USD、USD/JPY等主流货币对(枢轴点在外汇市场应用最广)
  • 股指期货:标普500、纳斯达克、恒生指数等
  • 商品期货:黄金、原油、铜等
  • 加密货币:比特币、以太坊(7×24小时市场需自定义周期)

关于外汇市场的“开盘”概念:外汇市场虽然24小时交易,但不同时区有各自的“开盘”时间概念——亚洲时段(东京开盘)、欧洲时段(伦敦开盘)、美洲时段(纽约开盘)。枢轴点通常以纽约收盘时间(北京时间凌晨5点) 作为日线分割点。这个细节对于外汇交易者来说至关重要。

时间框架的选择

枢轴点类型数据来源适用图表周期说明
日枢轴点前一日高/低/收M30及以下日内交易最常用,每日更新
周枢轴点前一周高/低/收H1、H4、D1适合中线交易,每周更新
月枢轴点前一月高/低/收周线图适合长线参考

不同市场的表现差异

  • 外汇市场:枢轴点效果最好(24小时交易+高流动性+明显震荡特征),70%-80%的统计规律在外汇市场中最为显著
  • 股指期货:效果中等,但在重大数据日(如CPI、非农)时容易失效
  • 商品期货:效果取决于品种的震荡/趋势特征,螺纹钢等区间震荡品种效果较好,单边趋势品种效果较差
  • 加密货币:趋势性强、噪音大,枢轴点效果较差,需要结合趋势过滤

失效案例

2023年3月10日,美国非农就业数据公布,新增就业人数远超预期。数据发布后5分钟内,EUR/USD从1.0580直接跌至1.0520,瞬间击穿了当日S1(1.0545)和S2(1.0525)两个关键位。任何基于枢轴点的支撑/阻力计算在这5分钟内全部失效。这种时刻,唯一正确的做法是在数据公布前平仓离场,而不是试图用枢轴点来“接飞刀”。

另一个值得警惕的场景是“震荡转趋势”的切换时刻。2024年12月,螺纹钢期货在经历了一波上涨后进入震荡,价格连续多日在PP和R1之间来回摆动。某交易员在S1附近做多、回归PP平仓,连续做对了5笔。第六次,价格跌到S1后没有反弹,直接跌破S1并继续下行至S2——他把之前5笔的利润全部亏了回去。

教训:在震荡市中,回归模式可以稳定获利;一旦市场从震荡转为趋势,回归模式的胜率会急剧下降。没有一种模式是永远有效的,关键在于识别市场状态并切换模式。

三、因子拆解与原理

3.1 枢轴点的统计规律——策略的“隐形支撑”

枢轴点策略之所以有效,背后有统计数据的支撑。

关键统计规律

  • 75%或以上的交易日中,当天价格会回归到枢轴点(PP)附近
  • 在没有重大新闻发布的交易日,价格70%-80%的时间在R1与S1之间波动
  • 枢轴点具有“磁吸效应”——价格倾向于被吸引到PP附近(这是观察到的现象,而非因果关系。其背后的原因是:PP本身就是前一交易日价格的加权平均,而市场在没有新信息驱动时,确实倾向于围绕前一日均衡价格波动)

老陈点评
这些统计数据告诉我们一个重要的市场事实:在正常市场条件下,价格的波动是有“边界”的。枢轴点及其支撑/阻力位,就是这些边界的量化表达。这背后的经济学逻辑是:在没有新的基本面信息驱动时,价格倾向于围绕“均衡价格”波动——而枢轴点就是对“均衡价格”的一个合理估计。

价格在各区域的分布规律

价格区域市场含义交易者类型
S1 到 R1 之间正常波动区间,价格围绕PP震荡短线交易者、个人投资者
R1 到 R2(或S1到S2)趋势正在形成,突破正在进行机构投资者、大基金
突破 R2 或 S2极端行情,趋势确立大型机构、央行等

3.2 两种交易逻辑——突破与回归

枢轴点策略在实际应用中可以分为两种截然不同的交易逻辑:

逻辑一:突破交易(顺势而为)

信号触发条件操作
向上突破价格突破R1做多,目标R2
向下突破价格跌破S1做空,目标S2

这种用法与菲阿里四价类似——都是在价格突破关键位时顺势跟进。

逻辑二:回归交易(均值回归)

信号触发条件操作
价格远离PP价格在R1附近时做空,在S1附近时做多等待价格回归PP
价格回到PP价格回归PP时平仓锁定利润

这种用法利用了枢轴点的“磁吸效应”——价格倾向于被吸引回PP附近。

老王补充
突破还是回归?这是枢轴点策略的核心选择题。我的经验是:看时间。 开盘后1-2小时内突破R1或S1,往往是真突破,可以用突破逻辑;如果到了下午才触及R1或S1,大概率是假突破,应该用回归逻辑。为什么早盘的突破更可靠?因为经过隔夜信息的充分消化,早盘的价格方向反映了市场对当天走势的“共识”。如果到了下午才触及关键位,说明价格在R1-S1区间内已经来回扫荡了很久,触及边界时往往已经是强弩之末。另外,结合成交量——突破放量是真,缩量是假。

3.3 与菲阿里四价的对比

维度菲阿里四价(第三.05)枢轴点策略(第三.06)
计算依据昨日最高/最低昨日最高/最低/收盘
核心思想边界突破重心回归/突破
关键位数量2个(上轨/下轨)5个(PP/R1/R2/S1/S2)
止损参考今日开盘价枢轴点或反向关键位
适用场景趋势跟踪趋势跟踪 + 均值回归
灵活性单一逻辑双重逻辑

老陈点评
菲阿里四价和枢轴点策略代表了两种不同的市场哲学。菲阿里四价是“非黑即白”——价格要么在上轨之上(做多),要么在下轨之下(做空)。枢轴点策略是“灰度思维”——价格可以在五个关键位之间游走,不同区域对应不同的交易策略。前者适合趋势市,后者在震荡和趋势市中都有用武之地。

3.4 因子的优缺点

优点缺点
计算简单,无需复杂指标在重大新闻冲击下完全失效
有统计规律支撑(70%-80%在R1-S1间波动)震荡市中假突破频繁
可同时用于突破交易和回归交易 五点系统只能覆盖“正常波动区间”的支撑/阻力。一旦价格突破R2或S2,说明市场进入了极端行情,枢轴点无法提供更高层级的目标位参考。此时需要切换到更大时间框架(如周枢轴点)或使用其他工具(如斐波那契扩展)来寻找新的目标。
适用于多种市场和周期不同时间框架的枢轴点选择需要经验
外汇市场24小时交易的“指南针”单独使用效果有限,需配合其他工具

四、仓位、买卖点与风险管理

4.1 入场信号

突破版入场规则

方向触发条件操作
做多(突破)价格向上突破R1以突破价入场做多
做空(突破)价格向下跌破S1以突破价入场做空

回归版入场规则

方向触发条件操作
做多(回归)价格在S1附近企稳(未跌破S1)买入,目标PP或R1
做空(回归)价格在R1附近遇阻(未突破R1)卖出,目标PP或S1

进阶过滤条件

过滤条件作用说明
时间过滤确认突破有效性开盘后1-2小时内的突破更可靠
成交量过滤确认突破力度突破时成交量放大为真突破
蜡烛形态确认提高胜率突破时配合Pinbar、吞没等形态
多周期确认过滤假信号周枢轴点方向与日枢轴点信号一致时入场
K线收盘确认过滤盘中毛刺价格突破R1或S1后,等待当前K线收盘。如果收盘价仍然在突破方向的一侧,则确认信号有效,入场交易。如果收盘价回到关键位以内,视为假突破,放弃交易

4.2 仓位管理

枢轴点策略的仓位管理:

  • 固定仓位法:每笔交易投入总资金的5%-10%
  • 分档建仓:在PP附近建底仓,突破R1/S1时加仓
  • 单日最多交易:建议不超过3-4次

4.3 止损设计

止损方式触发条件说明
反向关键位止损做多后价格跌破PP(或S1)逻辑自洽,与入场对称
固定比例止损亏损达到入场价的1%-2%简单直接
突破失败止损突破R1后价格重回R1下方假突破确认,立即止损

4.4 止盈设计

出场方式触发条件说明
目标位止盈突破做多目标R2,回归做多目标PP与入场逻辑对称
分批止盈到达R1平一半,到达R2平另一半锁定利润,让利润奔跑
收盘平仓日内交易收盘前平仓规避隔夜风险

4.5 止盈止损的核心地位——策略成败的关键

在枢轴点策略中,止盈止损比入场信号更重要。 原因在于:枢轴点策略的入场信号是“位置触发”——价格到了某个关键位就入场,判断相对简单。但入场后,价格可能朝多个方向运动,如何保护利润、控制亏损,直接决定了策略的最终结果。

突破模式 vs 回归模式的止盈止损差异

维度突破模式回归模式
入场逻辑价格突破R1/S1,顺势跟进价格在R1/S1附近遇阻/企稳,逆势操作
止损位置S1(做多)或R1(做空)——反向关键位PP(做多跌破PP,做空突破PP)——重心回归失败
止盈目标R2(做多)或S2(做空)——下一层关键位PP(回归重心)或反向关键位(突破延续)
止损幅度相对较大(R1到S1的距离)相对较小(关键位到PP的距离)
盈亏比通常1:1或略高通常1:1.5-1:2(回归空间大于止损空间)
关键纪律假突破必须立即止损,不能心存侥幸到PP必须平仓,不能贪心想拿更多

实战意义

  • 突破模式:止盈止损的逻辑是对称的——入场位是R1,止盈位是R2,止损位是S1。这是一套完整的“反向关键位”体系。
  • 回归模式:止盈止损的逻辑是“回归失败即离场”——如果价格在R1附近做空后,不是向下回归PP,而是向上突破了R1,说明回归逻辑已被证伪,必须立即止损。反之,如果价格顺利回归PP,无论是否还有利润空间,都应按计划平仓。

突破模式的“盈亏比陷阱”:突破模式的盈亏比通常只有1:1左右(止损在S1/R1,止盈在R2/S2,两者距离相近)。这意味着:即使胜率只有50%,突破模式的期望值也可能接近零。只有在趋势市中(突破后延续概率更高),突破模式才有正期望。

回归模式的“概率优势”:回归模式的胜率通常在55%-65%,盈亏比1:1.5以上。这是枢轴点策略中最有统计优势的模式。但它的风险在于“假突破”——价格突破R1/S1后不回撤,导致单笔亏损较大。

老王补充
枢轴点策略的止盈止损不是“附加项”,而是策略的有机组成部分。入场信号告诉你“在哪里进场”,止盈止损告诉你“在哪里认错”和“在哪里收工”。很多人把止盈止损当成“保护措施”,其实是搞反了——止盈止损本身就是策略的核心,入场信号只是触发执行的开关。

老陈点评
从统计角度看,枢轴点策略的胜率并不高(突破模式约45%-55%,回归模式约55%-65%)。但它的盈亏比设计合理——回归模式的盈亏比通常可以达到1:1.5以上。在胜率不高的情况下,盈亏比就是决定策略长期期望的核心变量。 这也是为什么止盈止损的设计比入场信号更重要——它决定了每笔交易“赚多少、亏多少”。

4.6 连续亏损时的应对——策略的“生存法则”

任何策略都会遇到连续亏损。区别在于:新手在亏损时怀疑策略,老手在亏损时执行预案。

心理应对

亏损情况心理反应正确应对
连续3笔亏损怀疑策略失效暂停交易,复盘每笔交易是否符合规则
连续5笔亏损想改参数、换模式检查市场是否已改变状态(趋势vs震荡)
单日亏损超2%想加仓“捞回来”当日停止交易,接受亏损

策略失效时的切换

当前模式失效信号切换建议
突破模式连续假突破(突破后立即回撤)切换至回归模式
回归模式价格连续突破R1/S1(趋势形成)切换至突破模式
混合模式两种模式都亏损暂停枢轴点策略,使用其他策略

一个更深的追问:如果连续5笔亏损后你决定“暂停策略、观察市场”,那么观察多久观察什么指标?你如何判断“可以重新启用了”?

  • 观察时长:至少3-5个交易日,给市场足够时间形成新的状态
  • 观察指标:ADX(判断趋势/震荡状态)、布林带宽度(判断波动率扩张/收缩)、价格在R1/S1之间的摆动频率
  • 重启信号:ADX回到25以下(回归模式)或ADX突破30(突破模式),且价格在R1-S1区间内至少稳定运行了2-3个交易日

老陈点评
连续亏损时的心理应对,往往比策略本身更重要。大多数策略在特定市场环境下都会出现连续亏损。问题不在于“策略是否失效”,而在于“你是否有足够的纪律在连续亏损时仍然严格执行”。亏损是策略的成本,不是策略的失败。

五、策略的来历、设计者与趣闻

枢轴点的起源可以追溯到纽约证券交易所(NYSE)的场内交易员。在电子化交易普及之前,交易员们在交易大厅的“坑”(Trading Pit)中通过喊价和手势进行交易。每天开盘前,他们需要快速判断当天的关键价格水平——没有电脑、没有图表软件,只有前一日的最高价、最低价和收盘价。

于是,一种简单而高效的计算方法诞生了:(最高+最低+收盘)/ 3 = 枢轴点。这个计算可以在几秒钟内完成,为交易员提供了当天的“价格地图”——枢轴点在哪里,支撑和阻力在哪里。

在电子化交易普及之前,交易员们每天开盘前会在黑板上画出当天的“价格地图” ——PP在中间,R1、R2在上方,S1、S2在下方。交易过程中,他们会不断扫视价格与这些关键位的相对位置,一旦价格触及某个关键位,就根据预设的交易计划执行。没有电脑、没有图表软件,只有一块黑板和几支粉笔——这就是枢轴点最原初的使用场景。

随着时间的推移,枢轴点从交易大厅传到了更广泛的市场。外汇交易员发现,由于外汇市场24小时交易,传统的“开盘价”概念变得模糊,而枢轴点恰好提供了一个清晰的每日参考框架。如今,枢轴点已成为外汇、期货、股票和加密货币交易中最常用的日内参考指标之一。

枢轴点的演变:经典的“五点系统”后来被扩展为“七点系统”(增加了R3和S3),并衍生出了多种变体:

  • Woodie枢轴点:给收盘价更高的权重(PP=(H+L+2C)/4),更看重收盘价的意义,在趋势市中表现更好。
  • Camarilla枢轴点:使用更复杂的公式计算8个关键位,在债券和外汇市场中应用广泛,尤其适合高波动品种。
  • 斐波那契枢轴点:在PP基础上使用斐波那契比率(38.2%、61.8%)计算支撑/阻力,结合了斐波那契回撤的经典理论。

这些变体各有特色,但核心思想——用前一周期数据推算当前周期关键位——始终未变。初学者建议从经典的“五点系统”入手,掌握了基本逻辑后再探索变体。

趣闻:枢轴点的“五点系统”之所以只有5个关键位,据传是因为交易员们发现5个点刚好可以在交易大厅的黑板上画出来——再多就太拥挤了,再少又不够用。这个“黑板容量”的限制,无意中塑造了一个沿用至今的技术分析标准。

另一个有趣的事实:在外汇市场中,不同的交易时段适用不同的枢轴点。亚洲时段交易员可能使用日枢轴点,伦敦时段交易员可能使用4小时枢轴点,而纽约时段交易员可能使用小时枢轴点。举个例子:一个伦敦时段的交易员,可能会在伦敦开盘时(北京时间15:00)重新计算4小时枢轴点,因为伦敦时段是外汇市场流动性最高的时段,4小时枢轴点比日枢轴点更能反映该时段的波动特征。这种灵活性让枢轴点成为跨时区交易的“通用语言”。

老陈点评
枢轴点的“交易大厅起源”值得注意——它不是学术研究的产物,而是实战需求的产物。这意味着枢轴点经过了真实市场的检验,而不是仅仅在回测中表现良好。这种“实战检验”的血统,是很多复杂指标不具备的。

老王补充
我认识一个老外汇交易员,他的整个交易系统就是枢轴点加上两根均线。他说:“市场只有三种状态——在PP之上、在PP之下、在PP附近。 你只需要搞清楚现在是哪一种,然后决定怎么做。”这种极简的思维方式,让我受益至今。

六、Python回测示例

⚠️ 重要提醒:本代码为日线简化版仅用于演示策略逻辑,不代表实盘表现。枢轴点策略是日内策略,真正的回测需要使用分钟级数据。实盘交易时,入场价格应使用突破时的实时价格(如R1或S1),而非当日开盘价。使用开盘价作为入场价会严重虚增回测收益,不可作为实盘依据

以下代码演示枢轴点策略在沪深300指数上的回测。包含突破版(突破R1做多、跌破S1做空)和回归版(在S1附近做多、在R1附近做空)两种模式。

import pandas as pd
import numpy as np
import yfinance as yf
from datetime import datetime, timedelta

# ⚠️ 重要提醒:本代码为日线简化版,仅用于演示策略逻辑。
# 实盘交易时,入场价格应使用突破时的实时价格(如R1或S1),而非当日开盘价。
# 使用开盘价作为入场价会严重虚增回测收益,不可作为实盘依据。
#
# 分钟级数据获取示例(使用yfinance的interval参数):
# df_minute = yf.download('GC=F', start='2024-01-01', end='2024-12-31', interval='5m')
# 国内期货分钟数据建议使用天勤(TqSdk)或akshare获取

def pivot_point_strategy(data, 
                         mode='breakout',           # 'breakout' 或 'reversion'
                         stop_loss_pct=0.02,        # 止损比例
                         take_profit_pct=0.03,      # 止盈比例
                         close_position=True,       # 是否收盘平仓
                         cost_rate=0.0003,          # 交易成本(双边,含滑点)
                         near_range=0.005):         # 回归模式中“附近”的范围
    """
    枢轴点策略(日线简化版)
    参数:
        data: 必须包含 'Open', 'High', 'Low', 'Close' 列
        mode: 交易模式 - 'breakout'(突破交易)或 'reversion'(回归交易)
        stop_loss_pct: 止损比例
        take_profit_pct: 止盈比例
        close_position: 是否收盘平仓
        cost_rate: 交易成本(双边,含滑点估算)
        near_range: 回归模式中判断“在关键位附近”的范围(如0.005表示0.5%)
    返回:添加了持仓和净值的DataFrame
    """
    df = data.copy()
    
    # 1. 计算枢轴点五点系统(使用前一日数据)
    prev_high = df['High'].shift(1)
    prev_low = df['Low'].shift(1)
    prev_close = df['Close'].shift(1)
    
    df['PP'] = (prev_high + prev_low + prev_close) / 3
    df['R1'] = 2 * df['PP'] - prev_low
    df['S1'] = 2 * df['PP'] - prev_high
    df['R2'] = df['PP'] + (prev_high - prev_low)
    df['S2'] = df['PP'] - (prev_high - prev_low)
    
    # 2. 生成入场信号
    if mode == 'breakout':
        # 突破模式:突破R1做多,跌破S1做空
        df['Long_Signal'] = (df['High'] > df['R1']) & (df['High'].shift(1) <= df['R1'].shift(1))
        df['Short_Signal'] = (df['Low'] < df['S1']) & (df['Low'].shift(1) >= df['S1'].shift(1))
    else:  # 'reversion'
        # 回归模式:在S1附近做多,在R1附近做空
        df['Long_Signal'] = (df['Low'] <= df['S1'] * (1 + near_range)) & (df['Low'] >= df['S1'] * (1 - near_range))
        df['Short_Signal'] = (df['High'] >= df['R1'] * (1 - near_range)) & (df['High'] <= df['R1'] * (1 + near_range))
    
    # 3. 模拟持仓
    df['Position'] = 0
    df['Entry_Price'] = np.nan
    position = 0
    entry_price = 0.0
    trade_count = 0
    
    for i in range(1, len(df)):
        closed_today = False  # 标记今天是否已经平仓
        
        # 收盘前平仓(日内策略核心规则)
        if close_position and position != 0:
            position = 0
            entry_price = 0.0
            closed_today = True
            trade_count += 1
        
        if position != 0:
            if position == 1:
                pnl = (df['Close'].iloc[i] - entry_price) / entry_price
            else:
                pnl = (entry_price - df['Close'].iloc[i]) / entry_price
            
            # 止损或止盈(扣除交易成本)
            if pnl <= -stop_loss_pct or pnl >= take_profit_pct:
                position = 0
                entry_price = 0.0
                trade_count += 1
            elif position == 1 and df['Short_Signal'].iloc[i]:
                position = 0
                entry_price = 0.0
                trade_count += 1
            elif position == -1 and df['Long_Signal'].iloc[i]:
                position = 0
                entry_price = 0.0
                trade_count += 1
        else:
            # 只有当天没有平仓过,才能开仓(防止平仓后当天再次开仓)
            if not closed_today:
                if df['Long_Signal'].iloc[i]:
                    position = 1
                    entry_price = df['Open'].iloc[i]  # 简化:以开盘价入场。实盘建议使用突破时的实时价格
                elif df['Short_Signal'].iloc[i]:
                    position = -1
                    entry_price = df['Open'].iloc[i]
        
        df.loc[df.index[i], 'Position'] = position
        if position != 0:
            df.loc[df.index[i], 'Entry_Price'] = entry_price
    
    # 4. 计算收益率和净值(扣除交易成本)
    df['Returns'] = df['Position'].shift(1) * (df['Close'] - df['Close'].shift(1)) / df['Close'].shift(1)
    # 扣除交易成本:每次调仓时扣除
    df['Returns'] = df['Returns'] - cost_rate * (df['Position'] != df['Position'].shift(1)).astype(int)
    df['Net_Value'] = (1 + df['Returns']).cumprod()
    
    # 5. 统计指标
    total_return = (df['Net_Value'].iloc[-1] - 1) * 100
    max_drawdown = ((df['Net_Value'].cummax() - df['Net_Value']) / df['Net_Value'].cummax()).max() * 100
    
    # 收盘价取整(用于输出显示,不用于计算)
    last_close = round(df['Close'].iloc[-1], 2)
    
    print(f"策略模式:{mode}")
    print(f"最新收盘价:{last_close}")
    print(f"总收益率:{total_return:.2f}%")
    print(f"最大回撤:{max_drawdown:.2f}%")
    print(f"交易次数:{trade_count}")
    
    return df

if __name__ == "__main__":
    # 下载沪深300指数数据
    df_300 = yf.download('000300.SS', start='2020-01-01', end='2024-12-31')
    
    # 运行突破版
    result_breakout = pivot_point_strategy(df_300, mode='breakout', cost_rate=0.0003)
    print(result_breakout[['Close', 'PP', 'R1', 'S1', 'Position', 'Net_Value']].tail(10))
    
    print("\n" + "="*50 + "\n")
    
    # 运行回归版
    result_reversion = pivot_point_strategy(df_300, mode='reversion', cost_rate=0.0003)
    print(result_reversion[['Close', 'PP', 'R1', 'S1', 'Position', 'Net_Value']].tail(10))

回测结果参考(基于公开数据,不同数据源口径略有差异):

模式适用行情表现特征
突破版趋势市在单边行情中表现优异,震荡市中假突破频繁
回归版震荡市在区间震荡中表现稳定,趋势市中逆势亏损

代码说明
本代码为日线简化版,仅用于演示策略逻辑。枢轴点策略是日内策略,真正的回测需要使用分钟级数据。入场价格使用开盘价(简化处理),实盘建议使用突破时的实时价格。

修正说明:本版代码在收盘平仓逻辑中增加了closed_today标记,确保平仓后的同一天不会再次开仓,避免了日线回测中的“平仓后立即开仓”问题。同时增加了cost_rate交易成本参数和near_range可调范围参数。

老陈点评
回测时要注意:枢轴点策略在日线数据上的回测会丢失大量盘中细节。突破R1或跌破S1的信号可能在盘中出现又消失,日线数据无法捕捉这些细节。建议使用分钟级数据回测,并加入0.05%-0.1%的滑点成本。

老王补充
实盘中,枢轴点策略最需要注意的是假突破。价格突破R1后可能很快回落,如果你在突破时追进去,马上就会被套。我的做法是:突破R1后等一根K线收盘确认再入场——如果突破后K线收盘价仍在R1之上,再入场。虽然会错过一些利润,但能过滤掉大部分假突破。另外,止盈止损必须严格执行——到了止损位不认输,到了止盈位不收手,再好的策略也是白搭。

七、本章小结与思考题

小结

项目核心要点
策略类型日内支撑/阻力交易(突破 + 回归双重逻辑)
核心公式PP=(H+L+C)/3;R1=PP×2-L;S1=PP×2-H;R2=PP+(H-L);S2=PP-(H-L)
统计支撑无重大新闻时,70%-80%时间在R1-S1之间波动
两种模式突破版(顺势跟进)和回归版(均值回归)
止盈止损核心突破模式:止盈R2/S2、止损S1/R1;回归模式:止盈PP、止损反向突破
核心优势逻辑清晰,有统计支撑,适用于多种市场
最大风险重大新闻冲击时关键位全部失效
资金门槛极低,单品种即可运行

枢轴点策略是日内交易中最经典的支撑/阻力工具之一。它与菲阿里四价(第三.05)同属“用昨日数据画今日地图”的日内策略家族,但两者的思维方式截然不同——菲阿里四价是“边界思维”,枢轴点是“重心思维”。前者适合捕捉突破行情,后者在震荡和趋势市中都有用武之地。

止盈止损比入场信号更重要——在枢轴点策略中,入场信号只是告诉你“哪里进场”,而止盈止损决定了这笔交易“赚多少、亏多少”。突破模式与回归模式的止盈止损逻辑完全不同,必须严格区分、严格执行。

老陈总结
枢轴点策略的价值在于它的统计基础。70%-80%的时间在R1-S1之间波动——这不是猜测,而是大量交易数据验证的事实。当你知道了这个统计规律,你就知道了在什么位置做交易具有概率优势。在量化交易中,概率优势就是一切。 而止盈止损的设计,就是把这种概率优势转化为长期正期望的关键。

老王总结
枢轴点是我工具箱里最常用、最可靠的工具之一。不是我有多聪明,而是市场确实会尊重这些关键位。你不需要复杂的指标,只需要每天开盘前花30秒算一下今天的枢轴点、R1和S1,然后盯着这几个位置交易就行了。但记住:入场只是开始,止盈止损才是决定成败的关键。

💡 思考题

  1. 枢轴点策略和菲阿里四价(第三.05)都使用昨日数据来计算今日的关键位。它们的本质区别是什么?在什么市场环境下各占优势?
  2. 统计数据显示,70%-80%的时间价格在R1和S1之间波动(在无重大新闻时)。根据这个规律,如果你在R1附近做空、在S1附近做多,你的胜率大概是多少?这种策略的主要风险是什么?
  3. 假设今天是美国非农数据公布日,你还会使用枢轴点策略吗?为什么?
  4. 枢轴点策略有“突破版”和“回归版”两种模式。你认为在实际交易中,应该如何在这两种模式之间切换?有没有可能同时使用两种模式?
  5. 在枢轴点策略中,突破模式和回归模式的止盈止损逻辑完全不同。请分别描述两种模式的止盈止损设计,并说明如果混淆使用可能产生什么后果。
  6.  假设你的枢轴点回归策略连续5笔交易都亏损(价格突破S1后继续下跌,或突破R1后继续上涨)。你会如何判断这是“正常的策略回撤”还是“策略已经失效”?你的应对计划是什么?如果连续5笔亏损后你决定“暂停策略、观察市场”,那么观察多久观察什么指标?你如何判断“可以重新启用了”?
  7. 在Python代码中,交易成本(cost_rate)对枢轴点策略的影响有多大?试着将cost_rate从0.0003改为0.001(双边0.1%),观察收益率和最大回撤的变化。这个实验告诉你什么?
  8. (展望题) 随着程序化交易和算法执行的普及,像枢轴点这样基于固定公式计算的关键位,会不会因为“太多人盯着同一个位置”而失效?请从“自我实现的预言”和“策略拥挤”两个角度分析。

八、引用/参考出处

网上内容

图书(元信息)

  • John L. Person, Candlestick and Pivot Point Trading Triggers, Wiley, 2007.(枢轴点与蜡烛图结合交易的经典著作)

相关链接: 第三.05 菲阿里四价

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容