обновление МТ привело к неработоспособности индикаторов

 

После апдейта билда 399 на 401 перестали что бы то ни было показывать индикаторы.
Индикаторы перекомпелированы (в новом билде), история подгружена, тем не менее...

Сталкивался ли кто-либо? Что делать в этом случае? Есть ли возможность "отката" на 399???

 

Можете привести код индикатора в форуме или выслать на stringo AT metaquotes.net?

Все штатные кастомные индикаторы в терминале компилируются и показываются нормально.

 
да, конечно.
Файлы:
ccfp.mq4  17 kb
 
moskitman:
да, конечно.

Вот что индикатор пишет в лог:

2011.05.04 10:07:19     CCFp EURUSD,H4: initialized
2011.05.04 10:07:19     CCFp EURUSD,H4: unknown subwindow number -1 for ObjectCreate function
2011.05.04 10:07:19     CCFp EURUSD,H4: unknown subwindow number -1 for ObjectCreate function
2011.05.04 10:07:19     CCFp EURUSD,H4: unknown subwindow number -1 for ObjectCreate function
2011.05.04 10:07:19     CCFp EURUSD,H4: unknown subwindow number -1 for ObjectCreate function
2011.05.04 10:07:19     CCFp EURUSD,H4: unknown subwindow number -1 for ObjectCreate function
2011.05.04 10:07:19     CCFp EURUSD,H4: unknown subwindow number -1 for ObjectCreate function
2011.05.04 10:07:19     CCFp EURUSD,H4: unknown subwindow number -1 for ObjectCreate function
2011.05.04 10:07:19     CCFp EURUSD,H4: unknown subwindow number -1 for ObjectCreate function
2011.05.04 10:07:18     CCFp EURUSD,H4: loaded successfully

Этот мультивалютный индикатор нормально рисуется, только если присутствует вся история по остальным требуемым символам.

На первом старте, когда вся история не подгружена, индикатор не рисуется. На последующих стартах все работает нормально.

Это зависит не от версии терминала, а от подгруженной истории.

Специально проверил и на 399 билде - пока история чартов по остальным символам не подгрузилась (она автоматически загружается по требованию), индикатор показывает пустое окно. Надо индикатор писать с учетом недоступности истории, чтобы он пытался переинициализироваться до тех пор, пока не получит достаточного количества данных от других символов.

 
Спасибо, но я до сих пор им нормально пользовался... Означает ли это обязательную потерю терминалом истории при смене билда?
 

В 401 билде не производилось никаких изменений в компиляторе и системе исполнения MQL4 кода.

История при апдейте принудительно не сбрасывается, но в любой момент терминал может запустить синхронизацию чартов, если обнаружит ее расхождение с серверной историей. В последних 399-401 билдах мы исправили ряд ошибок синхронизации чартов в компонентах MetaTrader 4 DataCenter, что наверняка у всех пользователей привело к пересинхронизации истории.

 

Добрый день.

У меня таже проблема возникла: мой индикатор (что-то на подобие Real_Time_MultiIndicator) перестал работать, при компиляции ничего не выводит (пусто), хотя в списке индикаторов присутствует.

Интересное объяснение модератора, но у меня все тот же вопрос: ЧТО ДЕЛАТЬ-ТО?!

И как индикатор писать с учетом недоступности истории, чтобы он пытался переинициализироваться до тех пор, пока не получит достаточного количества данных от других символов?

 
Renat:

1.но в любой момент терминал может запустить синхронизацию чартов,

2.если обнаружит ее расхождение с серверной историей.

3.В последних 399-401 билдах мы исправили ряд ошибок синхронизации чартов в компонентах MetaTrader 4 DataCenter

1. в любой момент, это когда? периодичность проверок?

2.код скрипта/эксперта может узнать, что произошла такая ситуация?

3. теперь будет автоматически подгружаться история по всем ТФ на котором запущен эксперт или как и ранее только на активных(открытых) ТФ?

 
IgorM:

1. в любой момент, это когда? периодичность проверок?

2.код скрипта/эксперта может узнать, что произошла такая ситуация?

3. теперь будет автоматически подгружаться история по всем ТФ на котором запущен эксперт или как и ранее только на активных(открытых) ТФ?

Стратегия работы с историей (подгрузка, инициализация и тд) не менялась уже билдов сто.

Поэтому мой вердикт - паника на ровном месте (ничего не менялось), а индикаторы изначально неправильно написаны (режим работы экспертописателя "мне повезет!") .

 
Renat:

Стратегия работы с историей (подгрузка, инициализация и тд) не менялась уже билдов сто.

ответьте плз на мой предидущий вопрос, хотя бы на пп.3, т.к. ранее я пользовался следующей ф-цией:

//_____________________________________________________________________
bool loadhistory(){
   double high[];
   int err = GetLastError();
   bool result = true;
   for(int i=0;i<9;i++){
         ArrayCopySeries(high,MODE_HIGH,NULL,period[i]);
         err = GetLastError();
         if (err > 0) result = false;
         Sleep(100);
   }
return(result);
}
//_____________________________________________________________________

и запускал эту ф-цию в своих кодах раз в минуту, чтобы быть уверенным, что эксперт может получить доступ к любому ТФ в ходе своей работы, в тестере эта ф-ция выдает ошибку - отключаю

теперь история по всем ТФ будет подкачиваться автоматически?

 
IgorM:

ответьте плз на мой предидущий вопрос, хотя бы на пп.3, т.к. ранее я пользовался следующей ф-цией:

и запускал эту ф-цию в своих кодах раз в минуту, чтобы быть уверенным, что эксперт может получить доступ к любому ТФ в ходе своей работы, в тестере эта ф-ция выдает ошибку - отключаю

теперь история по всем ТФ будет подкачиваться автоматически?

Раньше тоже пользовался подобным способом. Он очень вреден. Сильно портит историю. После такой подкачки история имеет множество дыр. Такой способ не гарантирует правильную подкачку.
Причина обращения: