Cauchy差异是逆转和/或修正的前兆吗? - 页 3

 

我在此附上所要求的指标。

它是基于带有指标实例的文件夹中的自定义移动平均线

SMA计算功能没有变化。
GMA是在一个单独的函数中计算的。
最后,我们计算出他们的差异。

附加的文件:
Koshi.mq5  6 kb
 
elibrarius:

我在此附上所要求的指标。

它是基于带有指标实例的文件夹中的自定义移动平均线。

SMA计算功能没有变化。
GMA是在一个单独的函数中计算的。
最后,我们计算出他们的差异。

有一张图表的图片会更好。
 
 
elibrarius:

我在此附上所要求的指标。

它是基于带有指标实例的文件夹中的自定义移动平均线。

SMA的计算功能没有改变。
GMA是在一个单独的函数中计算的。
最后,我们计算出他们的差异。

谢谢你!你可以从上图中看到,该指标正在履行其功能。或者说不是吗?我仍然需要做很多工作来更好地理解它。

问题:使用的是什么时期?

 
elibrarius:

看不到任何东西,除了你能看到的没有指标的东西。

M1时期。它写在左角)。

 
Yuriy Asaulenko:
我没有看到任何东西,除了你可以看到没有指标的东西。
因为,你不希望看到。我看到,该指标毫不含糊地预测了下跌,甚至比价格实际下跌的时间还要早(在上升)。
 
Yousufkhodja Sultonov:
谢谢你!从上图中,你可以看到该指标正在履行其功能。或者说是吗?
该指标读取的是公式中给出的内容。但对结果的解释和在其基础上发展TS是一项更困难的任务。
顺便说一下,请检查一下GMA的计数是否正确?

void CalculateGeometricalMA(int rates_total,int prev_calculated,int begin,const double &price[])
  {
   int i,limit;
//--- first calculation or number of bars was changed
   double powr=1/(double)InpMAPeriod;
   if(prev_calculated==0)// first calculation
     {
      limit=InpMAPeriod+begin;
      //--- set empty value for first limit bars
      for(i=0;i<limit-1;i++) gma[i]=1.0;
      //--- calculate first visible value
      double firstValue=1;
     
      for(i=begin;i<limit;i++)
         firstValue*=price[i];
      firstValue=MathPow(firstValue, powr);
      gma[limit-1]=firstValue;
     }
   else limit=prev_calculated-1;
//--- main loop
   for(i=limit;i<rates_total && !IsStopped();i++){
      gma[i]=gma[i-1] * (MathPow(price[i], powr) / MathPow(price[i-InpMAPeriod], powr));
   }
//---
  }
 
Yuriy Asaulenko:

看不到任何东西,除了你能看到的没有指标的东西。

M1时期。它写在左角)。

我说的周期是指计算指标线时 使用的最后历史条数。
 
Yousufkhodja Sultonov:
因为,你不希望看到。我看到,该指标毫不含糊地预测了下跌,甚至比价格实际下跌的时间还要早(在上升)。

是吗?

甚至又看了一遍。

Zy 来自MA的衍生物也会给出同样的东西。甚至还预测了方向)。

 
elibrarius:
该指标计算的是公式中给出的内容。但是解释结果是一项更困难的任务。
顺便说一下,请检查GMA是否正确?

void CalculateGeometricalMA(int rates_total,int prev_calculated,int begin,const double &price[])
  {
   int i,limit;
//--- first calculation or number of bars was changed
   double powr=1/(double)InpMAPeriod;
   if(prev_calculated==0)// first calculation
     {
      limit=InpMAPeriod+begin;
      //--- set empty value for first limit bars
      for(i=0;i<limit-1;i++) gma[i]=1.0;
      //--- calculate first visible value
      double firstValue=1;
     
      for(i=begin;i<limit;i++)
         firstValue*=price[i];
      firstValue=MathPow(firstValue, powr);
      gma[limit-1]=firstValue;
     }
   else limit=prev_calculated-1;
//--- main loop
   for(i=limit;i<rates_total && !IsStopped();i++){
      gma[i]=gma[i-1] * (MathPow(price[i], powr) / MathPow(price[i-InpMAPeriod], powr));
   }
//---
  }
不幸的是,我对代码了解不多,让有识之士通过与给定的公式进行比较来检查,或者将给定的测试中的价格输入原表。我觉得,从数字的顺序来看,你的计数是正确的。