почему нужно использовать функцию массива в MQL4 - PullRequest
0 голосов
/ 23 октября 2019

Я действительно не удовлетворен функцией массива mql4. В справочнике mql4 они не могут объяснить, почему нужно использовать эту функцию. пример, почему мне нужно использовать функцию arrayinitialize

1 Ответ

1 голос
/ 23 октября 2019

Когда вы объявляете какой-то массив, он может содержать там мусор. Скорее всего, у вас будут значения по умолчанию, например 0 или NULL, но мусор может остаться там же. Используя функцию 'ArrayInitialize () `, вы можете быть уверены, что все значения в вашем массиве являются значениями, которые вы там поместили.

string arr2str(const int &array[])//fn to print array, ugly, ends with ,|
  {
   string result="|";
   for(int i=0;i<ArraySize(array);i++)
     {
      result+=(string)i+"="+(string)array[i]+", ";
     }
   return result+"|";
  }
void OnTick()
  {

   int array[8];
   printf("1: %d. %s",ArraySize(array),arr2str(array));
   //receive: 1: 8. |0=0, 1=0, 2=0, 3=0, 4=1995110657, 5=146315416, 6=1, 7=85975080, |
   int result=ArrayInitialize(array,7);
   printf("2: %d %d. %s",result,ArraySize(array),arr2str(array));
   //receive: 2: 8 8. |0=7, 1=7, 2=7, 3=7, 4=7, 5=7, 6=7, 7=7, |

   ExpertRemove();//to stop the test
  }

Как видите, первый массив выводит (1 :)имеет некоторые странные данные. После инициализации никаких проблем с ним нет (2 :) - все семерки, так как я добавил 7 в качестве второго параметра в функции, это может быть и, скорее всего, 0 вместо 7 в ваших кодах.

...