用数据告诉你,在股市赚钱有多简单

连我自己都觉得这个标题太标题党了,但这却是我真实想表达的想法。文章有点长,如果你能耐心看完,应该就能理解我为什么起这个标题。

(一)写在前面

两个星期前,我在《概率思维》这篇博客中提到过一个交易思路:

写到这里,脑袋里突然冒出了个交易策略。坦白讲,这是写文章前没有想到的,写的过程中突然就冒出来。这也是写文章可以带来深度思考的一个案例吧。

仓位管理,直接使用有知有行的温度计,先简单粗暴: 仓位 = 100 - 万得全 A 市场温度。 比如 15 度时仓位 85%,0 度是满仓。满仓后继续下跌,就只能时间换空间了。

选两个投资品种,创业板 ETF 和中证红利,前者是成长股的代表,后者价值股的代表。持仓部分的分配是: 创业板 ETF = (100 - 创业板温度) / ((100 - 创业板温度) + (100 - 中证红利温度)) 中证红利 = (100 - 中证红利温度) / ((100 - 创业板温度) + (100 - 中证红利温度))

举个例子,今天的中证红利是 0 度,创业板是 62 度。那么持仓比例: 创业板 ETF = (100 - 62) / ((100 - 62) + (100 - 0)) = 27.54% 中证红利 = (100 - 0) / ((100 - 62) + (100 - 0)) = 72.46%

定期再平衡,比如,半年操作一次。 这里面,有些是可以调整和优化的变量。仓位管理,可以用万得全 A 的 PE 或 PB 百分位,或其他能够衡量市场整体估值的指标。投资标的,可以换成创成长 ETF 之类,更激进的品种,或者直接用沪深 300 和中证 500 代替。定期再平衡,可以是一个月,半年,一年。 从数学期望的角度,毛估估看,这个策略有一定的潜力,长期收益肯定不会差。

后来这个想法一直挥之不去,我很好奇,如果按照这个简单的交易策略,到底收益怎么样?对不同的品种,如上证 50,沪深 300,中证 500,创业板这种不同风格的宽基指数,收益有什么区别?

经过两个星期的思考,加上清明假期,疫情肆虐,在家禁足,我把这个事想明白了,并且有了非常详细的回测数据。今天,就用数据告诉你:在股市赚钱有多简单。

(二)一键低买高卖

仓位管理是艺术,不是科学。我们干脆简单粗暴一点,直接放弃仓位管理,采用最简单的交易策略:估值极低时,全仓买入。估值极高时,清仓走人。忽略过程中所有的波动。

问题来了,怎么判断估值高低呢?市面上有很多方法,比如 有知有行 的温度计,蛋卷基金 的指数估值百分位,且慢 的指数估值等等。本质上,他们的原理都类似,根据 PE/PB 估值的百分位来确定估值高低。为了让投资小白们理解背后的数学原理,我这里多啰嗦几句,有投资经验的读者可直接跳过下面的内容。

PE 是市盈率,假设一家公司当前市值是 100 亿,它每年可以赚 5 亿,此时市盈率为 20,表示持有 20 年就可以回本。

PE 会随着市场交易价格的波动而变化。比如,还是这家公司,一年赚 5 亿,可是大家都不看好它,股价腰斩,市值只剩下 50 亿,此时它的 PE 就只剩下 10 倍了。

PE 的变化,不单受交易价格影响,还和公司盈利变化有关。还是这家市值 100 亿的公司,如果明年业绩大涨,赚 10 亿,此时市盈率就变成了 10 倍了。后年赚 20 亿,此时市盈率就变成 5 倍了。

一家上市公司的 PE 是不断变化的,会在一个范围内波动,比如 PE 从 10 到 50 之间波动,这样,在可以用 PE 来粗略地判断一家公司的估值高低。PE 越低,估值越低,可以买入,PE 越高,估值越高,可以卖出。再说地直白一点,一家一年赚 10 亿的公司,现在只卖 50 亿,当然很便宜了。一家一年只赚 1 亿的公司,现在卖 100 亿,当然很贵了。

一家公司的市盈率变化,是不稳定的,受行业竞争格局影响很大。有些公司以前很赚钱,市场愿意给出很高的市盈率,比如 100 倍。而现在是夕阳产业,走下坡路了,市场可能只愿意给 5 倍的市盈率。相同一家公司,甚至每年赚的钱都差不多,人们的预期不同,市盈率相差巨大。这么说来,使用市盈率来衡量估值,看起来也不太好用。但如果能把所有的公司市盈率平均起来,这个数值就比较稳定了。这就是宽基指数估值,它根据一定的规则,选出一揽子公司,按照一定的规则,合并统计市盈率。

这里到了第一个重点,我们的交易策略,只适合宽基指数。我们直接使用宽基指数的估值百分位来作为估值判断标准。如 20 表示历史上只有 20% 的时间估值是低于这个水平的,处于“低估”状态,可以买入。80 表示历史上 80% 的时间都低于这个估值水平,说明现在比大部分时间都贵,我们卖出。

注意:数据回测时,会涉及到具体的基金代码,这里不是推荐大家买这只基金,仅仅是因为这个基金成立时间足够长(10 年以上),有足够的数据进行回测。

我们的第一个交易策略简单到令人发指:

(1)估值低于 20% 百分位时,全仓买入。

(2)估值高于 80% 百分位时,清仓走人。

针对沪深 300 指数,我们选择一家成立时间较长(2012 年)的基金,回测数据显示,年化收益率达到了 14.66%,从 2012 年到现在,累计收益达到 288%

投资收益1

其交易记录,更是清爽到极致,总共就 4 笔交易,2 次买入,2 次卖出。而且几乎都买在了最低点,卖在了最高点。当然,因为图表显示的是 10 年的视角,如果你拉近看,其实并不是卖在最高点。

交易记录1

针对中证 500 指数,我们的回测数据显示,年化收益率是 12.83%,累计收益率是 234%。

投资收益2

如果我们调整一下参数,把卖出策略条件改为 95% 百分位,年化收益率达到 16.45%,累计收益率达到 358.16%。

投资收益3

聪明的你,可能发现规律了。我们再次调整策略参数,把买入条件改为 10% 百分位,卖出条件改为 99% 百分位,年化收益率达到惊人的 20.02%,累计收益率达到了 519.18%。

投资收益4

相信你已经看出这里的破绽了:过拟合。这是机器学习的专业术语,大家可以不必理会。

历史总是相似,但从来不会相同。我们使用历史数据进行回测,当然可以“拟合”出一个收益很高的模型参数,但对未来不一定有指导意义。比如,设置成 10% 的估值百分位才买入,如果市场在未来很长一段时间内,比如 5 年内无法进入这么低的估值,你将永远无法买入,你不就无法享受到投资收益了么?

为了解决这个问题,我们的交易策略需要做个升级。

(三)分批低买高卖

升级后的策略,简单地讲,就是买入的估值不要太低,避免无法进入“击球区”。为了降低风险,我们采用分批买入的原则。简单描述如下:

(1)估值低于 20% 百分位时,买入第一笔 30% 的仓位。

(2)估值低于 20% 百分位,每下跌 10% 或 xx 元,买入 10% 的仓位。即越跌越买。

(3)估值低于 20%,距离上次买入超过 30 天,则再次买入 10%。结合上面步骤,我们确保了买入在“时间”和“空间”上有足够的安全距离。

(4)估值高于 80%,首次卖出 30% 的仓位。

(5)估值高于 80%,每上涨 10% 或 xx 元,卖出 10% 仓位。越涨越卖。

(6)估值高于 80%,距离上次卖出超过 30 天,则再次卖出 10%。这个和买入是相反的操作,也是为了保证卖出在“时间”和“空间”上有足够的安全距离。

针对沪深 300 指数,我们的回测数据显示,年化收益率是 10.97%,累计收益率是 180.73%。

投资收益

看起来,优化后的策略,与“一键低买高卖”相比,投资收益下降了。这是正常的,这是为了策略的安全性和可操作性做出来的牺牲。但这个收益率,实际上也是不差的,和有知有行算出来的差不多。考虑到,这个策略其实还有很多可以优化的点,比如可以进一步调整策略参数,或者再加上网格交易,实际收益可能会更高。

从仓位控制角度来看,这个策略展现了比较完美的仓位管理逻辑。可以说,比大部分人的仓位管理都要好,至少比我自己手动管理要完美得多。我对这个结果非常满意。如下图紫色线(右侧坐标,100 表示满仓)所示。

交易记录

针对中证 500 指数,我们的回测数据显示,年化收益率是 7.97%,累计收益率是 115.12%。

投资收益

感觉比沪深 300 差了不少,通过观察回测策略生成的交易记录,以及仓位曲线(下图,紫色线,红色箭头和圈圈部分),我们可以看得出来,收益差的原因是,在 2012 年初时没有把仓位买够。

交易记录

我们调整一下买入的参数,把 20 调整为 25,即估值低于 25% 百分位时就开始买入,不要等到 20% 那么低估才开始买入。调整后,年化收益率是 11.25%,累计收益率是 190.16%。

投资收益

从生成的交易记录也可以看出来,此时的仓位控制是比较合理的。低估值时,买足仓位,高估时卖出。如下图紫色线所示。

交易记录

如果你认真观察策略生成的交易记录,会发现一个有趣的现象。

在 2016-01-07 时,执行了最后一次卖出,以 1.3466 的价格卖出了最后的 8.14% 的仓位。根据我们的交易策略,卖出时,估值百分位一定是在 80% 以上的。如下图,估值百分位是 84%,策略没有问题。

交易记录

在 2018-05-31 时,估值回到 25% 以下,触发了下一轮买入操作,以 1.228 的价格买入了 30% 的仓位。从交易记录来看,这个也没问题,估值百分位确实只有 24%。

交易记录

问题来了,为什么 1.3466 和 1.228 价格只相差了不到 10%,可是估值百分位相差这么多?前者 84%,后者才 24%?

如果你看过有知有行的第一课,应该能回答这个问题:企业的盈利增长了。从 2016 年到 2018 年,企业的盈利不断增长,但股价没涨,反而微跌 8.8%,所以估值水平大幅下降了。投资,就是赌国运,看似一句口号,实际上,背后有严密的数据支撑。这就是为什么巴菲特可以在股灾时,喊出 Buy American. I Am. 的口号。

(四)难的部分

通过上面简单交易策略的回测,大家应该都可以看出来,在股市赚钱有多简单了吧。那为什么股谚有云:一赚二平七亏?

为了回答这个问题,我们就需要讲投资中难的部分。

策略回测程序可以做到 100% 理性,忠实地执行你制定的交易策略。但人做不到,人会恐惧。

下面是利用“一键低买高卖”策略,对沪深 300 指数基金的回测的交易记录。回测显示,年化收益率是 14.34%,累计收益率是 277.49%。这是一个非常好的交易结果。

交易记录

但从交易记录来看,2012 年 5 月份开始,到 2014 年下半年,整整满仓了 2 年多,收益却还是负数。你有这样的耐心么?如上图红色箭头所示。

2015-09-25 满仓买入后,到 2017 年底有了不错的整体收益,但经历 2018 年的大跌,一夜回到了解放前,最大回撤达到 25%。你受得了这样的过山车么?如上图绿色箭头所示。

我们经常讲,计划你的交易,交易你的计划。但有几个人能真正做到?

所以,股市赚钱其实很简单,难的是人。即使有这么详尽的数据支撑,我相信也无法克服人性,按照交易策略来交易。

我们从历史中学到的唯一教训,就是人们从来不会从历史中学到教训。

(五)计划你的交易

从现在开始,计划你的交易。从数学角度,计算出投资收益的数学期望,制定好交易的策略和模型,调整模型的参数,然后按照交易计划来执行。这样赚到的钱,才是你认知内的钱。这样,才能做到跌了,心不慌,扛得住。涨了,心不燥,拿得住。

同时,我们也要意识到,历史总是相似,但从来不会相同。不要用后视镜来看投资。历史数据,只是给我们一个参考,我们要从中解读出不变的部分,而不是用后视镜来按图索骥。投资是个概率游戏,没有一个交易策略是完美的。也没有一个策略能够保证自己在任何场景下都赚钱。我们要做的,是制定多个互补的交易计划,把股市当成提款钱,而不是绞肉机。投资,还是一个长期的事情,年化收益 12% 并不是每年都赚 12%。要耐得住寂寞,要有足够的耐心。

这些文字不是我编出来的,而是这些回测数据直接投射到我内心的真实感受。我被这些简单朴素的数据,深深地震撼住了。我相信,这些数据告诉你的,比我用苍白的文字告诉你的,冲击力要强很多。

强烈建议你,试试这篇文章中提到的策略回测程序,可以搜索微信小程序 “我的投资账本”,文中提到的几个交易策略,都是开箱可用。你可以玩一下,仔细观察,在不同的参数下,回测程序生成的交易记录,仓位变化情况。

希望这篇文章,以及这个工具,能够给你的投资,带来一些不同的思考。不要用“猜测”来指导投资,用理性的,可复制的,可执行的策略,来指导投资。一起来做多中国。

Buy China. I Am.

(完)


Post by Joey Huang under wealth on 2022-04-07(Thursday) 22:43. Tags: 交易策略, 策略回测,


Powered by Pelican and Zurb Foundation. Theme by Kenton Hamaluik.