Вопрос по новому компилятору

 

Такой вопрос:

При компилирование из mq4 d ex4, индикатор работает нормально и стрелки подсказки при пересечений линий у индикаторов видны. Компилирует без ошибок.

Вставляю команду  #property strict. Компилирует без ошибок, но стрелки подсказки исчезают.

В чём может быть причина? На что стоит обратить внимание в первую очередь?

Изменились ли команды ввода стрелок? Поменял коды стрелок, поставил константы, не помогает. Убираю #property strict стрелки появляются.

Спасибо заранее за ответ.

 
vapostolidi:

На что стоит обратить внимание в первую очередь?

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

 
Scriptong:

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

А код я забыл)): 

extern  int    ArrowType        = 2;
extern  int    arrowthickness   = 2;


double CrossUp[];
double CrossDn[];
double trend[];


int init()
{
   IndicatorBuffers(3);   
   
   if (ArrowType == 0) {
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0,DRAW_ARROW,0,arrowthickness); SetIndexArrow(0,119);
   SetIndexBuffer(1, CrossDn );  SetIndexStyle(1,DRAW_ARROW,0,arrowthickness); SetIndexArrow(1,119);
   }
   if (ArrowType == 1) {
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW,0,arrowthickness); SetIndexArrow(0, 233);
   SetIndexBuffer(1, CrossDn);  SetIndexStyle(1, DRAW_ARROW,0,arrowthickness); SetIndexArrow(1, 234);
   }
   else if (ArrowType == 2) { 
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW,0,arrowthickness); SetIndexArrow(0, 225);
   SetIndexBuffer(1, CrossDn);  SetIndexStyle(1, DRAW_ARROW,0,arrowthickness); SetIndexArrow(1, 226);
   }
   else if (ArrowType == 3) { 
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW,0,arrowthickness); SetIndexArrow(0, 241);
   SetIndexBuffer(1, CrossDn);  SetIndexStyle(1, DRAW_ARROW,0,arrowthickness); SetIndexArrow(1, 242);
   }
   else if (ArrowType == 4) { 
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW,0,arrowthickness); SetIndexArrow(0, 221);
   SetIndexBuffer(1, CrossDn);  SetIndexStyle(1, DRAW_ARROW,0,arrowthickness); SetIndexArrow(1, 222);
   }
   else if (ArrowType == 5) { 
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW,0,arrowthickness); SetIndexArrow(0, 217);
   SetIndexBuffer(1, CrossDn);  SetIndexStyle(1, DRAW_ARROW,0,arrowthickness); SetIndexArrow(1, 218);
   }
   else if (ArrowType == 6) { 
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW,0,arrowthickness); SetIndexArrow(0, 228);
   SetIndexBuffer(1, CrossDn);  SetIndexStyle(1, DRAW_ARROW,0,arrowthickness); SetIndexArrow(1, 230);
   }
   else if (ArrowType == 7) { 
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW,0,arrowthickness); SetIndexArrow(0, 236);
   SetIndexBuffer(1, CrossDn);  SetIndexStyle(1, DRAW_ARROW,0,arrowthickness); SetIndexArrow(1, 238);
   }
   else if (ArrowType == 8) { 
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW,0,arrowthickness); SetIndexArrow(0, 246);
   SetIndexBuffer(1, CrossDn);  SetIndexStyle(1, DRAW_ARROW,0,arrowthickness); SetIndexArrow(1, 248);
   }
   else if (ArrowType == 9) { 
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW,0,arrowthickness); SetIndexArrow(0, 67);
   SetIndexBuffer(1, CrossDn);  SetIndexStyle(1, DRAW_ARROW,0,arrowthickness); SetIndexArrow(1, 68);
   }
   else if (ArrowType == 10) { 
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW,0,arrowthickness); SetIndexArrow(0, 71);
   SetIndexBuffer(1, CrossDn);  SetIndexStyle(1, DRAW_ARROW,0,arrowthickness); SetIndexArrow(1, 72);
   }

   SetIndexBuffer(2, trend);
   return(0);
}
int deinit() {  return(0); }
 

Омг, руки прям сами тянутся отрефакторить

extern  int    ArrowType        = 2;
extern  int    arrowthickness   = 2;

double CrossUp[];
double CrossDn[];
double trend[];

int UpArrows[] = {119, 233, 225, 241, 221, 217, 228, 236, 246, 67, 71};
int DnArrows[] = {119, 234, 226, 242, 222, 218, 230, 238, 248, 68, 72};

int init()
{
   IndicatorBuffers(3);   
   
   SetIndexBuffer(0, CrossUp);  SetIndexStyle(0, DRAW_ARROW, 0, arrowthickness); SetIndexArrow(0, UpArrows[ArrowType]);
   SetIndexBuffer(1, CrossDn );  SetIndexStyle(1, DRAW_ARROW, 0, arrowthickness); SetIndexArrow(1, DnArrows[ArrowType]);
   SetIndexBuffer(2, trend);
   return(0);
}
 
TheXpert:

Омг, руки прям сами тянутся отрефакторить

Спасибо большое за оптимизацию кода, но причина в другом буду ломать голову)))
 
vapostolidi:
Спасибо большое за оптимизацию кода, но причина в другом буду ломать голову)))
Надо весь код.