[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 366

 

下午好!

你能告诉我如何在一个给定的时期内,在图上找到3个最大值(或最小值),记住它们并用于进一步计算吗?

或者给我一个代码的链接。

我在论坛上搜索了这个代码,但通过搜索没有成功。

谢谢你。

 
LOA:

下午好!

你能告诉我如何在一个给定的时期内,在图上找到3个最大值(或最小值),记住它们并用于进一步计算吗?

或者给我一个代码的链接。

我在论坛上搜索了这个代码,但通过搜索没有成功。

谢谢你。


例如,我在欧罗巴克上设置了一个为期一天的期限。打开M15。请看下面的截图。红色垂直线表示当天的边界。分形指标显示,在这个区间有三个以上的最小值和最大值。那么,你要找的代码应该如何计算出你需要的这些极值呢?

 
LOA:

下午好!

你能告诉我如何在一个给定的时期内,在图上找到3个最大值(或最小值),记住它们并用于进一步计算吗?

或者给我一个代码的链接。

我在论坛上搜索了这个代码,但通过搜索没有成功。

谢谢。

https://docs.mql4.com/ru/series/iHighest

https://docs.mql4.com/ru/series/iLowest
 

Vladimir和Vadim,非常感谢你们的回答

我发现一个最大的问题是...

1.

mas_UP[]//上极值的数组。

int index = iHighest(NULL,0,2,MODE_HIGH,20,i);
      double MAX = mas_UP[index];//первый максимум

2.或者像这样(用分形)

int size_up=ArrayRange(mas_UP,0);
      for (s=i;s<=size_up;s++);
      int index=ArrayMaximum(mas_UP);
      double MAX = UP[s];

我发现这很难(我还在学习)。

我可以想出一个办法,将发现的最大的元素清零,然后再次滚动同一个数组--它将找到第二个最大,然后是第三个.....。

if (MAX>0)
      int n=n+1; //счётчик экстремумов
      mas_UP[index]=0;

但我不确定情况是否如此。

 
LOA:

Vladimir和Vadim,非常感谢你们的回答

我发现一个最大的...

1.

2.左右(有分形的)。

但如何进行呢? 我不知所措(我仍在学习中)。

我可以想出一个办法,将一个被发现为最大值的元素归零,然后再次滚动浏览同一个数组--找到第二个最大值,然后是第三个.....。

但我不确定情况是否如此。


那么,你是想要某个区间的 最后三个 最大值,还是想要其他的最大值?
 
drknn:

那么,你是要给定区间内的 最后三个 最大值,还是要任何其他的最大值?


期间有三个高点,不是最新的。或者说,不一定是最新的。

 
LOA:


一个时期内有三个最大值,不是最后一个。或者说,不一定是最后的那些。


哦。好吧,我给你充分的挑战。

有一个特定的时间间隔。需要从这个区间的三个样本最大值。

要解决这个问题,你将需要以下东西。

- 一种识别给定区间边界的算法

- 一种寻找最大值的算法

- 一种从发现的最大值中识别出所需最大值的算法。

P.S.

由于你事先不知道需要什么最大值,也不知道到底如何确定最大值,所以你不会找到现成的代码。这意味着,依次解决上述问题,就能得到你所需要的代码。

 
drknn:


哦,孩子。好吧,我给你整个问题。

有一个特定的时间间隔。你需要从这个区间的三个样本最大值。

要解决这个问题,你将需要以下东西。

- 一种识别给定区间边界的算法

- 一种寻找最大值的算法

- 一种从发现的最大值中识别出适当的最大值的算法。


正确表述的问题几乎就是一个解决方案。谢谢你。

第一个我可以处理,第二个--也可以。但最后一点--说实话,我不知道,但我会思考。

int n=0;//счётчик максимумов
      if (MAX>0)
      int n=n+1;
      mas_UP[index]=0;

这个方案是正确的想法,还是应该在不同的方向上挖掘,即

清空被发现为最大值的数组元素,然后再次滚动同一个数组--我们将找到第二个最大值,然后是第三个.....。

 
LOA:


一个正确表述的问题几乎就是一个解决方案。谢谢你。

我可以处理第一个问题,第二个问题也可以。最后一点--说实话我不知道,但我会考虑的。

这是正确的想法吗,还是我在不同的方向上挖掘,即。

将数组中被发现为最大值的元素归零,然后再次滚动同一个数组--我们将找到第二个最大值,然后是第三个.....。


现在对代码一点都不感兴趣--做一个算法--程序到底应该怎么做?否则你就会停滞不前。任何程序都是一个蠢货--它需要精确的指令。为了做到这一点,我们需要确切地知道该程序应该做什么。也只有这样,我们才能选择如何把它放到程序代码中。
 
drknn:

你现在可能对代码完全不感兴趣--做一个算法--到底应该怎么做这个程序。否则你将停滞在原地。任何程序都是一个蠢货--它需要精确的指令。要做到这一点,我们需要确切地知道该程序应该做什么。也只有这样,我们才能选择如何把它放到程序代码中。

好的。我们明天会有算法,因为在圣彼得堡已经是凌晨两点半了,我们已经没有精力了。