背景:
班杰明.葛拉汉是华尔街公认的证券分析之父,1894年生于伦敦,1895年举家迁居纽约,9岁时父亲过世,幼年生活困苦,1914年毕业于哥伦比亚大学,进入证券经纪商纽伯格公司(Newbuger Henderson&Loeb)担任统计分析的工作,1923年离职后,创立第一个私人基金-葛兰赫公司,初试啼声操作绩效即非常优异,1925年因合伙人意见不合而清算解散,1926年和友人合资设立葛拉汉联合投资账户(Joint Account),至1929年初资金规模由45万美元成长至250万美元(非新投资者),一夕之间,葛拉汉之名成为华尔街的宠儿,多家上市公司的所有人皆希望葛拉汉为他们负责合伙基金,但皆因葛拉汉认为股市已过度飙涨而婉拒,1929年,葛拉汉回到母校开课,教导证券分析的方法,1934年和托德(David L. Dodd)合着「有价证券分析」(Security Analysis)一书,成为证券分析的开山始祖,在葛拉汉之前,证券分析仍不能被视为一门学问,此书至今仍未绝版,且是大学证券分析的标准教科书之一,当代著名的基金经理人如华伦.巴菲特(Warren Buffett),约翰.奈夫(John Neff),汤姆.芮普(Tom Knapp)等皆是葛拉汉的学生,目前华尔街只要是标榜价值投资法的基金经理人,也都是葛拉汉的徒子徒孙,葛拉汉于1960年解散经营20年的葛拉汉.纽曼公司(Graham Newman),并退休,1976年去世,留下逾300万美元的遗产,另着有智能型股票投资人一书(The Intelligent Investor: A Book of Practical Counsel)一书,本方法即是此书中的投资原则的重点。
投资程序:
葛拉汉认为防御型投资者应平均买进道琼工业指数的30支股票,否则应按照以下原则来选股:
1.选择年销售额逾一亿美元的公司,或年销售额逾5000万美元的公用事业股。
2.流动比例应为200%以上,且长期负债不超过净流动资产。
3.选择过去十年,每年皆有盈余的公司
4.选择连续20年都支付股利的公司
5.利用3年平均值,选择过去10年每股盈余至少成长1/3的公司。
6.股价÷三年平均每股盈余小于15倍。
7.股价净值比小于1.5倍。
8.投资组合中应保持10-13种股票。
选股
由于时空背景的不同,并利于选股程序的进行,本系统将葛拉汉的程序稍作更动:
1.选择年营业额大于市场平均值的公司
2.选择过去5年皆有盈余的公司
3.选择连续2年皆支付现金股利的公司
4.流动比例>200%
5.净流动资产 - 长期负债>0
6.(近三年平均税后净利-近10-12年平均税后净利)/近10-12年平均税后净利的绝对值>0.33
7.PER1(以近3年平均每股盈余计算)<=15
8.PER(以近4季每股盈余计算)*PBR<22.5
数据使用限制:
1.有关第一项销售额的部份,由于葛拉汉的标准为一定值,不一定适用中国股市,因此以市场平均值代替。
2.因中国上市公司历史较美国短,不适用原来的假设,在此略作修正,提供使用者选择的空间,选择皆有盈余或皆有发放现金股利的年数,但基于葛拉汉在该项选股方法中的精神-稳定的获利及长期发放现金股利下,建议使用者:可用”5年以上”作为判断盈余稳定的年数;”3年以上”作为判断现金股利发放情况来进行选股。
3.净流动资产在葛拉汉的原始定义为:【流动资产 - 总负债】,在本系统其主要是用来衡量财务的安全性,现考虑中国公司的情况,改以一般的净流动资产定义:【流动资产 - 流动负债】来取代。
选股模型:
定义:JF_01(BkName:Str,EndT:TDateTime,b1,b2,b3,b4,b5,b6,b7,b8,b9:Boolean,EPSMin3yG,PEMaxV,PBMaxV,PEandPBMaxV:float,IndustryLevle:Int,SaveResult:Boolean);Array
说明:班杰明.葛拉汉(Benjamin Graham)防御价值型投资法
算法说明:
1. 最近报告期近12月营业收入不低于市场60%分位线
2. 最近报告期近12月长期负债合计不高于净流动资产
3. 指定日最近三年每股盈利皆不低于0.1
4. 最近三年每股股利皆不为0
5. 最近报告期近12月流动比率不低于1.5且不低于行业值
6. 每股盈利的三年(无则两年)复合增长率不低于EPSMin3yG
7. 指定日近12月市盈率不小于0且不高于市场的PEMaxV倍
8. 指定日市净率不小于0且不高于市场的PBMaxV倍
9. 指定日市盈率与市净率的乘积不小于0且不高于市场的PEandPBMaxV倍
参数:
BkName:Str 板块名称
EndT:DateT 截止日
b1:Boolean 是否选择条件1
b2:Boolean 是否选择条件2
b3:Boolean 是否选择条件3
b4:Boolean 是否选择条件4
b5:Boolean 是否选择条件5
b6:Boolean 是否选择条件6
b7:Boolean 是否选择条件7
b8:Boolean 是否选择条件8
b9:Boolean 是否选择条件9
EPSMin3yG:float 三年EPS最小复合增长率(%)
PEMaxV:float 超过PE中值的最大倍数
PBMaxV:float 超过PB中值的最大倍数
PEandPBMaxV:float 超过PB*PE中值的最大倍数
IndustryLevle:所用行业级别
显示名 | 取值
|
---|
证监会一级行业 | 1
|
证监会二级行业 | 2
|
所有市场 | 3 |
SaveResult:Boolean 是否更新至缓存选股列表中;
返回:Array 选股代码及用到的相关指标
策略回测模型:
定义:Show_DSXG_101(BegT:TDateTime,EndT:TDateTime,type:Int);
说明:大师策略: 班杰明.葛拉汉防御价值型投资法-策略回测结果数据提取模型
参数:
BegT:TDateTime 开始日
EndT:TDateTime 截止日
Type:自定义 返回类型
Type显示名 | 取值
|
---|
策略与大盘比较 | 0
|
最新股票池 | 1
|
与上期比新增的股票 | 2
|
与上期比剔除的股票 | 3
|
与上期比继续持有的股票 | 4
|
所有股票池 | 6
|
策略与大盘比较(数据) | 8
|
返回结果:根据Type参数不同返回不同的结果。
结果 | 返回结果类型
|
---|
策略与大盘比较 | TGraph
|
最新股票池 | Array
|
与上期比新增的股票 | Array
|
与上期比剔除的股票 | Array
|
与上期比继续持有的股票 | Array
|
所有股票池 | Array
|
策略与大盘比较(数据) | Array
|
回测应用案例展示:
范例:Return user('jrtzsupport').Show_DSXG_101(20210101T,20210205T,1);//返回最新股票池
结果: