【美股投资择时篇(一)】低买高抛是否可行?

在《股市长期投资入门系列》中有同学分享了如下评论:
作为一名不太合格的韭菜,在踩过雷至今仍陷在烂坑的我也打算从此只投指数,不过我只能投国内的两三只指数基金,因为对全球股指数不了解也不懂怎么操作。有一点不同的是我不会持有二十年,而是在低估时买入按月或周定投,在到达高估或是目标止盈线时卖出:如年化百分之十五左右。
我觉得这个观点还是挺有趣的。虽然说,长期投资中既然相信股市长期增长的话,投资的最佳时机就是现在。
我和大部分读者应该是上班族,无法把将来所能够得到的全部收益提前到手全部投进去,那么定期(如每年/每月/每周/每日等)定投是一个最现实的方案了。
不过我们的认识里面,总觉得采用诸如“股票被低估时买入,高估时卖出”、“跌了X%就买入,涨Y%就卖出” 这样的策略的话,买的时候会放心一点,那么到底哪一个策略是最好的呢?从今天开始就想模拟一下不同策略的收益情况。
对所有策略有以下前提条件:
- 数据:1886/01/02 - 2023/01/17的标普500指数每月记录(不含股息分红),注意是指数投资,不是个股投资 - 由于我们不能直接投指数,因此模拟时扣除在日本的标普500指数基金中资产规模最大的指数基金的托管费率0.0968%)
- 每月可以有1,000块钱用于投资/储蓄(在python代码中的参数为monthly_income)
- 计算比较三十年之后的资产情况
用来比较的策略是以下五种:
1. 无脑定投(Dollar Cost Avaraging, DCA)
不管指数如何变动,每月定投1,000块钱
2.“低买高卖”——PER(市盈率)法 就是所谓的“低估时买入,高估时卖出”。那么怎么判断股票被高估还是低估呢?我在这里用PER(市盈率)作为模拟。 什么是市盈率?下面是百度百科的部分内容:
市盈率是某种股票每股市价与每股盈利的比率。市场广泛谈及市盈率通常指的是静态市盈率,通常用来作为比较不同价格的股票是否被高估或者低估的指标。用市盈率衡量一家公司股票的质地时,并非总是准确的。一般认为,如果一家公司股票的市盈率过高,那么该股票的价格具有泡沫,价值被高估。当一家公司增长迅速以及未来的业绩增长非常看好时,利用市盈率比较不同股票的投资价值时,这些股票必须属于同一个行业,因为此时公司的每股收益比较接近,相互比较才有效。
简单说就是描述相比企业利润,股价有被多高估的一种指标,该值越高也可以说该股票在投资家们中有多少期待。比如2020年末特斯拉(TSLA)在没有多少利润的情况下,由于投资家对该企业抱了很大期待,拉高了股票价格,当时的PER是1,120倍,而2023年2月18日是57.5倍。
那么我们来看一下美股过去90年的PER走势:

从上图可见,历史来看标普500指数PER的均值是16倍,中央值是15倍,现在的21.8倍可以说是有点高了。
这样的话从PER的观点来看,我们可以把
“低估时买入,高估时卖出”
说成
“PER低于X倍时买入,高于Y倍时卖出”。
那么最后收益能达到最高的X和Y的组合是多少呢?这是我想计算的事情。
以下是模拟中用到的计算逻辑:
初始时: 投入资产(invested_amount)=0, 钱包(wallet)=0
第n月时: 若当月PER=Y,则抛掉所有已投资产放入钱包中;最后看投入资产+钱包的合计
以历史中央值15为分界线分X,Y进行模拟 PER历史数据来自https://data.nasdaq.com/data/MULTPL/SP500_PE_RATIO_MONTH-sp-500-pe-ratio-by-month
(使用1886年以后的数据)
3. “跌了再买,涨了就抛” 和 “追涨杀跌”
“跌了再买“至少能保证不是在最高点买入——看似可行,那么我们模拟一下“上月跌X%就买入,涨Y%卖出”这样的策略吧。 以下是计算逻辑(和上面差不多):
初始时: 投入资产(invested_amount)=0 钱包(wallet)=0
第n月时: 若上月变动幅度低于X%,投入1,000块钱+钱包中的所有钱。若上月变动幅度大于X%且小于Y%,则把1,000块钱放入钱包中。若上月变动幅度>=Y%,则抛掉所有投入资产放入钱包中;最后看投入资产+钱包的合计,计算不同X, Y的收益情况。
“追涨杀跌”是和上面反过来的,即上月涨Y%以上就买入,跌X%以上就卖出
4. (按目标年化收益率)止损/止盈
可能听说过“止损很重要”、“落袋为安”这样的说法,那么我们怎么应该止盈/止损呢?
以下是计算逻辑:
初始时: 投入资产(invested_amount)=0 钱包(wallet)=0
第n月时: 若资产年化收益率=Y%,抛掉已投资产存入钱包中(止损/止盈),已投时长也清零。若X%<资产年化收益率<Y%,投资1,000块钱。
若已投时长<12月,则不管一头资产收益率如何都不抛售(不然买卖太频繁了)
最后看投入资产+钱包的合计,计算不同X, Y的收益情况。
此方法结合策略2, 策略3也是可以的,但是计算有点麻烦还是以后计算吧
5. “黄金/死亡交叉” 和 “均线趋势投资”
如果想知道上述方法以外的模拟结果,也欢迎指出~(有长期的过去数据就更好)
作为一个比较标准,首先看一下无脑定投的结果:

简单说明一下从上到下各指标的意思。
min: 最低值,按数据来看大约有1,300次开始定投三十年的机会,在这1,300次中记录的最低资产是157,799。总共投入资产是
1,000 × 12月 × 30年 = 360,000
也就是说最差情况是亏一半。不过需要注意的是标普500指数每年都有1%-10%的股息分红,这次是不含股息分红的情况,实际应该没有这么差。
average: 在1,300次定投中记录的平均资产是1,034,300,也就是定投美股30年平均能涨到3倍左右。
median: 在1,300次定投中记录的资产的中间值是1,006,829。由于股市波动较大,像平均工资一样多数人很容易被平均掉,所以我是更喜欢用中间值来评价收益情况。
max: 在1,300次定投中记录的最大资产是3,184,007,大约涨7.8倍,不过这个也是极个别情况,看看就好
SD: 标准差(standard deviation),表示分散程度的一个指标,值越高表示越分散(初中数学内容,在这里就不多说了)。在金融领域常把它称之为风险。既然投资不是为了赌一把,那应该把风险降到最低,所以可以说标准差越低越好(注意金融领域中风险不单是指资产变为负的概率)。
标普500指数过去200年的收益率分布情况大致可以看作是正态分布(如下图)

我们也可以设想投资收益情况也服从正态分布,那么就可以从平均值和标准差大致描述收益的分布了。
即约68%的概率在平均数左右的一个标准差范围内,约95%的概率在平均数左右两个标准差的范围内 也就是说按上面表格来看,定投美股30年,大约有68%的概率,资产落在[1,034,300±558,573],即[475,727 , 1,592,873]以内。
说个题外话,上面也是新闻中听说过的“百年一遇暴跌”的计算依据之一。
Sharpe Ratio: 夏普率,也称为风险调整后收益率,在这里把它简化为平均值÷风险(即标准差)。由于一般情况下投资的风险和收益是成正比的,而在相同风险下能达到较高收益的话,那可以说做出了很好的投资绩效了,该值越高越好。30年定投的夏普率是1.85。
invested_count: 总共有多少个月进行了投资。由于无脑定投是不管价格如何变动都投资1,000块钱,所以该值等于模拟期间的月数。
avg. invested amount: 平均每次投资投了多少钱。由于是无脑定投,所以该值等于每月可投资产值
sold count: 平均卖了多少次。由于无脑定投是不卖的,所以该值为0。
由于计算很费时,我7950X+64GB内存的电脑,对每个策略的计算也要花将近半天的时间,所以策略2-5的结果准备改天再写。在此之前大家可以猜一下哪一个方案更好吧。当然有其他想模拟的方案的话,欢迎指出~
无脑定投的模拟代码在下面:
https://github.com/lapi2023/Stock-Return-and-safe-withdraw-rates-simulation
Return_Simulation_monthly_DCA.py ——计算用代码
plot_Return_Simulation_monthly_DCA.py —— 做表格用代码
注1:我分享过的,以及将要分享的内容都是过去数据得出来的结果,而过去数据不能保证将来的走势,投资有风险,所有后果应由自己承担。
注2:我不会推荐任何具体的金融产品(最多是指数),任何高端的操作技巧(K线是不会出来的,也没有收任何机构的钱,开户什么的基本操作请自己搜一下(我也不知道国内券商的情况)。该模拟结果很有可能不适合A股。