Phantom of the Pits-规则3
回到办公室。我们现在正式进入高阶实战领域。
如果说《幽灵的教诲》中的规则1和规则2构成了交易心理不可动摇的基石,那么规则3——“在出现异常巨量后的三个交易日内平仓离场”——则是一种纯粹的战术生存机制。
在市场传说中,我们称之为“高潮耗尽(Climax Exhaustion)”规则。当一波趋势强劲运行,突然爆出一根远超过去一个月任何水平的天量K线时,这绝不是强势的信号,而是筹码大规模转移的标志。此时,“散户(弱手)”终于向错失恐惧症(FOMO)投降并疯狂买入,而“机构(强手)”则正迫不及待地把手中的筹码派发给他们。
在中国期货市场应用这一规则,需要戴上特定的“滤镜”。中国的大宗商品期货——无论是铁矿石(I)、玻璃(FG)、纯碱(SA)还是螺纹钢(RB)——都以爆发性的波动率、庞大的散户参与度以及凶猛的主力(Zhu Li - 机构主导资金)而闻名。在中国,古老的交易谚语“天量见天价”堪称绝对的物理定律。
以下是大师级趋势交易者在中国市场合理应用规则3的方法,随后附有用于自动化检测该信号的量化因子代码。
1. 区分“启动量”与“耗尽量”
规则3绝不意味着每次看到高成交量就要卖出。
如果螺纹钢(RB)以天量突破了长达3个月的盘整区间,那是启动量(Initiation Volume)。这是主力在建立头寸,你应该顺势 riding 这波行情。
规则3严格适用于耗尽量(Exhaustion Volume)。这种情况发生在市场已经强劲运行了数周或数月,上涨角度变得近乎抛物线,然后才爆出了巨量。这就是典型的“高潮见顶(Blow-off Top)”。
2. 警惕“主力换月(Dominant Contract Roll)”陷阱
中国期货市场的流动性高度集中在特定月份(通常是1月、5月和9月合约)。一个致命的业余错误是:看到巨量就恐慌离场,结果后来才发现,那仅仅是机构在将5月合约的头寸转移到9月合约上。
- 应对方法: 你必须在“主力连续合约(Continuously Stitched Dominant Contract)”图表上应用规则3,并且必须过滤掉那些纯粹因为常规换月窗口而产生的成交量脉冲。
3. 3天执行窗口
为什么是3天?因为“高潮量”当天通常会形成一根波动极大、走势混乱的K线。市场需要时间来消化这庞大的筹码转移。
- 第1天(天量日): 你观察到了极端的成交量。你按兵不动,但手指已经放在了扳机上。
- 第2天和第3天(信号确认): 如果市场真的足够强势,价格理应坚守在天量K线的高点之上。然而,如果在接下来的48到72小时内,价格停滞不前、收出十字星,或者跌破了这根天量K线的中点,这就说明主力的派发已经完成。趋势已死。你必须清仓离场。不要心存侥幸,果断执行。
4. 应对涨跌停板(Limit Up/Down Boards)
在中国期货市场,当市场触及涨停或跌停时,成交量实际上会枯竭,因为没有对手盘愿意接盘了。“异常巨量”通常出现在涨跌停板被打开的那一瞬间。当一波猛烈拉升的第三天,涨停板被砸开且成交量瞬间爆炸时,这就是你终极的规则3信号。立刻平仓。
Python 3 因子表达式
为了像量化交易者一样系统化地交易,或构建预警系统,我们需要将“成交量滚动Z-Score”与“趋势过滤器”结合使用(以确保我们处于成熟趋势的末端,而非突破初期)。
以下是使用 pandas 构建规则3因子的 Python 3 代码:
import pandas as pd
import numpy as np
def calculate_phantom_rule3_factor(df: pd.DataFrame,
vol_window=20,
z_threshold=3.0,
trend_window=40,
exit_window=3):
"""
构建适用于中国期货市场的《幽灵的教诲》规则3因子。
Parameters:
df : pd.DataFrame - 必须包含主力连续合约的 'close'(收盘价)和 'volume'(成交量)列。
vol_window : int - 建立成交量基准的回溯周期(例如20天)。
z_threshold : float - 将成交量归类为“异常”的Z-Score阈值(例如3.0个标准差)。
trend_window : int - 确保价格处于极端位置的回溯周期(用于区分“耗尽”与“启动”)。
exit_window : int - 规则3规定的3天离场窗口。
Returns: 包含布尔型因子 'rule3_exit_signal' 的 pd.DataFrame。
"""
# 1. 计算成交量Z-Score,以统计学方式识别“异常成交量”
vol_mean = df['volume'].rolling(window=vol_window).mean()
vol_std = df['volume'].rolling(window=vol_window).std()
# 处理横盘市场中标准差为0导致的除零异常
vol_std = vol_std.replace(0, np.nan)
df['vol_zscore'] = (df['volume'] - vol_mean) / vol_std
# 2. 趋势过滤器:确保市场处于极端延伸状态(区分“耗尽”与“启动”)
# 价格必须处于近期宏观趋势窗口的顶部或底部20%区间内
highest_high = df['close'].rolling(window=trend_window).max()
lowest_low = df['close'].rolling(window=trend_window).min()
# 计算价格在近期区间内的相对位置(0到1之间)
df['trend_extension'] = (df['close'] - lowest_low) / (highest_high - lowest_low)
# 定义“极端趋势”:价格处于区间顶部(多头)或底部(空头)
df['is_extended_trend'] = (df['trend_extension'] > 0.80) | (df['trend_extension'] < 0.20)
# 3. 识别“高潮成交量”日
# 异常成交量必须与极端趋势同时出现
df['is_climax_volume'] = (df['vol_zscore'] > z_threshold) & df['is_extended_trend']
# 4. 应用3天规则
# 如果今天、昨天或前天出现了“高潮成交量”日,则退出因子为TRUE(1)
# rolling(3).max() 用于检查过去3天内是否存在任何 'True' (1)
df['rule3_exit_signal'] = df['is_climax_volume'].rolling(window=exit_window).max().fillna(0).astype(bool)
return df
# ==========================================
# 使用示例:
# ==========================================
# 假设 'data' 是加载了铁矿石(I888.DCE)日线数据的DataFrame
# data = pd.read_csv("I_dominant_continuous.csv")
# data = calculate_phantom_rule3_factor(data)
#
# # 查看触发的信号:
# exit_days = data[data['rule3_exit_signal'] == True]
# print(exit_days[['close', 'volume', 'vol_zscore', 'rule3_exit_signal']])
来自大师办公桌的总结
在中国期货市场,永远不要和3个标准差的成交量脉冲硬刚。此时,散户大军已经向情绪彻底投降,而主力正在疯狂套现。
通过计算Z-Score并叠加趋势延伸过滤器,你能从数学上剔除“突破量”,精准锁定“高潮耗尽量”。当 rule3_exit_signal 触发时,你的3天倒计时就开始了。趁着流动性充裕果断卖出,感谢散户们为你带来的丰厚利润,然后优雅退场。因为一场大屠杀,即将拉开帷幕。

浙公网安备 33010602011771号