计算趋势线的斜率角。 - 页 21

 

关于交易、自动交易系统和策略测试的论坛

新手对MQL4和MQL5的任何问题,对算法和代码的提示和讨论

Nikolai Semko, 2020.10.26 00:34

你不应该害怕速度。这只是类型转换的一个条件性。
作为角度定义函数的一个变体。

struct PointPriceTime
  {
   double            price;
   datetime          time;
                     PointPriceTime(double p, datetime t) { price=p; time=t; };
   void              Set(double p, datetime t){ price=p; time=t;};
                     PointPriceTime(PointPriceTime &p){ price=p.price; time=p.time; };
                     PointPriceTime() { price=0.0; time=0; };
  };

double Angle(PointPriceTime &p1,PointPriceTime &p2) // возвращает угол в градусах в приведенной системе координат price-price, где по оси X 
  {                                                 // расстояние между x1 и  x2  = N*_Point, где N - количество минутных баров во временном промежутке отрезка. 
   static int tf[9]= {PERIOD_M1,PERIOD_M5,PERIOD_M15,PERIOD_M30,PERIOD_H1,PERIOD_H4,PERIOD_D1,PERIOD_W1,PERIOD_MN1};
   int i=0;
   while(i<9 && SeriesInfoInteger(_Symbol,tf[i],SERIES_FIRSTDATE)>p1.time)
      i++;
   if(i==9)
     {
      Print("Время левой границы вне диапазона исторических данных");
      return DBL_MAX;
     }
   int bar1 = iBarShift(_Symbol,tf[i],p1.time);
   int bar2 = iBarShift(_Symbol,tf[i],p2.time);
   if(bar1==bar2)
      return 0.0;
   return atan((p2.price-p1.price)/((bar1-bar2)*PeriodSeconds(tf[i])*_Point/60))*180/M_PI;
  }

在MT5之后,MT4的感觉实在是太糟糕了。对历史的访问在某种程度上被阉割了。我甚至不是在说虱子。




 
Nikolai Semko:

然后那个 "角落 "会去哪里呢?

 
Dmitry Fedoseev:

然后你把这个 "角度 "放在哪里?

把它带到一分钟一个点,看看有多长,然后得出结论)

 
Valeriy Yastremskiy:

带到一个点上一分钟,看多长时间,然后得出结论)

一分钟内有什么意义?当一切都已经在很久以前减少到每条的点数时,为什么还要把某个地方带进来?

 
Dmitry Fedoseev:

以及为什么在一分钟内?既然所有的东西在很久以前就已经被引导到每条的点数了,为什么还要引导到某个地方呢?

哲学问题。如果我考虑到不同时间段的分形,我有时会以条形来估计速度,但这有点意思,而且得出的分母相同。这不是很有用,但很明显,在小的时间范围内,速度会更高。

可以肯定的是,它有一些东西,我不知道怎么说,是对动态的反映,类似这样的东西。运动的结构是一样的。

 
Valeriy Yastremskiy:

哲学问题。我一直都在努力,但我想说的是,我已经在努力了。"我想说的是,我已经在努力了,但我想说的是,我已经在努力了。我没有看到任何价值,但很明显,小时间段的速度更高。

可以肯定的是,它有一些东西,我不知道怎么说,是对动态的反映,类似这样的东西。运动的结构是一样的。

你可以随心所欲地幻想,幻想任何你喜欢的事情。你甚至可以计算出卡车司机每趟去小便的次数,甚至将其与总距离相加,并感叹--哦,它变得长了30米。

 
Dmitry Fedoseev:

你可以幻想任何你喜欢的东西。你甚至可以计算卡车司机每次出行小便的次数,甚至将其与总距离相加,并惊叹--哦,它多了30米。

我不具备这种直接的思维方式。我走的是艰难的道路。首先,我看我可以测量、计算什么,然后才考虑我可以用它做什么。

问题是,从当前栏位开始向左计算,走廊的尽头有多容易?走廊可以以低点和高点之差的相对变化,低点和高点的速度可以计算出来,但这是很难的。我想让它变得更简单。

分钟,具有极端性。

 

简洁是一个相对的概念。在什么意义上简单?在实施方面最简单--只要在最后一个小节中循环即可。

如果在性能方面最简单...有很多的问题。在这种情况下,我们应该尝试从左到右,并且在每个小节上只停留一次。如果它是在任何可能的情况下。至少应该努力争取。

 
Dmitry Fedoseev:

简洁是一个相对的概念。在什么意义上简单?在实施方面最简单--只要在最后一个小节中循环即可。

如果在性能方面最简单...有很多的问题。在这种情况下,我们应该尝试从左到右,并且在每个小节上只停留一次。如果它是在任何可能的情况下。至少,我们应该为此而努力。

很明显,我们应该通过条形或极值进行循环。极限值数据以条数和价格的形式提供。把什么放在条件中。走廊可以有不同的宽度和坡度。当然,如果它的宽度较小,我们将在走廊上,但这是一个僵局的解决方案。而且我不能做一个动态的。这是为了第一次计算,以了解当前酒吧有一个走廊。

我还没有考虑到性能和优化问题。

 
Valeriy Yastremskiy:

很明显,它在条形或极值中循环。极限值数据是以条数和价格的形式存在。把什么放在条件中。走廊可以有不同的宽度和坡度。当然,如果它的宽度较小,我们将在走廊上,但这是一个僵局的解决方案。而且我不能做一个动态的。这是为了第一次计算,以了解当前酒吧有一个走廊。

我还没有考虑到性能和优化问题。

我们可以计算出顶部和底部的线性回归。界限之间的距离应相对于标准偏差来衡量。

你可以通过上界和下界的B系数的相关性来估计通道的平坦程度。如果需要这样的准确性。

通道的坡度也由B系数决定。

...

或者,你可以简单地计算两个相邻分形之差的平均值。