在本章节中,请想象我们正在操作一个对冲基金。你现在就是那百分之一中的一员!幂律在很多地方都会出现,详情请查看 http://en.wikipedia.org/wiki/Power_law。在这种定律中,一个变量等于另一个变量的幂:

例如,帕累托原则(见 http://en.wikipedia.org/wiki/Pareto_principle)就是一个幂律。它指出,财富的分配是不均衡的。这一原则告诉我们,如果我们按照财富的多少对人们进行分组,分组的规模将呈指数级变化。
简单地说,有钱人并不多,亿万富翁就更少,所以才会有百分之一的人。
假设股票收盘价格对数收益存在幂律。当然,这是一个很大的假设,但幂律假设似乎到处都有。我们不想频繁交易,因为每次交易都会涉及交易成本。比方说,我们更希望每月根据重大修正(换句话说,就是大跌)买卖一次。问题是,鉴于我们希望在大约 20 天中每隔 1 天启动一次交易,因此要确定一个合适的信号。
具体操作分为四个步骤,让我们来看看是如何完成的。
首先,让我们从雅虎财经获取过去一年的日终历史数据。然后,我们提取这一时期的收盘价。这些步骤在上一节中有所描述:
首先, 我们需要获得正对数收益。
现在计算收盘价的对数收益。有关对数收益的更多信息,请参阅 http://en.wikipedia.org/wiki/Rate_of_return。
首先,我们取收盘价的对数,然后用 ( diff ) NumPy 方法计算这些值的第一个差值。让我们从对数收益中选择正值:

第二步 然后,我们需要获取返回值的频率。
我们需要使用 ( histogram ) 方法获取返回值的频率。我们将返回计数和一个二进制数组。最后,我们需要对频率取对数,以便得到一个很好的线性关系:

第三步 将频率和返回值拟合成一条直线。当然,您也可以使用 ( polyfit ) 方法进行线性拟合:

第四步绘制结果图。最后,我们将绘制数据图,并使用 matplotlib 对其进行线性拟合:

我们会得到一个线性拟合、回报和频率的漂亮曲线图,就像这样:

你现在需要知道发生了什么?
( histogram ) 方法计算数据集的直方图。它会返回直方图值和分区边缘。( polyfit ) 方法将数据拟合为给定阶次的多项式。在本例中,我们选择了线性拟合。我们发现了一个幂律--做这样的声明必须小心谨慎,但证据看起来很有希望。
参考文献。
关于 ( istogram ) 方法的文档,请访问 http://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html。
关于 ( polyfit)方法的文档,请访问 http://docs.scipy.org/doc/numpy/reference/generated/numpy.polyfit.html。