Справочник MQL4

ArraySort

Сортировка числовых массивов по первому измерению. Сортировка  производится с учетом флага AS_SERIES.

bool  ArraySort(
   void&       array[]                 // массив для сортировки
   int         count=WHOLE_ARRAY,      // количество элементов
   int         start=0,                // начальный индекс
   int         direction=MODE_ASCEND   // направление сортировки
   );

Параметры

array[]

[in][out]  Числовой массив для сортировки.

count

[in]  Количество элементов.

start

[in]  Начальный индекс.

direction

[in]  Направление сортировки массива. Возможные значения:

MODE_ASCEND - сортировка в порядке возрастания

MODE_DESCEND - сортировка в порядке убывания.

Возвращаемое значение

Возвращает true в случае успеха, иначе false.

Пример:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- пример сортировки одномерного массива
   double num_array[5]={4,1,6,3,9};
//--- массив содержит величины 4,1,6,3,9
   ArraySort(num_array);
//--- теперь массив отсортирован 1,3,4,6,9
   ArraySort(num_array,WHOLE_ARRAY,0,MODE_DESCEND);
//--- теперь массив отсортирован 9,6,4,3,1
 
//--- пример сортировки двумерного массива по первому измерению   
//--- заполнение массива 5x2
   int  DataArray[5][2]={{7,3},{3,1},{57,14},{12,4},{11,1}};
//--- сортировка массива DataArray[][] по первому измерению (по возрастанию значений)
   ArraySort(DataArray,WHOLE_ARRAY,0,MODE_ASCEND);
//--- вывод результатов
   for(int i=0; i<5; i++)
     {
      string str="index "+IntegerToString(i)+": ";
      for(int j=0; j<2; j++)
        {
         if(j==0) str+="{"else str+=",";
         str+=IntegerToString(DataArray[i,j]);
         if(j==1) str+="}";
        }
      Print(str);
     }
//--- результат      
//index 0: {3,1}
//index 1: {7,3}
//index 2: {11,1}
//index 0: {12,4}
//index 4: {57,14}
  }