股票价格会定期下跌和上涨。我们将研究股票价格对数收益的概率分布,并尝试一种非常简单的策略。该策略基于均值回归法。这是弗朗西斯-高尔顿爵士最初在遗传学中发现的一个概念。研究发现,父母身材高大的孩子往往比父母矮小。父母矮小的孩子往往比父母高。当然,这只是一种统计现象,并没有考虑到营养改善等基本因素和趋势。
向均值回归也与股市有关。然而,它并不能提供任何保证。如果一家公司开始生产糟糕的产品或进行糟糕的投资,向均值回归并不能拯救这只股票。让我们先下载一只股票的历史数据,例如 AAPL。
接下来,我们计算收盘价的每日对数收益率 (http://en.wikipedia.org/wiki/Rate_of_return)。我们将跳过这些步骤,因为它们已在上一个配方中完成。
这是三个步骤,让我们看看是如何完成的。
现在是有趣的部分:
首先, 让我们从计算突破和回撤开始。假设我们想一年交易五次,大概每 50 天交易一次。一种策略是在价格下跌一定百分比(回撤)时买入,在价格上涨另一个百分比(突破)时卖出。通过设置适合我们交易频率的百分位数,我们可以匹配相应的对数收益。SciPy 提供了 ( scoreatpercentile ) 方法,我们将使用该方法:

第二步 生成买入和卖出。使用 NumPy 方法(compress)为我们的收盘价数据生成买入和卖出。该方法根据条件返回元素,下面的代码表达了它的工作原理,AAPL 和 50 天期间的输出如下:

因此,如果我们买卖 AAPL 股票五次,就会损失 52 美元。当我运行这个脚本时,整个市场正处于修正后的复苏模式。你可能不仅要看 AAPL 的股价,还要看 AAPL 和 SPY 的比率。SPY 可以作为美国股市的代表。
第三,绘制对数收益直方图。为了好玩,我们用 matplotlib 绘制对数收益直方图:

你现在需要知道发生了什么?
我们遇到了方法 ( compress ),它返回一个数组,其中包含满足给定条件的输入数组元素。输入数组保持不变。
引用。
安装 SciPy 部分。
幂律部分
( compress ) 方法的文档页面 http://docs.scipy.org/doc/numpy/reference/generated/numpy.compress.html