Помогите разобраться с индикатором - страница 2

 

Вообщем сделал чуть по своему. 
 Индикатор во вложении. 

Вызываю его из Советника: 

input    ENUM_TIMEFRAMES   tf1  = PERIOD_M5;      //Timeerame #1
input    ENUM_TIMEFRAMES   tf2  = PERIOD_M15;     //Timeerame #2
input    ENUM_TIMEFRAMES   tf3  = PERIOD_M30;     //Timeerame #3
input    ENUM_TIMEFRAMES   tf4  = PERIOD_H1;      //Timeerame #4

int handle = -1;
double dir[];
int OnInit(void)
  {
   handle = iCustom(_Symbol,PERIOD_CURRENT,"Vital",tf1,tf2,tf3,tf4);
   ArraySetAsSeries(dir,true);
   ArrayResize(dir,3);
 
   return(INIT_SUCCEEDED);
  }
  
void OnTick(void)
  {
   
   CopyBuffer(handle,1,0,3,dir);
   
   Print (dir[0],"  ", dir[1],"  ", dir[2]);
 }

и получаю ошибку 4802. Почему ? 

Файлы:
Vital_1903.mq5  13 kb
 
Dmitiry Ananiev:

Вообщем сделал чуть по своему. 
 Индикатор во вложении. 

Вызываю его из Советника: 

и получаю ошибку 4802. Почему ? 


//+------------------------------------------------------------------+
//|                                                        eTmp1.mq5 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
input    ENUM_TIMEFRAMES   tf1  = PERIOD_M5;      //Timeerame #1
input    ENUM_TIMEFRAMES   tf2  = PERIOD_M15;     //Timeerame #2
input    ENUM_TIMEFRAMES   tf3  = PERIOD_M30;     //Timeerame #3
input    ENUM_TIMEFRAMES   tf4  = PERIOD_H1;      //Timeerame #4

int handle = -1;
double dir[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit(void)
  {
   handle = iCustom(_Symbol, PERIOD_CURRENT, "Vital_1903.ex5", tf1, tf2, tf3, tf4);
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick(void)
  {
   if(CopyBuffer(handle, 1, 0, 3, dir) != 3)
      return;
   ArraySetAsSeries(dir, true);
   Print(dir[0], "  ", dir[1], "  ", dir[2]);
  }
 
Valeriy Korobeynik:


.ex5"

А разве обязательно добавлять ? я всегда без этого прописываю - всё работает. - или нужно обязательно???  

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

не знаю, у меня так всё отлично работает !

обновил 2

 
SanAlex:

А разве обязательно добавлять ? я всегда без этого прописываю - всё работает. - или нужно обязательно???  

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

В этом случае достаточно точного имени без расширения.

 
Valeriy Korobeynik:

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

В этом случае достаточно точного имени без расширения.

Спасибо ! а то я уже начал инфу искать. И исправлять своего эксперта.