新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1208

 
Maxim Kuznetsov:

但不要在没有全局目标的情况下,随意对数据进行分类。

从目前的项目来看:我们取一个(短)数组,输出的是一个按正确顺序排列的元素索引。

void BubleSortIndex5(double &data[5],int &index[5])
{
   for(int i=0;i<5;i++)
      index[i]=i;
   for(int i=0;i<4;i++) {
      for(int j=1;j<5;j++) {
         if (data[index[i]]>data[index[j]]) {
            int tmp=index[i];
            index[i]=index[j];
            index[j]=tmp;
         }
      }
   }
}


对于较大的数组,我们需要改变排序算法(冒泡法对较大的数组不起作用)--改变它。

主要的信息是:不要碰源数据。可以用引用操作,也可以用数组索引操作,效果更好。否则,信息就会丢失,而这将是以后急需的。

非常感谢你

".....使用链接,或者更好的是使用数组索引 来操作。否则就会丢失信息,而这些信息是以后需要的...."

这是我第一次听说参考操作。如果你能告诉我在哪里可以读到这方面的内容,我将不胜感激,为了了解用参考文献操作和用源数据操作之间的区别,我不记得科瓦廖夫的教科书中有这样的题目。

 

同事们,请告知为什么在达到理想的蜡烛音量时,声音会停止播放。

声音文件在SOUNDS文件夹中,当我设置警报时,文件在正常播放,但指示灯中没有声音。

或者,你需要一个专门的文件夹,里面有指标的声音吗?


/----指标计算的 主循环

for(bar=limit; bar>=0 && !IsStopped(); bar--)
{
Range=(high[bar]-low[bar])/_Point;
IndBuffer[bar]=Range;

if(Range<5)
{
如果(prev_calculated > 0 && Flag==0)
{
Flag=1;
}
}
if(Range>=Threshold){
clr=0;
if (prev_calculated > 0 && Flag==1 )
{
Flag=0;

PlaySound("zummer");


}
}

附加的文件:
 
ANDREY:

非常感谢您的快速回复。在我的案例中,数组元素的 每个值都是唯一的,并且存在于一个实例中。也就是说,数值5和其他数值一样,并不重复。

在我的例子中,值5可能不存在于一个未排序的数组中。这意味着,未排序数组中的一些单元格可能是空的。
但如果值5不在未排序数组中,那么我就不能在ArrayBsearch() 函数中指定值5作为第二个参数。只有未排序数组中必然存在的值才能进入这个函数
谢谢你的帮助。

如果你不打算对数组进行排序,为什么需要ArrayBsearch()?要找到一个数字,你只需要将你要找的数字与数组单元格中的数字进行简单的交替比较。如果你要找的号码不在那里,就退回一个假号码。

//+------------------------------------------------------------------+
//|                                                  FindInArray.mq4 |
//|                                       Copyright 2020, © Cyberdev |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, © Cyberdev"
#property version   "1.00"
#property strict

#property script_show_inputs

#define  size1 2 
#define  size2 10

input double value = 5;
input int index = 0;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int vIndex = -1;

bool searshValue(double & array2D[2][], const int _len, const int _index, const double _value) {
  int i;
  for(i = 0; i < _len; i++) {
    if(NormalizeDouble(array2D[_index][i], _Digits) == NormalizeDouble(_value, _Digits)) {
      vIndex = i;
      return true;
    }
  }
  return false;
}

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() {
  double array[size1][size2] = {
    {10,9,8,7,6,5,4,3,2,1}, 
    {10,3,8,9,2,1,1,8,8,6}
  };
  
  if(searshValue(array, size2, index, value)) 
    Print("value1 array["+(string)index+"]["+(string)vIndex+"]: ", array[index][vIndex]);
  else
    Print("Value: "+(string)value+" not found!");
}
//+------------------------------------------------------------------+
 
Mihail Matkovskij:

那么,如果你根本不想对数组进行排序,为什么还需要ArrayBsearch()?要找到一个数字,你只需要将你要找的数字与数组单元格中的数字进行简单的交替比较。如果你要找的号码不在那里,就退回一个假号码。

非常感谢你。谢谢你,我学到了有用的信息,增强了我对MQL4的认识。

 
ANDREY:

非常感谢你。多亏了你,我学到了宝贵的信息,拓宽了我的视野和对MQL4的认识。

很高兴我能提供帮助。

 
Mihail Matkovskij:

那么,如果你根本不想对数组进行排序,为什么还需要ArrayBsearch()?要找到一个数字,你只需要将你要找的数字与数组单元格中的数字进行简单的交替比较。如果你要找的数字不在那里,只需返回一个假数字。

我的理解是否正确,函数

searshValue ()

不是从MQL4或甚至从MQL5?

 
Mihail Matkovskij:

很高兴能提供帮助。

我希望有更多像你这样的人......,他们乐于助人。

 
ANDREY:

我的理解是否正确,函数

不是从MQL4或甚至MQL5开始?

仔细看看这个例子https://www.mql5.com/ru/forum/160683/page1208#comment_17279150 。 你在那里没有发现什么?

这个功能。

bool searshValue(double & array2D[2][], const int _len, const int _index, const double _value) {
  int i;
  for(i = 0; i < _len; i++) {
    if(NormalizeDouble(array2D[_index][i], _Digits) == NormalizeDouble(_value, _Digits)) {
      vIndex = i;
      return true;
    }
  }
  return false;
}
你应该更小心一点!
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2020.07.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 

你好,我需要帮助,我通过一家经纪公司在这个平台上开了一个账户,该公司不愿意提取我的资金,我应该怎么办?

 
Ботагоз Битабарова:

你好!我需要帮助,在这个平台上为我开了一个账户,通过一家经纪公司,不想提取我的资金,怎么办?

这个资源与经纪公司没有任何关系。