Можно ли так реализовать ввод в iCustom

 

Пишу "прокладку" в которой будут объединяться сигналы нескольких индикаторов.
Подскажите могу ли я сделать ввод своих параметров индикатора из настроек таким образом:

input string  IndicatorName      = "My Indicators";                             //Название индикатора
extern string  iCustomParam       = "параметры через разделитель , (Запятая)";   //Настройки индикатора
input int      Shift              = 1;                                           //Сдвиг

........
int start()
{
    double buy1 = iCustom(Symbol(),0,IndicatorName,iCustomParam,BAY,0+Shift);

}
Пыталась найти ответ на форуме, однако не нашла - скорее всего запрос не верно пишу, так как не знаю как это спросить правильно.
 
Natalya Smirnova:

Пишу "прокладку" в которой будут объединяться сигналы нескольких индикаторов.
Подскажите могу ли я сделать ввод своих параметров индикатора из настроек таким образом:

Пыталась найти ответ на форуме, однако не нашла - скорее всего запрос не верно пишу, так как не знаю как это спросить правильно.

Нет, не верно в справке есть все рекомендации по iCustom

 
Alekseu Fedotov #:

Нет, не верно в справке есть все рекомендации по iCustom

Благодарю Вас. Я конечно же смотрела то, что написано в Справке. Просто для меня это не совсем ясно так как:

В справке написано

double  iCustom( 
   string       symbol,           // имя символа 
   int          timeframe,        // таймфрейм 
   string       name,             // папка/имя_пользовательского индикатора 
   ...                            // список входных параметров индикатора 
   int          mode,             // источник данных 
   int          shift             // сдвиг 
   );

// список входных параметров индикатора  -

читаю далее

double val=iCustom(NULL,0,"SampleInd",13,1,0);

Получается, что 13 это некоторая переменная индикатора.
Вот я и подумала - а почему ее не внести таким образом

extern string  IndicatorName      = "My Indicator";                              //Название индикатора 
extern string  iCustomParam       = "13";                                        //Настройки индикатора

buy1 = iCustom(Symbol(),0,IndicatorName,iCustomParam,BAY,1,0);
 
Natalya Smirnova #:


Вы передаёте переменную с типом string, а в индикаторах они обычно бываю и другого типа например int или double.

Передавать в iCustom  параметры индикатора нужно в том же порядке в каком они расположены в индикаторе и с тем же типом.

 

да не получится - можно костыль типа такого городить

if(H[i]==0){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],I[i][u][0],I[i][u][1]);}
if(H[i]==1){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),I[i][u][0],I[i][u][1]);}
if(H[i]==2){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),I[i][u][0],I[i][u][1]);}
if(H[i]==3){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),I[i][u][0],I[i][u][1]);}
if(H[i]==4){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),I[i][u][0],I[i][u][1]);}
if(H[i]==5){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),I[i][u][0],I[i][u][1]);}
if(H[i]==6){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),I[i][u][0],I[i][u][1]);}
if(H[i]==7){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),I[i][u][0],I[i][u][1]);}
if(H[i]==8){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),I[i][u][0],I[i][u][1]);}
if(H[i]==9){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),I[i][u][0],I[i][u][1]);}
if(H[i]==10){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),I[i][u][0],I[i][u][1]);}
if(H[i]==11){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),I[i][u][0],I[i][u][1]);}
if(H[i]==12){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),(result2[i][11]),I[i][u][0],I[i][u][1]);}
if(H[i]==13){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),(result2[i][11]),(result2[i][12]),I[i][u][0],I[i][u][1]);}
if(H[i]==14){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),(result2[i][11]),(result2[i][12]),(result2[i][13]),I[i][u][0],I[i][u][1]);}
if(H[i]==15){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),(result2[i][11]),(result2[i][12]),(result2[i][13]),(result2[i][14]),I[i][u][0],I[i][u][1]);}
if(H[i]==16){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),(result2[i][11]),(result2[i][12]),(result2[i][13]),(result2[i][14]),(result2[i][15]),I[i][u][0],I[i][u][1]);}
if(H[i]==17){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),(result2[i][11]),(result2[i][12]),(result2[i][13]),(result2[i][14]),(result2[i][15]),(result2[i][16]),I[i][u][0],I[i][u][1]);}
if(H[i]==18){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),(result2[i][11]),(result2[i][12]),(result2[i][13]),(result2[i][14]),(result2[i][15]),(result2[i][16]),(result2[i][17]),I[i][u][0],I[i][u][1]);}
if(H[i]==19){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),(result2[i][11]),(result2[i][12]),(result2[i][13]),(result2[i][14]),(result2[i][15]),(result2[i][16]),(result2[i][17]),(result2[i][18]),I[i][u][0],I[i][u][1]);}
if(H[i]==20){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),(result2[i][11]),(result2[i][12]),(result2[i][13]),(result2[i][14]),(result2[i][15]),(result2[i][16]),(result2[i][17]),(result2[i][18]),(result2[i][19]),I[i][u][0],I[i][u][1]);}
if(H[i]>=21){
IND[i][u][0] = iCustom(Symbol(),SET1[i][0],In[i],(result2[i][0]),(result2[i][1]),(result2[i][2]),(result2[i][3]),(result2[i][4]),(result2[i][5]),(result2[i][6]),(result2[i][7]),(result2[i][8]),(result2[i][9]),(result2[i][10]),(result2[i][11]),(result2[i][12]),(result2[i][13]),(result2[i][14]),(result2[i][15]),(result2[i][16]),(result2[i][17]),(result2[i][18]),(result2[i][19]),(result2[i][20]),I[i][u][0],I[i][u][1]);}
 
Aleksey Semenov #:

да не получится - можно костыль типа такого городить

Вот спасибо за конструктивный ответ!
Я понимаю, что я могу ошибаться и именно поэтому тут совета спрашиваю.
Потому-что я знаю, что есть решения в других индикаторах и "прокладках" поэтому не сдаюсь.

Спасибо еще раз!
 
Aleksey Semenov #:

да не получится - можно костыль типа такого городить

такой костыль годится только если все параметры индикатора одного типа. в общем случае костыль гораздо хуже