Custom indicator removed - страница 2

 

Имею ввиду что если установить те файлы что я прислала и запустить main, то support устанавливается и сразу удаляется (см. лог). 

Конечно он сам по себе не удаляется. 

С вашими файлами вроде ок, но все таки нужно разобраться с причиной и мне ресурсом нужно его цеплять 

 
Sofiia Butenko:

Имею ввиду что если установить те файлы что я прислала и запустить main, то support устанавливается и сразу удаляется (см. лог). 

Конечно он сам по себе не удаляется. 

С вашими файлами вроде ок, но все таки нужно разобраться с причиной и мне ресурсом нужно его цеплять 

Ну это только композитор знает - что и как.

по мне - вроде рабочая функция. 

 
SanAlex:

Ну это только композитор знает - что и как.

по мне - вроде рабочая функция. 

какая функция? 

Дело все таки в ресурсе, без ресурса работает, но все верно прописано...  

C IndicatorCreate и прописанным #property tester_indicator такая-же ситуация как с ресурсом

 
Sofiia Butenko:

какая функция? 

Дело все таки в ресурсе, без ресурса работает, но все верно прописано...  

Ну вот по умолчанию - он Выставил две линии . и Все индикаторы остались на графике.

EURUSDH1

 
SanAlex:

Ну вот по умолчанию - он Выставил две линии . и Все индикаторы остались на графике.


какие индикаторы на графике? Вы явно не поняли о чем я говорю - вызов support в main! НЕ сам по себе

 
Sofiia Butenko:

какие индикаторы на графике? Вы явно не поняли о чем я говорю - вызов support в main! НЕ сам по себе

Как я понимаю  support это просто спомогатель и его не нужно накидывать на график ?

Вот без него - только  main на графике - и как я понимаю он берёт информацию с Индикатора  support

EURUSDH4

 

Все, дошло, нужно удалить эти строки и все ок, индикатор не добавляется повторно

 if(gl_handle!=INVALID_HANDLE){
     IndicatorRelease(gl_handle);
     Alert(__FUNCTION__+" IndicatorRelease");}
 
Sofiia Butenko:

Все, дошло, нужно удалить эти строки и все ок, индикатор не добавляется повторно

Исправил на так 

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void set_handle(datetime time_start, datetime time_stop)
  {
   MqlParam p[];
//---- получение хендла индикатора
   gl_handle=iCustom(_Symbol, PERIOD_M1, "support");
   if(gl_handle==INVALID_HANDLE)
      Alert(__FUNCTION__+" support ",GetLastError());
  }
//+------------------------------------------------------------------+

получилось изменение на графике 

Снимок4

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

если бы не получал данные - наверное в принт передало - но не передаёт, значит хэндл получает 

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void set_handle(datetime time_start, datetime time_stop)
  {
   MqlParam p[];
//---- получение хендла индикатора
   gl_handle=iCustom(_Symbol, PERIOD_M1, "support", time_start, time_stop);
   if(gl_handle==INVALID_HANDLE)
      Print(" Не удалось получить хендл индикатора support");
  }
//+------------------------------------------------------------------+
 

в одном так 

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Print(__FUNCTION__+" = support -> ",reason);
  }

//+------------------------------------------------------------------+

И на График кидаю Индикатор main

принт печатает

2021.04.03 23:52:56.163 main (EURUSD,M1)        OnDeinit = main -> 3
2021.04.03 23:52:56.210 support (EURUSD,M1)     OnInit EURUSD 60
2021.04.03 23:52:56.210 support (EURUSD,M1)     OnCalculate -> 78
2021.04.03 23:53:00.004 support (EURUSD,M1)     OnDeinit = support -> 1

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

когда удаляю с графика  Индикатор main

2021.04.04 00:03:20.003 main (EURUSD,H4)        OnDeinit = main -> 1
2021.04.04 00:03:25.013 support (EURUSD,M1)     OnDeinit = support -> 1

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

Константа

Значение

Описание

REASON_PROGRAM

0

Эксперт прекратил свою работу, вызвав функцию ExpertRemove()

REASON_REMOVE

1

Программа удалена с графика

REASON_RECOMPILE

2

Программа перекомпилирована

REASON_CHARTCHANGE

3

Символ или период графика был изменен

REASON_CHARTCLOSE

4

График закрыт

REASON_PARAMETERS

5

Входные параметры были изменены пользователем

REASON_ACCOUNT

6

Активирован другой счет либо произошло переподключение к торговому серверу вследствие изменения настроек счета

REASON_TEMPLATE

7

Применен другой шаблон графика

REASON_INITFAILED

8

Обработчик OnInit() вернул ненулевое значение

REASON_CLOSE

9

Терминал был закрыт

Документация по MQL5: Общие функции / ExpertRemove
Документация по MQL5: Общие функции / ExpertRemove
  • www.mql5.com
ExpertRemove - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Парни, да не гадали бы вы, - ведь кода так и нет. 
Причина обращения: