Как использовать массив bool во входных данных эксперта в MQL5?

 

Я пробовал следующий способ, но он дает ошибку.

Следующая ошибка:

bool Use[21]
input bool Use[0] = true;

Следующая ошибка:


Пожалуйста, позвольте мне сделать. Предложите мне другой способ, если он не подходит.

 
jaffer wilson:

Я пробовал следующий способ, но он дает ошибку.

Следующая ошибка:

Следующая ошибка:

Пожалуйста, позвольте мне сделать. Предложите мне другой способ, если он не подходит.

bool Use[21];


Массивы нельзя использовать во входных параметрах.
 
Vladimir Pastushak :


Массивы нельзя использовать во входных параметрах.

Есть ли другое решение для такого состояния? Мне нужно определить 21 значение и сохранить их в массиве внутри OnInit (). Это предложение?

 
jaffer wilson:

Есть ли другое решение для такого состояния? Мне нужно определить 21 значение и сохранить их в массиве внутри OnInit (). Это предложение?

Вводи 21 переменную.

А еще проконсультируйся в англоязычном форуме, там модераторы любят такие вопросы.
 
jaffer wilson:

Есть ли другое решение для такого состояния? Мне нужно определить 21 значение и сохранить их в массиве внутри OnInit (). Это предложение?

Можно сделать строку типа "0;1;1;0;1;01;0;1;0;1" и затем распарсить ее в массив

 
jaffer wilson:

Есть ли другое решение для такого состояния? Мне нужно определить 21 значение и сохранить их в массиве внутри OnInit (). Это предложение?

Как сказал @Vladimir Pastushak используйте строковый параметр например input string USE = "YES;NO;YES;..... и тд.";

YES и NO или ON и OFF более понятны конечному пользователю далекому от программирования. Если делаете только для себя то можно конечно использовать единицу и ноль.

В OnInit()

     string str_use[];

     bool bool_use[];

      int res=StringSplit(USE,StringGetCharacter(";",0), str_use );

      if (res<=0) return(INIT_PARAMETERS_INCORRECT); 

      ArrayResize(bool_use,res);

     for (i=0;i<res;i++)

     {

if (str_use[i]="YES" ) bool_use[i] = true

else  bool_use[i] = false;

     }

 
И какой такой сакральный смысл в массиве bool из 21 элемента если их может быть всего два. 0 или не 0
 
jaffer wilson:

Я пробовал следующий способ, но он дает ошибку.

Пожалуйста, позвольте мне сделать. Предложите мне другой способ, если он не подходит.

bool Use[21];
input bool Use0  = true;
input bool Use1  = false;
...
input bool Use20 = true;

Use[0]=Use0;
Use[1]=Use1;
...
Use[20]=Use20;
 
Alexey Viktorov:
И какой такой сакральный смысл в массиве bool из 21 элемента если их может быть всего два. 0 или не 0

Тоже день ВВС празднуете? 

 
Алексей Тарабанов:

Тоже день ВВС празднуете? 

день БиБиСи - это праздник каждый день :-)

уж как прочиталось

 
bool-массив до 64-х элементов умещается в одной input ulong-переменной.