Есть ли ошибка в коде?

 
Есть ли ошибка в коде скрипта?
extern int Persgl = 10;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----    
int i; 
double Z_buf[30];
for(i=0; i<=29; i++)
   {
    Z_buf[i]=iRSI(NULL , 0, 14, 0, i);
    //Print("Z_buf[",i,"]=",Z_buf[i]);
   }
double Sgl_Z_0 = iMAOnArray(Z_buf, 0, Persgl, 0, MODE_SMA, 0); 
double Sgl_Z_1 = iMAOnArray(Z_buf, 0, Persgl, 0, MODE_SMA, 1);      
double Sgl_Z_2 = iMAOnArray(Z_buf, 0, Persgl, 0, MODE_SMA, 2);
Alert("Sgl_Z[",0,"]=",Sgl_Z_0,"\n",
      "Sgl_Z[",1,"]=",Sgl_Z_1,"\n",
      "Sgl_Z[",2,"]=",Sgl_Z_2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Не произведена явная инициализация массива.
 
valenok2003 >>:
где инициализация буфера?
double Z_buf[30];
 
khorosh >>:


нужно явно  
double Z_buf[30] = {1.0, 2.0, ..... 30.0};


Массив может быть инициализирован только константами соответствующего типа. Одномерные и многомерные массивы инициализируются одномерной последовательностью констант, перечисленных через запятую. Последовательность обрамляется фигурными скобками:

int Mas_i[3][4] = { 0, 1, 2, 3,   10, 11, 12, 13,   20, 21, 22, 23 };
 
double Mas_d[2][3] = { 0.1, 0.2, -0.3,    -10.2, 1.5, 7.0 };
 
bool Mas_b[5] = { false, true, false, true, true }

В инициализирующей последовательности допускается пропуск одной или нескольких констант

 
Svinozavr >>:

? Это-то здесь причем? А массив и так инициализируется - в цикле.

Не смотрел подробно, но что точно, так это невозможность использования extern - нет команды для препроцессора в заголовке.

А какая там должна быть команда?

 
valenok2003 >>:


нужно явно
double Z_buf[30] = {1.0, 2.0, ..... 30.0};

откуда такая инфа? И зачем так нужно? Непонимаю.

 
valenok2003 >>:


нужно явно
double Z_buf[30] = {1.0, 2.0, ..... 30.0};

Да? А зачем? )))

Вот строку:

#property show_inputs
вставить надо - иначе параметр не изменишь при запуске скрипта.
 
SofTAA >>:

откуда такая инфа? И зачем так нужно? Непонимаю.

Да не нужно. Размер объявлен. Да и сам массив потом в цикле заполняется.

 
Svinozavr >>:

Да не нужно. Размер объявлен. Да и сам массив потом в цикле заполняется.

Да я тоже так думаю, причем я что то на вскидку ни одного языка не придумал чтобы не пропустил такую конструкцию.

 
Svinozavr >>:

Да? А зачем? )))

Вот строку:

вставить надо - иначе параметр не изменишь при запуске скрипта.



Это я знаю, меня интересует есть ли ошибки в функции start()?

 
khorosh писал(а) >>
Есть ли ошибка в коде скрипта?



Надо сделать SetAsSerias() для массива Z_buf.
Причина обращения: