别人恐慌我贪婪,这句话人人都背过。背过的人多,赔钱的人也多——因为这句话缺了半截:你怎么知道今天是不是恐慌?
我的办法笨:不下定义,就不许动手。定义不能是形容词,得是机器也能判对错的条文;判错了,就改条文。这个策略,就是被判决书逼出来的。
论断 #11
第一个版本写在一份叫 verify-011 的脚本里,论断一句话:VIX 大于 30 的恐慌期买入,跑赢平静期。
判决很难看。放在中国市场,1 个月、6 个月、12 个月的持有期全部不成立;3 个月那个成立,还得把重叠样本剔掉才显著。换句话说,恐慌日买入,多数时候不占便宜。
不服
我不服,补一个前提:这句话成立的前提是资产质量——别人恐慌我贪婪,你贪的得是最好的股票。A股里谁最好?工商银行。重测。
判决更难看。恐慌期买工行,持有一年平均亏 5.6%;随便挑一天买,反而赚 16.1%;一个月胜率 36.6%,十次里六次亏。结论只有一句:恐慌期不是好股票的黄金坑,恐慌期恰恰是它相对弱势的起点。
两次判决指向同一个方向:错的不是我,是恐慌这个词本身——它在原句里就没有定义。
恐惧的定义
于是我重新说了一遍恐惧是什么:已经连续下跌三五个月了,突然有一天又跌了 5% 以上,这才叫恐惧到达极点。2022 年的三四月份,2020 年疫情后开盘那一天——那个叫恐惧,真正的恐惧。单日随便跌一跌,不配叫恐惧。
定义一落地,统计跟了上来:2006 年到 2026 年,上证单日跌超 5% 一共 48 次,半年后正回报的概率只有 41.7%,中位数是负的 4.11%。但把市场切开看:震荡市里抄这种底,87.5% 是赚的;熊市里只有 22.6%。数字和我说的同一个意思——暴跌本身不构成机会,暴跌待在什么结构里,才构成机会。
四重过滤
所以策略最后长成了这样:
# verify-011-final.py · 四重过滤恐惧极点策略
DROP_THRESHOLD = 3.0 # 单日跌 ≥3%
LOOKBACK_DAYS = 63 # 收盘低于 63 个交易日前:连跌三月
PE_ABS_MAX = 15.0 # PE 绝对值 ≤15
PE_PCT_MAX = 20.0 # PE 处于五年分位 ≤20%
TAKE_PROFIT = 8.0 # 止盈 +8%
STOP_LOSS = -3.0 # 止损 -3%
EXIT_WINDOW = 120 # 120 个交易日不出场就算超时
TC = 0.0003 * 2 # 双边万六,一次都不许少算
四道滤网:连跌三月,才刚开始跌的进不来;单日重挫,滤掉阴跌;PE 不超过 15,滤掉贵;五年分位不超过 20%,跌了很多但依然贵的,也进不来。股票池 15 只沪深蓝筹,工商银行和贵州茅台都在里面。数据不要钱:日线从腾讯的接口分段拼,PE 从东方财富爬。出场也写死——涨 8% 走,跌 3% 认赔走,120 天没动静算超时。
判决权
这个策略里没有一句话是我的感觉。四道滤网是两次证伪换来的,出场线是成本算出来的,连手续费都进了代码。它现在还挂着,等下一次恐慌来交卷。
巴菲特那句话没有错,错的是把恐慌当成一个日子。恐惧是一个结构;是结构,就写得成代码。写得成代码的东西,才有对错。