基于宏观经济指标的市场预测 - 页 56

 
Vladimir:

3:不同期限的证券 的收益率再加一个

1974年至今,购买和持有的年百分比率:APR=7.35%。

使用经济指标的买入和卖出策略:年利率=13.18%。

这个策略在2019年12月给出了一个卖出信号。到目前为止,还没有给出买入信号。显然,市场会下跌。

买入并持有。

看到这样一个模型的前向测试是很有趣的,但在这里是不可能的。

现在,据我所知,大家都在等待选举。

 
Vladimir:

3:不同期限的证券 的收益率再加一个

1974年至今,购买和持有的年百分比率:APR=7.35%。

使用经济指标的买入和卖出策略:年利率=13.18%。

这个策略在2019年12月给出了一个卖出信号。到目前为止,还没有给出买入信号。显然,市场会下跌。

我们是在谈论一个具体的工具还是一个一般的指标?

 
Vladimir :

因此,任务是根据可用的经济指标预测标准普尔 500 指数。

第 1 步:找到指标。这些指标可在此处公开获得:http://research.stlouisfed.org/fred2/ 其中有 240,000 个。最重要的是GDP的增长。该指标每季度计算一次。因此我们的步骤 - 3 个月。较短期间的所有指标都重新计算 3 个月期间,其余(每年)被丢弃。我们还丢弃了除美国以外的所有国家的指标和历史不深(至少 15 年)的指标。于是,经过艰苦的努力,我们过滤掉了一堆指标,得到了大约一万个指标。我们制定了一项更具体的任务,即预测标准普尔 500 指数未来一两个季度,每季度有 1 万个经济指标可用。我在 MatLab 中做所有事情,尽管在 R 中是可能的。

步骤 2:通过微分和归一化将所有数据转换为平稳形式。这里有很多方法。最主要的是可以从转换后的数据中恢复原始数据。没有平稳性,任何模型都无法工作。转换前后的标普 500 系列如下图所示。

第三步:选择模型。也许是神经网络。可以做多变量线性回归。您可以进行多变量多项式回归。在测试了线性和非线性模型之后,我们得出的结论是数据非常嘈杂,以至于进入非线性模型毫无意义。 y(x) 图,其中 y = S&P 500,x = 10,000 个指标之一,是一个近乎圆形的云。因此,我们更具体地制定了任务:使用多变量线性回归预测标准普尔 500 指数未来一两个季度,每季度有 1 万个经济指标。

步骤 4:我们从 10,000 个中选择最重要的经济指标(减少问题的维度)。这是最重要也是最困难的一步。假设我们将标准普尔 500 指数的历史记录长达 30 年(120 个季度)。要将标准普尔500指数表示为各种经济指标的线性组合,有120个指标就足以准确描述标准普尔500指数这30年。此外,指标绝对可以是任何指标,以创建一个包含 120 个指标和 120 个 S&P 500 值的精确模型。因此,您需要将输入的数量减少到所描述的函数值的数量以下。例如,我们正在寻找 10-20 个最重要的输入指标。这种用从大量候选库(字典)中选择的少量输入来描述数据的任务称为稀疏编码。

有许多选择预测输入的方法。我都试过了。以下是主要的两个:

  1. 我们按照标准普尔 500 指数的预测能力对所有 10,000 个数据进行分类。预测能力可以通过相关系数或互信息来衡量。
  2. 我们遍历底部的所有 10,000 个指标,并选择一个给出线性模型 y_mod = a + b*x1 以最小的误差描述标准普尔 500 指数的指标。然后我们通过枚举剩余的 10,000 个 -1 指标再次选择第二个输入,以便它以最小的错误描述余数 y - y_mod = c + d*x2。等等。这种方法称为逐步回归或匹配追踪。

以下是与标准普尔500指数相关系数最高的前10个指标:

系列编号落后更正信息
'PPICRM' 2 0.315 0.102
'CWUR0000SEHE' 2 0.283 0.122
'CES1021000001'0.263 0.095
'B115RC1Q027SBEA' 2 0.262 0.102
'CES1000000034'0.261 0.105
'A371RD3Q086SBEA' 2 0.260 0.085
'B115RC1Q027SBEA'0.256 0.102
'CUUR0000SAF111'0.252 0.117
'CUUR0000SEHE' 2 0.251 0.098
'美国矿业'0.250 0.102

以下是与标准普尔 500 指数具有最多相互信息的前 10 个指标:

系列编号落后更正信息
'CPILEGSL' 3 0.061 0.136
'B701RC1Q027SBEA' 3 0.038 0.136
'CUSR0000SAS' 3 0.043 0.134
'GDPPOT' 3 0.003 0.134
'NGDPPOT' 5 0.102 0.134
'OTHSEC' 4 0.168 0.133
'LNU01300060' 3 0.046 0.132
'LRAC25TTUSM156N' 3 0.046 0.132
'LRAC25TTUSQ156N' 3 0.046 0.131
'CUSR0000SAS'0.130 0.131

滞后是输入序列相对于模拟标准普尔 500 系列的延迟。从这些表中可以看出,选择最重要输入的不同方法会导致不同的输入集。由于我的最终目标是最小化模型误差,所以我选择了第二种输入选择方法,即枚举所有输入并选择误差最小的输入。

步骤 5:选择计算模型误差和系数的方法。最简单的方法是 COEX 方法,这就是为什么使用这种方法进行线性回归如此受欢迎的原因。 RMS 方法的问题在于它对异常值很敏感,即这些异常值显着影响模型的系数。为了降低这种敏感性,可以使用误差的绝对值之和而不是平方误差之和,这导致了最小模量(MLM)或鲁棒回归的方法。与线性回归不同,该方法没有模型系数的解析解。通常将模块替换为平滑/可微的近似函数,并且通过数值方法进行求解,并且需要很长时间。我尝试了这两种方法(精益回归和 MHM),并没有注意到 MHM 的太多优势。我没有选择 MHM,而是绕道而行。在通过微分获得固定数据的第二步中,我添加了一个非线性归一化操作。也就是先将原序列 x[1], x[2], ... x[i-1], x[i] ... 转换成差分序列 x[2]-x[1] 。 .. x [i]-x[i-1] ... 然后通过将每个差异替换为 sign(x[i]-x[i-1])*abs(x[i]-x[ i-1] )^u,其中 0 < u < 1。对于 u=1,我们得到经典的 COSE 方法,它对异常值很敏感。在 u=0 时,输入序列的所有值都被替换为几乎没有异常值的二进制值 +/-1。对于 u=0.5,我们得到接近 MNM 的结果。 u 的最佳值介于 0.5 和 1 之间。

需要注意的是,将数据转换为平稳形式的流行方法之一是将系列的值替换为这些值的对数之差,即log(x[i]) - log(x[i-1]) 或 log(x[i]/x[i-1])。在我的情况下,选择这种转换是危险的,因为包含 10000 个条目的字典中有许多行具有零值和负值。对数还有一个好处是可以降低 RMS 方法对异常值的敏感性。本质上,我的变换函数 sign(x)*|x|^u 与 log(x) 的目的相同,但没有与零和相关的问题负值。

第 6 步:通过替换新输入数据并使用与先前历史片段中的线性回归找到的相同模型系数计算模型输出来计算模型预测。在这里重要的是要记住,经济指标的季度值和标准普尔 500 指数几乎同时出现(精度为 3 个月)。因此,要预测下一季度的标准普尔 500 指数,必须在标准普尔 500 指数的当前季度值与至少延迟 1 个季度(滞后>=1)的条目之间建立模型。要提前一个季度预测标准普尔 500 指数,必须在标准普尔 500 指数的当前季度值和至少延迟 2 个季度(滞后>=2)的条目之间建立模式。等等。随着大于 2 的延迟增加,预测的准确性显着降低。

第 7 步:检查对先前历史的预测的准确性。上面描述的原始技术(将每个输入放入先前的历史,选择给出最小 MSD 的输入,并根据该输入的新值计算预测)产生的预测 MSD 甚至比随机或空预测更差。我问自己这个问题:为什么一个非常适合过去的入口对未来有很好的预测能力?根据先前的预测误差而不是基于已知数据的最小回归误差来选择模型输入是有意义的。

最后,我的模型可以这样逐步描述:

  1. 从 stlouisfed 上传经济数据(大约 1 万个指标)。
  2. Preobrazeum 数据为固定形式并标准化。
  3. 我们选择标准普尔 500 指数的线性模型,通过 RMS 方法(线性回归)进行分析求解。
  4. 我们选择历史的长度(1960 - Q2 2015)并将其分为训练段(1960 - Q4 1999)和测试段(Q1 2000 - Q2 2015)。
  5. 我们从 1960 + N + 1 开始预测,其中 N*4 是已知季度标准普尔 500 指数值的初始数量。
  6. 在前 N 个数据上,为每个经济指标建立一个线性模型 y_mod = a + b*x,其中 y_mod 是标准普尔 500 模型,x 是经济指标之一。
  7. 我们预测每个模型的 N + 1 个条形。
  8. 我们计算每个模型的 N + 1 个柱的预测误差。我们记得这些错误。
  9. 我们将已知标准普尔 500 值的数量增加 1,即N + 1,并重复步骤 6-9,直到我们到达训练段的末尾(Q4 1999)。在这一步,我们为每个经济指标存储了从 1960 + N +1 到 1999 年第四季度的预测误差。
  10. 我们在第二个历史时期(2000 年第一季度 - 2015 年第二季度)开始测试该模型。
  11. 对于 10,000 个输入中的每一个,我们计算 1960 - 1999 年第四季度的预测标准误差。
  12. 在 10,000 个输入中,我们选择 1960 - 1999 年第四季度 RMS 预测值最低的一个。
  13. 我们为 1960 年至 1999 年第四季度的每个经济指标建立了一个线性模型 y_mod = a + b*x。
  14. 我们根据每个模型预测 2000 年第一季度。
  15. 选择对前一个时间间隔(1960 - 1999 年第四季度)具有最低预测 RMS 的所选输入的预测作为我们对 2000 年第一季度的主要预测。
  16. 我们计算 2000 年第一季度所有输入的预测误差,并将它们添加到前一个时间间隔(1960 - 1999 年第四季度)相同输入的 RMS。
  17. 继续进行到 2000 年第二季度并重复步骤 12-17,直到我们到达测试区域的尽头(2015 年第二季度),标准普尔 500 指数的值未知,其预测是我们的主要目标。
  18. 我们累积了 2000 年第一季度至 2014 年第四季度的预测误差,这些误差是由先前部分中预测标准差最低的输入产生的。这个错误(err2)是我们的样本外预测错误模型。

简而言之,预测器的选择取决于它们对之前标准普尔 500 预测的 RMS。没有前瞻性。预测器可以随时间变化,但在测试段结束时,它基本上停止变化。我的模型选择具有 2 个季度滞后的 PPICRM 作为第一个输入来预测 2015 年第 2 季度。标准普尔 500 指数与 1960 年至 2014 年第 4 季度的选定 PPICRM(2) 输入的线性回归如下所示。黑色圆圈-线性回归。多色圆圈 - 1960 年 - 2014 年第四季度的历史数据。圆圈的颜色表示时间。


固定标准普尔 500 指数预测(红线):

原始形式的标准普尔 500 指数预测(红线):

该图显示该模型预测了标准普尔 500 指数在 2015 年第二季度的增长。添加第二个输入会增加预测误差:

1 err1=0.900298 err2=0.938355 PPICRM (2)

2 err1=0.881910 err2=0.978233 PERMIT1 (4)

其中 err1 是回归误差。很明显,它随着第二个输入的添加而减少。 err2 是均方根预测误差除以随机预测误差。也就是说,err2>=1 意味着我的模型的预测并不比随机预测好。 err2<1 表示我的模型的预测优于随机预测。

PPICRM = 生产者价格指数:进一步加工的原材料

PERMIT1 = 建筑许可证授权的新私人住房单元 - 在有 1 个单元的结构中

上述模型可以这样改写。我们召集了 10,000 名经济学家,并请他们预测下一季度的市场。每个经济学家都有自己的预测。但是,我们不是根据他们编写的教科书数量或他们过去获得的诺贝尔奖数量来选择预测,而是等待几年来收集他们的预测。经过大量预测后,我们会看到哪个经济学家更准确,并开始相信他的预测,直到其他经济学家的准确度超过他。

分析令人印象深刻,但仍然存在一个问题:你有没有想过一次预测 500 (!!!) 相互影响的比率比 1 更难一些?真的,为什么选择标准普尔 500 指数?好吧,有 500 家独立且难以预测的公司组成了它。基本逻辑表明,最好在一个发行人上测试这种方法,这将使对最终结果的信心增加约 500 倍。 :)
 
Реter Konow:
该分析令人印象深刻,但仍有一个问题:你有没有想过,预测500个(!!!)同时相互影响比1个更难一些?我的意思是,真的,为什么要选择S&P500?其500家独立的、难以预测的公司组成。根据基本逻辑,这种方法最好在一个发行人身上进行测试,这将使最终结果的信心增加约...的500倍。:)
错了。虽然这个主题叫做 "根据宏观经济指标 预测市场",但这些指标在这个分析中没有任何意义。只是在被数学化并与世界的所有外部语义和逻辑联系相分离后,被替换到一些公式中的变量。干巴巴的数字,以抽象的数字系列排列,作为一个神经网络的模型,它预测...不,不是市场,而是非常相同的数字系列。

从这个角度来看,指数中有多少费率并不重要,他们公司的政策也不重要,但有必要在公式中替换所有的变量和价值。事实也是如此。

所以,一切都很正确,只是题目的叫法应该不同,因为从本质上说,这不是基本面分析,而是技术分析。
 
Реter Konow:
错了。尽管这个话题被称为 "基于宏观经济指标 的市场预测",但在这个分析中,指标是不相关的。只是在被数学化和去掉与世界的所有外部语义和逻辑联系后,被替换到一些公式中的变量。干巴巴的数字,以抽象的数字系列排列,作为一个神经网络的模型,它预测...不,不是市场,而是非常相同的数字系列。

从这个角度来看,有多少课程在指数中并不重要,他们的公司有什么政策也不重要,但所有的变量和数值都需要在公式中进行替换。事实也是如此。

所以,一切都是正确的,只是题目的称呼应该不同,因为本质上它不是基本面,而是技术分析。

事实证明,基本数据 的技术分析。

基本面分析 并不那么简单。有许多影响价格的因素不属于经济指标范畴。这些是选举、英国脱欧、各种谣言等等。它们对价格的影响比所有经济指标都要大。

 
偏离主题。 <br/ translate="no">
长期以来,我一直对阅读论坛上众多交易者的 "意识流 "所产生的问题感兴趣。

1.为什么人们很容易迅速忘记研究对象,迷失在 "数列"、系数等方面,再也回不到原点,永远在数学的荒野中徘徊?

2.是什么激励了他们?这真的只是钱吗?

第一个问题还没有答案,但第二个......。......有一个。

他们所有的伴侣.搜索导致了某种幻想中的公式化的 "天堂",在那里,存在被收集,有序和可预测的所有方面。这就是聪明人对圣杯 的想象。

这个主题的第一个帖子既没有展示这个晦涩的方向的第一步,也没有展示第二步......。
 
Uladzimir Izerski:

你可以得到基本数据 的技术分析。

基本面分析 并不那么简单。有许多影响价格的因素并不属于经济指标。它们是选举、英国脱欧、各种谣言等等。它们对价格的影响比所有经济指标都要大。

是的,这是正确的。
 

致彼得:我没有直接预测S&P500指数。本文的目的是预测经济衰退,以便在经济衰退发生之前退出市场,提高买入和持有策略的盈利能力。虽然S&P500包含500家公司的股票,但它是由机构投资者驱动的,他们买卖指数本身(或其期权),而不是其组成部分。每年13%似乎不多,但对于营业额很重要的大笔资金来说,已经足够了。伯尼-麦道夫通过向客户承诺每年10%的微薄收入来吸引他们,但他没有实现这一目标。

对Uladzimir:我同意价格波动取决于不同的社会和政治事件,选举、英国退欧、感染等。最后,这一切都归结于产品/服务的供求关系、失业率和其他经济指标。我不关心日常的市场价格波动。即使是简单的买入和持有策略,每年也有7.4%的收益。我关心的是在经济衰退期间避免多头头寸,并提高这一策略的盈利能力。顺便说一下,另一个策略是购买房地产。但是,在美国,这每年只产生5%的收益。

 
Реter Konow:
错了。尽管这个话题被称为 "基于宏观经济指标 的市场预测",但在这个分析中,指标是不相关的。只是在被数学化和去掉与世界的所有外部语义和逻辑联系后,被替换到一些公式中的变量。干巴巴的数字,以抽象的数字系列排列,作为一个神经网络的模型,它预测...不,不是市场,而是非常相同的数字系列。

从这个角度来看,有多少课程在指数中并不重要,他们的公司有什么政策也不重要,但所有的变量和数值都需要在公式中进行替换。事实也是如此。

所以,一切都是正确的,只是题目的叫法应该不同,因为在本质上,它不是基本面分析,而是技术分析。

那么,对S&P500的预测是什么?

 
Vladimir:

我很抱歉,但这一切只是为了每年5-13%的收益?这并不值得努力)。