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

 
Информационная энтропия — Википедия
  • ru.wikipedia.org
Информацио́нная энтропи́я — мера неопределённости или непредсказуемости информации, неопределённость появления какого-либо символа первичного алфавита. При отсутствии информационных потерь численно равна количеству информации на символ передаваемого сообщения. Например, в последовательности букв, составляющих какое-либо предложение на русском...
 

这里有一些例子。道琼斯指数与非农就业数据。

箭头标志着支点,数据包括20多年的历史。

这种模式发生过一次,有可能在2000-2001年之间找到另一种模式。有可能对其进行编程,但二十年中的两个信号对统计来说太少了。

 
gpwr:
你可以对任何模型这么说,不仅是回归,还有神经模型、ARMA和其他模型。如果输入和输出之间没有关系,任何模型都会产生一个预测,只是不准确。

我同意,神经网络甚至更好,我当时并不清楚

回归对于快速测试一个想法,即是否可以用数据做一些事情是非常有用的。

即快速建立-检查一个经验模型

但这些关系可能是 "不存在的 "或间接的无法观察到的

我曾经建造过这样一个模型。

MICEX指数+5年期国债+3个月LIBOR+BRENT价格+欧盟ZVR+其他东西

事实证明,这种组合对加拿大人来说是一个相对较好的预测因素。

没有人知道,为什么?

 

我对相互信息的计算。

function I = KMI(x,y,h)
% Calculate Mutual Information between x and y based on Gaussian kernels
n=numel(y);
if nargin<3
    h=(4/3/n)^0.2;
end
q=1/(2*h^2);
I=0;
for i=1:n
    Mx=1;
    My=1;
    Jxy=1;
    for j=1:n
        if j>i
            Kx(i,j)=exp(-q*(x(i)-x(j))^2);
            Ky(i,j)=exp(-q*(y(i)-y(j))^2);
            Kx(j,i)=Kx(i,j);
            Ky(j,i)=Ky(i,j);
        end
        if i~=j
            Mx=Mx+Kx(i,j);
            My=My+Ky(i,j);
            Jxy=Jxy+Kx(i,j)*Ky(i,j);
        end
    end
    I=I+log(n*Jxy)-log(Mx)-log(My);
end
I=I/n;
 
forexman77:

这里有一些例子。道琼斯指数与非农就业数据。

箭头标志着支点,数据包括20多年的历史。

这种模式发生过一次,有可能在2000-2001年之间找到另一种模式。这是有可能的,但二十年来的两个信号对统计来说太少了。

为了利用宏观经济指标进行高频交易,我们应该按照指标的发布日期进行交易。也就是说,有了这些指标的模型,我们就可以预测它们的下一个数值,与公布的数值进行比较,并在新闻发布前开仓。不过,说实话,我对这种交易不感兴趣。我对预测坠机更感兴趣。每个人都能在上涨的市场中获利,但在暴跌中避免损失是一门艺术,需要有能力区分暴跌和修正的开始。

这里有一张更有趣的图片。在崩溃之前,允许建造的PERMIT1房屋数量在下降(垂直灰线代表历史上的衰退)。

之前唯一一次允许建造的房屋数量没有急剧下降的经济衰退是2002-2003年的经济衰退。一些经济学家认为,从技术上讲,那段时间不是经济衰退,因为没有出现连续两个季度的GDP负增长。但市场价格仍然下跌得相当厉害(网络泡沫)。我的模型在预测2002-2003年时相当糟糕。现在需要的是一个能够预测这个时期的额外指标。

这里还有一个有趣的例子:债券收益率曲线=GS5-GS3M,很好地预测了经济衰退的发生。

 
transcendreamer:

我曾经建造过一个这样的模型。

MICEX指数+5年期国债+3个月LIBOR+布伦特价格+欧盟ZVR+其他东西

事实证明,这种组合对加拿大人来说是一个相对较好的预测因素。

没有人知道,为什么?

)))你又是如何用这个来 "预测 "加拿多尼亚的?

此外,我甚至知道 "有什么联系",但问题是你如何用它来预测kanadoyen?

假设你的预测与加那利的实际利率有偏差,而这个模型确实 "有效"--接下来呢?你如何预测加元的汇率会与这个合成物的汇率走在一起,或者合成物的汇率会与加元的汇率走在一起,或者它们都会相互走在一起?如何?

 
gpwr:

要使用宏观经济指标进行高频交易,你需要在其发布日期前进行交易。也就是说,有了这些指标的模型,我们就可以预测它们的下一个值,与公布的估计值进行比较,并在新闻发布前开仓。不过,说实话,我对这种交易不感兴趣。我对预测坠机更感兴趣。每个人都能在上涨的市场中获利,但在暴跌中避免损失是一门艺术,需要有能力区分暴跌和修正的开始。

这里有一张更有趣的图片。在崩溃之前,允许建造的PERMIT1房屋数量在下降(垂直灰线代表历史上的衰退)。

之前唯一一次允许建造的房屋数量没有急剧下降的经济衰退是2002-2003年的经济衰退。一些经济学家认为,从技术上讲,那段时间不是经济衰退,因为没有出现连续两个季度的GDP负增长。但市场价格仍然下跌得相当厉害(网络泡沫)。我的模型在预测2002-2003年时相当糟糕。现在需要的是一个能够预测这个时期的额外指标。

这里还有一个有趣的例子:收益率曲线,很好地预测了经济衰退。

关于撞车。以下是道琼斯指数与新屋销售ADP-EMPL-SEC 数据的图表。

ADP 在2007年预测了一个好的下跌,或者说它与道琼斯指数同步下跌。

值得注意的是,新房销售在2005年底打破了这一趋势,但之后指数仍在上升,但那时已经有了市场上一切不顺利的信号。

关于战略。人们可以尝试。

  1. 一个是基于预期和实际数据的。(问题是,到目前为止,我只找到了实际数据,没有找到基于预期、预测的历史数据)。
  2. 只有实际的日内数据。
  3. 只有长期的事实数据。

P.S. 我没有什么编程经验。我在int init()中从文件中读取数据,建立一次缓冲区,然后用匹配的日期填充指标缓冲区。在我的专家顾问中,我每天获得一次指标数据。有了这种设计优化,速度也不差。

问题是如果我们使用日内数据,使用这些数据建立蜡烛图,如果有的话。在这种情况下,从文件中读取的时间会非常长。

在你给出的函数中,你使用的是什么方程?

 

阅读这个主题的人,请查看我的第一个帖子,我在几天前更新了它。

对于任何有兴趣尝试使用经济指标手动预测市场的人,这里有一个指标清单:https://www.conference-board.org/data/bci/index.cfm?id=2160

其内容如下。

1.BCI-01平均每周工作时间,制造业0.2781
2.BCI-05平均每周首次申请失业保险的人数0.0334
3.BCI-08制造商的新订单,消费品和材料0.0811
4.BCI-130ISM新订单指数0.1651
5.BCI-33制造商的新订单,非国防资本货物,不包括飞机0.0356
6.BCI-29建筑许可证,新的私人住房单位0.0272
7.BCI-19股票价格,500种普通股票0.0381
8.BCI-107领先信贷指数0.0794
9.BCI-129利率差,10年期国债减去联邦基金0.1069
10.BCI-125平均数。商业和经济状况的消费者风险0.1551

有趣的是,美联储重新认为标准普尔500指数是领先指标,好像它能预测经济,而不是反过来。在我看来,这个名单上唯一的领先指标是建筑许可,但它在所有其他指标中的权重最小。显然,美联储不知道他们在做什么,因此无法预测即将到来的经济衰退,也无法用他们的货币政策防止经济衰退。

Description of Components | The Conference Board
  • www.conference-board.org
The composite indexes of leading, coincident, and lagging indicators produced by The Conference Board are summary statistics for the U.S. economy. They are constructed by averaging their individual components in order to smooth out a good part of the volatility of the individual series.  Historically, the cyclical turning points in the leading...
 
gpwr:

我对相互信息的计算。

在mql上,情况是这样的。

struct SDoubleArrayKMI{ double m[]; };
//+------------------------------------------------------------------+
double KMI(const double &x[],const double &y[])
  {
   return(KMI(x,y,pow(4./3./ArraySize(y),0.2)));
  }
//+------------------------------------------------------------------+
double KMI(const double &x[],const double &y[],double h)
  {
// Calculate Mutual Information between x and y based on Gaussian kernels
   int n=ArraySize(y);   

   SDoubleArrayKMI Kx[],Ky[]; ArrayResize(Kx,n); ArrayResize(Ky,n);
   for(int i=0;i<n;i++) { ArrayResize(Kx[i].m,n); ArrayResize(Ky[i].m,n); }
//---

   double q=1/(2*h*h);
   double I=0;
   for(int i=0;i<n;i++)
     {
      double Mx=1;
      double My=1;
      double Jxy=1;
      for(int j=0;j<n;j++)
        {
         if(j>i)
           {
            Kx[i].m[j]=exp(-q*pow(x[i]-x[j],2));
            Ky[i].m[j]=exp(-q*pow(y[i]-y[j],2));
            Kx[j].m[i]=Kx[i].m[j];
            Ky[j].m[i]=Ky[i].m[j];
           }
         if(i!=j)
           {
            Mx+=Kx[i].m[j];
            My+=Ky[i].m[j];
            Jxy+=Kx[i].m[j]*Ky[i].m[j];
           }
        }
      I+=log(n*Jxy)-log(Mx)-log(My);
     }
   return(I/n);
  }
附加的文件:
 
gpwr:

我对相互信息的计算。

谢谢你的实施。我将研究它。

Urain

在mql中,它是这样的。


非常感谢你,Nikolay!MQL的规则。