Python实验巴菲特的波动率哲学
多年来,投资者一直在寻找一套公式,以图复制沃伦·巴菲特(Warren Buffett)50 年取得的神奇回报,但都徒劳无功。
马萨诸塞州坎布里奇国家经济研究局(National Bureau of Economic Research)11 月份发表一项新研究成果,声称找到了这套公式。论文作者都有深厚的学术资历,他们供职的 AQR 资产管理公司(AQR Capital Management)管理着多只对冲基金和其他一些投资产品,资产规模达 900 亿美元。
论文作者分析了巴菲特从 1964 年收购伯克希尔·哈撒韦公司(Berkshire Hathaway)以来的投资成绩。他们的公式含有十多个单项,可以归纳为两个主要部分。
第一部分是“专注于便宜、安全、优质的股票”,即波动性低于平均水平、股价与每股账面价值之比(市净率,一种净值衡量指标)不高的股票。除此以外,研究人员还看好利润增长高于平均速度、相当大一部分利润当作股息派发出去的股票。
公式的第二部分将会令人错愕:它要求用“保证金交易”来投资这些股票,也就是借钱买股,买进的数量比不借钱能够买到的更多。研究人员发现,要达到巴菲特那样的长期回报,投资组合需要有 60%的借入比例,也就是说,借款比例足以让每 100 美元的投资组合持有 160 美元“便宜、安全、优质的股票”。
这里选择 ROC(rate of change),也即 N 日内涨跌幅百分比。
变动率指标( ROC ),是以当日的收盘价和 N 天前的收盘价比较,通过计算股价某一段时间内收盘价变动的比例,应用价格的移动比较来测量价位动量,达到事先探测股价买卖供需力量的强弱,进而分析股价的趋势及其是否有转势的意愿,属于反趋势指标之一。
我的思路很简单,先看看 ROC 的变化曲线。
roc=roc*roc roc=math.sqrt(roc) record("roc",roc)
经过我变换的 roc 在 0 到 60 之间变化,我写了这样一个逻辑(暂且把我们变化过来的数值 roc 叫波动率):
从 50 只股票集中选择波动率小于一定数值的,买入一点( 20%)
如果波动率超过一定数值,比如大于 40 ,清仓卖出
如此循环
回测结果收益 2 倍多,还是不错的嘛!
如果反过来怎么样呢?买入波动率大的股票,波动率变小后卖出。
结果收益低于 benchmark 了。
如果你对量化感兴趣,来raquant镭矿论坛试试吧