市盈率(二):Graham价值策略

著名的Graham公式:
![][equtation]
[equtation]: http://latex.codecogs.com/svg.latex?\sqrt{22.5(EarningPerShare)(BookValuePer~Share)}
据说巴菲特早期就是用这个公式选股的,至于赚不赚不知道。

插句话,想起小时候我爸炒股的时候,就是还有深发展的那个时代,电视上就有人在讲巴菲特怎么买可口可乐的,记忆最深的是那人吹“美国宪法都有修正案,但可口可乐的配方不能改”(实际上也改过)。最近也看了看被抓大佬徐翔的报道。

我的大致感受是,其实这种人买股票对小资金的参考意义不大。巴菲特建仓某个股票可以直接换掉公司管理层;徐翔炒股也靠内幕消息可以赌重大利好。我能干嘛?写代码跑回测找bug。

不说了上代码(ricequant):

import pandas as pd
import numpy as np
import datetime
import math

def init(context):
    scheduler.run_monthly(rebalance,8)
    #按月调仓,每月第八个交易日
    
def handle_bar(context, bar_dict):
    pass
    
def before_trading(context):
    num_stocks = 10
    #删选股票
    fundamental_df = get_fundamentals(
        query(
            fundamentals.eod_derivative_indicator.pb_ratio,
            fundamentals.eod_derivative_indicator.pe_ratio,
            fundamentals.financial_indicator.inc_earnings_per_share,
            fundamentals.financial_indicator.inc_profit_before_tax,
            fundamentals.financial_indicator.quick_ratio,
            fundamentals.financial_indicator.earnings_per_share,
            fundamentals.financial_indicator.book_value_per_share,
        )
        .filter(
            fundamentals.eod_derivative_indicator.pe_ratio<15
        )
        .filter(
            fundamentals.eod_derivative_indicator.pb_ratio<1.5
        )
        .filter(
            fundamentals.financial_indicator.inc_earnings_per_share>0
        )
        .filter(
            fundamentals.financial_indicator.inc_profit_before_tax>0
        )
        .filter(
            fundamentals.financial_indicator.current_ratio>2
        )
        .filter(
            fundamentals.financial_indicator.quick_ratio>1
        )
        .order_by(
            fundamentals.eod_derivative_indicator.market_cap.desc()
        ).limit(
            num_stocks
        )
    )

    context.fundamental_df = fundamental_df
    context.stocks = context.fundamental_df.columns.values

    
def rebalance(context,bar_dict):
    
    #调仓
    for stock in context.portfolio.positions:
        if stock not in context.fundamental_df:
            order_target_percent(stock, 0)
    #仓中不符合条件的股票全部卖出
    weight = update_weights(context, context.stocks)

    for stock in context.fundamental_df:
        if weight != 0 and stock in context.fundamental_df:
            order_target_percent(stock,weight)
    #新选进来的股票按比例建仓
def update_weights(context,stocks):
    if len(stocks) == 0:
        return 0 
    else:
        weight = .95/len(stocks)
        return weight

回测结果如下:


发现四年间的收益还是很不错的,但是最大回撤有些受不了。

同样我测了一下16年初到现在的情况:

发现在15、16年上半年,出现了很长时间的空仓,筛不出来符合条件的股票,当然我们也可以买国债。但我们也可以修正一下参数,毕竟pe<15和pb<1.5或许只是符合七十年代的美股。

如果我们把参数改到了20和1.8:

被现实打了脸,还不如原来的。
原来15、16空仓期的确很危险!

反思

回到策略,这个公式的大致思路是还是只买便宜的,可以认为是一种非常保守的价投策略。由上一篇文章我们可以知道,单纯的市盈率因子是很有问题的,那么结合了PB之后的Graham呢?看看知乎大神是怎么说的。我们挑选两个看上去比较有价值的回答粘在这里。

市盈率越低的股票越好吗?

@leon:

P/E只是一种估值方式,重点不在倍率本身,而在和同业的P/E比较、和公司历史上的P/E比较,行业景气度。在内地股市,行业龙头的估值相对低廉,反映市场投机倾向明显,小盘股的机构投资者占比相对少,波动大,久而久之估值也较高。




市盈率长期处于低位暗示着较大的discount,恰恰说明存在不少负面因素。我举几个例子银行:低P/E+低P/B反映投资人对地产泡沫,透明度(港股投资人担忧中央政府不按套路出牌),SOE性质(没有约束机制,完全可以忽视中小投资人利益),不成熟的金融系统,企业治理,过速扩张导致资产质量下滑,互联网金融等的诸多担心。资源:资源价格的超级下降周期仍未结束,环保议题削弱需求预期。地产:分歧加大,退化成低成长性行业,商业地产应使用NAV估值。家电:普及期结束,更换周期变长,即便挖掘新功能仍伴随单价下降,投资人的兴趣下降。高速公路:非常稳定,应使用DCF法估值。

@冯迅(果仁老板):

很多人认为市盈率越低,股票越便宜,股票越安全,未来收益会越好。这个观点在A股是否适用,做一些量化分析很容易验证。我的分析方法是将2千多只A股按照PE由小到大排名, PE越小的股票得分越高,并按照排名的先后分成10个排名段,每个排名段大约有2百只股票,然后计算每个股票排名段的年化收益(假设股票在排名段中是等权重), 再比较各个排名段的收益。回测区间从2011年8月3日开始到2016年8月3日。 每隔20 个交易日,对所有股票重新排名,调整排名分段中的股票。在下图中,最右面90-100分段里的股票PE最小也就是最便宜的股票,最左面0-10分段里的股票PE最大或者干脆就是负数,也就是投机最强的股票。最左面的红色柱子是沪深300在过去五年的年化收益, 蓝色柱子是各个PE分段在过去5年的年化收益。比较蓝色柱子的收益,我们可以看出PE最小的股票的收益率并不是最好的,收益最好是得分80-90分段的股票,也就是PE较小但不是最小的股票。而PE最大股票收益是最差的。(细心的朋友会观察到所有股票分段的收益都超过红色的沪深300收益,这里面的原因,是大盘股在过去5年的收益远不如小盘股。)


全A股PE分段过去5年年化收益比较

所以一个简单的结论是我们应该回避PE最高的股票, 但是买PE最低的股票并不能给我们带来特好的收益。但是如果我们把投资域限制在沪深300内,则会见到完全不一样的图形。沪深300的市盈率和市净率分段收益我将沪深300按PE排名分成10段,每段大约30只股票。在下图中,最左面90-100分段里的股票PE最小,最右面0-10分段里的股票PE最大。


沪深300成分股PE分段过去5年年化收益比较

我们可以看到沪深300中PE最小的股票(最右面分段)的收益率最高,而PE最高分段的收益率最低,在过去4年为负数。 这确实印证了市盈率越低越有投资价值的观点。沪深300大都是成熟的股票, 对于成熟的股票,选股使用PE这样的基本面指标更靠谱些。最后的结论是投资者应回避PE最高的或者是盈利是负数的股票。投资沪深300,选取PE小的股票会的得到更好的收益, 而投资一般的A股, PE最小的股票不一定最有优势。

我个人的看法:

Graham策略在长期来看能保证在25%左右的年收益率,如果在价值投资的角度来看,其实已经是一种堪用的策略,但回撤基本和大盘保持一致,或者说容灾能力不够强,遇上大跌会被客户按在车库打。

现在我们来做一件很枯燥的事情,如果我们认为按月调仓太乏味,我们可以改为按周调仓,回测了2016-01-01至2017-5-11的数据,然后分别将调仓时间由每周第一个交易日到第五个交易日跑了一遍,发现一个事情:

调仓频率,第n个交易日 回测年化收益 基准年化收益 Alph Beta Sharpe Volatility 最大回撤
weekly,1 28.951% -2.815% 0.274 0.545 1.1932 0.2135 14.727%
weekly,2 28.895% -2.501% 0.2318 0.5177 0.9963 0.216 14.725%
weekly,3 12.275% -2.501% 0.1273 0.4612 0.5684 0.198 14.742%
weekly,4 17.982% -2.501% 0.1809 0.5286 0.7889 0.2078 14.73%
weekly,5 13.01% -2.815% 0.1342 0.4431 0.6043 0.1963 14.728%

有意思的事情发生了,收益差这么多!但最大回撤基本上保持了一致。
看看持仓记录,原来第一笔交易:威孚高科(000581) 在一月份正在涨,选择后面几天建仓就踏空了。

说明的问题:

  1. 拍脑门决定调仓日是不行的,应该包含一个合适的择时策略!!
  2. 单纯的Graham策略基本可以保证让利润奔跑,但无法截断亏损!!可贵的利润都在大盘回调中吐了出来,甚至在四月底这次大跌中都没有及时调整仓位,一个与大盘相关的仓位控制系统是保证胜利果实的关键。
  3. 在合乎条件的股票数量不多时,该系统选择了一两只股票全仓杀进杀出,没有合理分散风险,这是非常愚蠢的。

所以说接下来的工作,我们可以将精力放在与之配套的择时策略和仓位控制策略上。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • 问:楼主对浮亏和持有时间是怎么的标准?非周期类股介入点在哪里? 答:持有到高估,或者找到其它更适合买入的股票的时候...
    养猪的琪琪阅读 3,770评论 3 11
  • 今天休息,天气好热,不是很愿意出门,拿钢笔想写写读书笔记,把钢笔摔破了。我在厨房煮了一锅银耳,等着汤好的时候,我突...
    幸满阅读 359评论 0 0
  • (接上)为了孩子我承受了太多的苦,泪水忍不住哗哗往下流。第二天我找了人顶班,本想趁着公公外出旅游的这几天把自己的东...
    方华1阅读 211评论 0 0
  • 三千难拔去,六欲又横生。 故趣何时伴,煮酒到酉征。
    风雪长阅读 186评论 1 1
  • 有种幸福叫,最好的朋友就在身边,最爱的人就住对面。可更多的,却是错失爱人,朋友渐远。我分明记得当初你一句我有故事谁...
    Land_Young阅读 570评论 0 0