ФОРТС индикатор INIT_FAILED

 

Добрый день!

В индикаторе, при инициализации, происходит ошибка (return(INIT_FAILED) ),

но индикатор всё-равно загружается.

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
  time_frame = PERIOD_CURRENT;

  if ( !CheckLoadHistory( _Symbol, time_frame, start_time ) )
  {
    return( INIT_FAILED );     
  }

  return( INIT_SUCCEEDED );
}

  

Как сделать чтобы не загружался? 

 
Mikalas:

Добрый день!

В индикаторе, при инициализации, происходит ошибка (return(INIT_FAILED) ),

но индикатор всё-равно загружается.

  

Как сделать чтобы не загружался? 

А на код функции, возвращающей ложь можно взглянуть?
 
Tapochun:
А на код функции, возвращающей ложь можно взглянуть?

Извините, не вижу в этом никакого смысла.

Я ставил принт перед return(INIT_FAILED), принт выводился 

Легко проверить достоверность моего вопроса: 

int OnInit()
{
  return( INIT_FAILED );
}
 
Mikalas:

Извините, не вижу в этом никакого смысла.

Я ставил принт перед return(INIT_FAILED), принт выводился 

Легко проверить достоверность моего вопроса: 

Даже деление на 0 не помогает :)

Только из эксперта отслеживать хэндл и если он кривой - удалять индикатор с графика. 

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

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   int c = 0;
   int b = 1/c;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Mikalas:

Извините, не вижу в этом никакого смысла.

Я ставил принт перед return(INIT_FAILED), принт выводился 

Хорошо. Проверьте этот индикатор. Тестер явно косячит с выводом, но в реальном времени все однозначно. Завершение и OnCalculate() не вызывается. Ищите ошибку у себя.

Файлы:
 
Tapochun:

Хорошо. Проверьте этот индикатор. Тестер явно косячит с выводом, но в реальном времени все однозначно. Завершение и OnCalculate() не вызывается. Ищите ошибку у себя.

 
Tapochun:

Хорошо. Проверьте этот индикатор. Тестер явно косячит с выводом, но в реальном времени все однозначно. Завершение и OnCalculate() не вызывается. Ищите ошибку у себя.

Так он остается висеть в списке индикаторов после этого.
 
MigVRN:
Так он остается висеть в списке индикаторов после этого.

Об этом-то и вопрос!!!

INIT_FAILED, а он висит на графике и в списке! 

 
MigVRN:

Даже деление на 0 не помогает :)

Только из эксперта отслеживать хэндл и если он кривой - удалять индикатор с графика. 

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

Выпадаем по делению на ноль... OnCalculate() не запускается. Билд 1100.
 
Mikalas:

Об этом-то и вопрос!!!

INIT_FAILED, а он висит на графике и в списке! 

Оу... корректнее вопрос задавайте...
 
Tapochun:
Оу... корректнее вопрос задавайте...
Извините, если "загружается" хуже "висит", то пусть будет так!