投资最重要的事 -- 估值
投资最重要的是什么?答:判断“胖瘦”的能力。
巴菲特:对面过来一个200斤的人,你不需要一台体重秤,也该知道他是胖子。
要想做好投资,你该知道自己心仪的标的到底是贵还是便宜。
在资本市场,判断“胖瘦”的能力,我们也叫估值。
没有估值,没有识别贵贱的能力,就会像大海里的浮萍,亏盈全靠市场和运气。
有了估值,你就像拥有了定海神针,任凭市场涨涨跌跌,潮起潮落,我自低买高卖,波动越大,收益越多。
看到这里,请暂停1分钟,仔细思考下是不是这样?
对于市场估值的准确估计是根本的出发点。
为什么估值如此重要?
当我们没有这份能力的时候,怎么知道一个标的是不是值得买?
如果大家都嫌弃的时候,你是不是也感到害怕不敢买入?
或者当大家都看好的时候,确实赚到钱的时候,你也兴奋的杀入?
然后就变成了接盘侠、韭菜、旅鼠、浮萍。
当我们有这份能力的时候,我们知道这个标的的真正价值,假设值1块钱。
当它跌到5毛的时候,我们其实会想超市大促销一样开心,可以买更多。
当它涨到2块的时候,我们则慢慢卖出,卖给欢天喜地抢购的人。
因为我们知道,价值总会被发现,价值终将回归,价格始终围绕价值波动。
是不是有点“他强任他强 清风拂山岗”的感觉?
信心从这里开始。
这也是价值投资,逆向投资的第一步。也是最重要的一步。
让我们用数据说话。
通过聚宽本地金融数据JQData,我们找到了2005年至今的全市场估值数据(取自沪深市场每日成交概况),从中提取出深圳市场从2005年至今的平均市盈率数据。我们发现:
① 深圳市场在最近两轮牛市的顶点,也即2008年1月15日和2015年6月12日,达到全市场PE的峰值水平,并且两个峰值PE表现出了明显的近似关系。
具体来看,深圳市场在两轮牛市顶点的峰值PE分别是76.13和68.92,近似率为90.53%。
这种峰值PE的近似性,几乎完美验证了我们关于全市场估值水平呈现周期性波动的猜想。
如何估值 -- 全市场PE和PB
判断A股市场贵贱,最有效的办法,是看全市场。
正在的牛市,肯定是所有股票飞天的市场。而真正的熊市,肯定是泥沙俱下,管你好股票,差股票,全部跌得惨不忍睹的市场。
而我们的能力,从全市场估值开始。
可以说,一个完整的牛熊周期,也即投资者风险偏好上升-回落-再上升,带动全市场估值周期性波动的过程。
如果能够通过全市场估值的历史数据,找到市场估值的波动周期,那么我们就能准确地评估当前市场的估值水平了。
看全市场估值,最简单有效的方案是看全市场的PE和PB。
PE和PB是什么?不知道这个的小白还是别炒股了,先去补补功课。
不想让自己的血汗钱被收割的话,一定要学习一下。
那么问题来了,请问在哪里可以买到它呢?
JQData给你好看。
我将会用JQData计算全市场等权PE和等权PB、PE。
至于为什么要用等权?因为不想受市值庞大的股票左右。感兴趣的朋友可以找我讨论。
具体计算等权PE的算法如下:
全市场PE = N / ∑(1 / (市值 / 净利润))
其中:市值 / 净利润 = pe_ttm
talk is cheap, show me the code.
用JQData计算某天交易日的全市场PE代码如下:
1 # 获取全市场股票PE 2 all_stock = jqdatasdk.get_all_securities(['stock'], date=query_date) 3 stocks = list(all_stock.index) 4 print(" 全市场", len(stocks), "只股票信息") 5 6 stock1 = stocks[:2000] 7 stock2 = stocks[2000:] 8 9 q1 = jqdatasdk.query( 10 jqdatasdk.valuation.code, jqdatasdk.valuation.day, jqdatasdk.valuation.pe_ratio, jqdatasdk.valuation.pb_ratio 11 ).filter( 12 jqdatasdk.valuation.code.in_(stock1) 13 ) 14 df1 = jqdatasdk.get_fundamentals(q1, date=query_date) 15 df1.to_sql(name='stock_valuations', if_exists='append', con=conn, index=False) 16 17 q2 = jqdatasdk.query( 18 jqdatasdk.valuation.code, jqdatasdk.valuation.day, jqdatasdk.valuation.pe_ratio, jqdatasdk.valuation.pb_ratio 19 ).filter( 20 jqdatasdk.valuation.code.in_(stock2) 21 ) 22 df2 = jqdatasdk.get_fundamentals(q2, date=query_date) 23 df2.to_sql(name='stock_valuations', if_exists='append', con=conn, index=False) 24 25 stock_fund = pd.concat([df1, df2]).set_index('code') 26 27 # 计算全市场等权PE 28 pe_ew = len(stock_fund["pe_ratio"]) / stock_fund["pe_ratio"].apply(get_pe_trans).sum() 29 # print(" 全市场等权PE=", pe_ew) 30 31 # 计算全市场等权PB 32 pb_ew = len(stock_fund["pb_ratio"]) / stock_fund["pb_ratio"].apply(get_pe_trans).sum() 33 # print(" 全市场等权PB=", pb_ew)
总结 -- 估值图
下图是我依据JQData的数据和pyecharts画图,画出来的,从2005年以来的全市场估值图:
免费分享,但是我自己觉得它价值千金:)。
仔细的看,认真的看5分钟,看看能不能发掘出一点属于你自己的心得。
我简单说两点:
1、深综指数斜向上增长,所以长期投资总是可以赚钱
2、几年内,涨跌幅特别大,如果能抓住一波,资产将有本质的飞跃
3、市场估值波动特别大,估值总是波动,总体在15到70间波动
4、15只有08年到过,05年,15年没有低于20倍
5、低于25的时候,无疑是非常好的投资机会
6、高于60的时候,无疑是非常好的卖出机会
7、现在无疑也是非常好的投资机会:)
基于全市场估值的一个简单应用交易策略:
1、获取2005年以来,每个交易日的全市场PE、PB
2、计算当前交易日的全市场PE、PB在历史中的百分位
3、当低于20%的时候买入,高于80%的时候卖出
当然,还有更复杂有效的交易策略,以后我会继续拿出来讨论分析,但是全市场估值是基础,没有之一。
有了全市场估值这个定海神针,我们就能穿越资本市场的迷雾,踏上*之路,收获属于自己的那一份财富。