Сортировка и вывод данных.

 

Задача отсортировывать по "Result" начиная с самого большого и выводить с помощи  Print в журнал, но в то же время надо сохранить индексы (Deviation и SL). Если была проста сортировка то можно было-бы записать "Result" в массив и отсортировывать с ArraySort но нужно еще видеть индексы (Deviation и SL). Есть предложение как это сделать?

int OrderDeviStep=10;
int StartOrderDevi=0;
int EndOrderDevi=200;
int SLStep=5;
int StartSL=20;
int EndSL=100;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void VirtualOptimization()
  {
   for(int i=StartOrderDevi; i<EndOrderDevi; i+=OrderDeviStep)
     {
      for(int i1=StartSL; i1<EndSL; i1+=SLStep)
        {
         Print(" Order Deviation= ",i," p, Order SL= ",i1," p, Result= ",DoubleToStr(StatisticInputs(i,i1),0));
        }
     }
  }
//+------------------------------------------------------------------+.

 
Nauris Zukas:

Задача отсортировывать по "Result" начиная с самого большого и выводить с помощи  Print в журнал, но в то же время надо сохранить индексы (Deviation и SL). Если была проста сортировка то можно было-бы записать "Result" в массив и отсортировывать с ArraySort но нужно еще видеть индексы (Deviation и SL). Есть предложение как это сделать?

Использовать двумерный массив, где в одном столбце данные, а в другом - индексы. После ArraySort все получится. Подробности - поиск или форумчане.

 
fxsaber:

Использовать двумерный массив, где в одном столбце данные, а в другом - индексы. После ArraySort все получится. Подробности - поиск или форумчане.

С столбцом данные понятно, но в другом столбце будет несколько значение? Пока не понятно но посмотрю в форуме.

 
Nauris Zukas:

С столбцом данные понятно, но в другом столбце будет несколько значение? Пока не понятно но посмотрю в форуме.

fxsaber имел ввиду "где в одном столбце данные, а в ДРУГИХ - индексы"
Двумерный массив может иметь больше 2х столбцов.
 
Andrei Fandeev:
fxsaber имел ввиду "где в одном столбце данные, а в ДРУГИХ - индексы"
Двумерный массив может иметь больше 2х столбцов.

Ясно, спасибо. Тогда этот вариант не подоидет, потому как в дальнейшем будет больше чем 4 столбца. Из справочника: "Допускаются не более чем четырехмерные массивы".
Я вот подумал, Массив может состоять из в одного столбца данных, и другого столбца string?

 
Nauris Zukas:

Ясно, спасибо. Тогда этот вариант не подоидет, потому как в дальнейшем будет больше чем 4 столбца. Из справочника: "Допускаются не более чем четырехмерные массивы".
Я вот подумал, Массив может состоять из в одного столбца данных, и другого столбца string?

Вы путаете Размерность массива и количество Столбцов.
Представьте плоскую таблицу из нескольких столбцов и нескольких строк. Это и есть Двумерный массив.

Массив[10][10] = таблица в 10 строк и 10 столбцов. т.е. 100 ячеек.

Трёхмерный массив соответственно как (образно) 10 листов с двумерными таблицами положенные один лист на другой. т.е. появилсся ещё один размер "вглубь, не влево-вправо или вверх-вниз". 1000 ячеек в массиве по 100 в каждом слое. 

Данные в таблице должны быть одного типа.

 
Andrei Fandeev:
Вы путаете Размерность массива и количество Столбцов.
Представьте плоскую таблицу из нескольких столбцов и нескольких строк. Это и есть Двумерный массив.

Массив[10][10] = таблица в 10 строк и 10 столбцов. т.е. 100 ячеек.

Данные в таблице должны быть одного типа.

Я имел в виду что дальнейшем будет больше индексов.
Массив[i][i1][i2][i3][i4][Result] - такой массив не можно сделать. Правильно?

 
Nauris Zukas:

Я имел в виду что дальнейшем будет больше индексов.
Массив[i][i1][i2][i3][i4][Result] - такой массив не можно сделать. Правильно?

Вы опять не поняли.
Создайте таблицу в Экселе со всеми значениями которые Вы хотите иметь. Всё поместится в один двумерный массив если данные одного типа.
Допустим у вас значений Result будет 25, и требуется к каждому из Result ещё сохранить Deviation и SL
Значит будет Массив [25][3]
25 строк в таблице и 3 столбца, где в каждый из столбцов записывается отдельно Result , Deviation , SL
 
Nauris Zukas:

в дальнейшем будет больше чем 4 столбца.

Хоть сто.

Nauris Zukas:

Массив может состоять из в одного столбца данных, и другого столбца string?

Что угодно. За кодом к форумчанам.

 
Andrei Fandeev:
Вы опять не поняли.
Создайте таблицу в Экселе со всеми значениями которые Вы хотите иметь. Всё поместится в один двумерный массив если данные одного типа.
Допустим у вас значений Result будет 25, и требуется к каждому из Result ещё сохранить Deviation и SL
Значит будет Массив [25][3]

Вы не поняли меня, будет больше переменные - Deviation,  SL, Trail, TimeStep, TP. Я здесь не правильно их назвал индексами может по этому такая путаница. Для каждого из них будет функция for и тогда получается более чем четырехмерные массив.

P.S. Я с утра еще раз всё обдумаю, голова уже не работает.
 
fxsaber:

Что угодно. За кодом к форумчанам.

" форумчана " ведь здесь? Или что-то другое имеете в виду? :)