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

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

А меня вот это все время бесило. Разработчики терминала и сервера вместо того что бы один раз показать, дать пример правильной подкачки истории...уже много лет в нас камнями бросают. Типа мы криворукие программисты и делаем программы в стиле "нам повезет".

Renat: будте так любезны и добры. Ткните меня носом где Вы (или ваши сотрудники) привели код как правильно, надежно и безопасно подгружать историю (где примеры образцового кода ?) ...

я много лет пользовался вот таким кодом

//+---------------------------------------------------------------------------------------------+
//| Функция отслеживаеn подгузку истории (изменение истории) по различным валютным парам        |
//| автор: Integer -> https://forum.mql4.com/ru/20982                                            |
//+---------------------------------------------------------------------------------------------+

bool fCheckDataUpdate(string aSymbol,int aTimeFrame){
   datetime daytimes[];
   int   res;
   for( int i=0; i<10; i++)   {
   if(iClose(aSymbol,aTimeFrame,0)==0){
      Print("Нет данных "+aSymbol+" "+fTimeFrameName(aTimeFrame)+" (символа нет в обзоре рынка или первое обращение к символу)");
      Sleep(1000);
   }
   res=ArrayCopySeries(daytimes,MODE_TIME,aSymbol,aTimeFrame);
   if(GetLastError()==4066){
      Print("Данные "+aSymbol+" "+fTimeFrameName(aTimeFrame)+" в процессе обновления");
      Sleep(1000);
   }
   if(res>=MaxBars)  break; else Sleep(1000);
   }
   if(res<MaxBars)   Print("Недостаточно данных - Загружено по символу ", aSymbol," период ",fTimeFrameName(aTimeFrame)," данных ",res," За ", i," попыток ");   
   else  Print("Загружено по символу ", aSymbol," период ",fTimeFrameName(aTimeFrame)," данных ",res," За ", i," попыток ");
   return(true);      
}

но до сих пор не уверен в его правильности и надежности...

 

Правильная надёжная подкачка истории здесь и здесь. Более надёжного способа пока не существует.

Ещё вариант, но это вариация на ту же тему, подкачивать из консольного приложения, управляя удалённо терминалом, который имеет рабочие каталоги такие же, как у боевого терминала.

 
Trolls:

...

но до сих пор не уверен в его правильности и надежности...

Был такой случай - сервер выдал немного истории но не всю, больше не дает, при этом уже нет ошибки 4066, индикатор думает, что вся история подгружена. Однако в этом случае и открытие графика не помогало.

 
Integer:

Был такой случай - сервер выдал немного истории но не всю, больше не дает, при этом уже нет ошибки 4066, индикатор думает, что вся история подгружена. Однако в этом случае и открытие графика не помогало.

Да. Бывает, но очень редко. По этому предпочитаю сразу обновлять график и, если уж не пришло, то ничего не сделаешь.
 

Обновил, на "свою голову"!!! И откат назад не сделаешь никак!

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

До обновления все работало отлично. При чем здесь вообще история, если графики свечи рисуют - данные идут, а индикатор считает максимум по 30 барам, т.е. ему много и не надо, все инструменты присутствуют. К тому же и до этого билды были и после обновлений проблем «с изначально неправильно написанными (в режиме работы экспертописателя "мне повезет!") индикаторами» не возникало, а тут как надо было так исправить «ряд ошибок синхронизации чартов в компонентах MetaTrader 4 DataCenter», что теперь программа MetaTrader 4 потеряла функциональность! Походу программист уволился что ли, и некому нормальное обновление выпустить.

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

ЧТО ДЕЛАТЬ-ТО!??

 

Ну вот, Андрей, дофастался в соседней ветке результатами? Вот тебе и апдейт на терминал сварганили ))

(шутка, для тех, кто не понял)

А если серьезно - конечно индюки не кривые, со времен царя гороха были ровные, а теперь кривые видетели. Апдейт кривой.

 
alexx_v:

Ну вот, Андрей, дофастался в соседней ветке результатами? Вот тебе и апдейт на терминал сварганили ))

(шутка, для тех, кто не понял)

А если серьезно - конечно индюки не кривые, со времен царя гороха были ровные, а теперь кривые видетели. Апдейт кривой.

Шутку оценил. (сам уже подумывал на этим)

У МЕНЯ проблема решена - не хватало истории по NZD (помните я писал, что его не торгую?). Так что к апдейту у меня лично претензий нет. И очень хорошо что "переиндексация истории" такого рода произошла СЕЙЧАС, а не с открытыми сделками на реале.

Делаю вывод: сопровождение позиций - исключительно трейлинг каждой + трейлинг по эквити, никаких закрытий по индюкам!

 
alexx_v:

А если серьезно - конечно индюки не кривые, со времен царя гороха были ровные, а теперь кривые видетели. Апдейт кривой.

То есть, индикатор нарвался на ситуацию отсутствия истории (в этом момент пошел фоновой запрос истории на сервер), не проверил результаты и поэтому апдейт плохой?

После перезапуска индикатора (через 5-10 сек) на чарте все отрисовалось, так как история подгрузилась - это тоже апдейт виноват?

Когда я проверил 2 исходника индикаторов и четко сказал "вы не проверяете наличия истории по чужим символам, поэтому индикатор может не отрисоваться. так было всегда в любых билдах" - это терминал виноват?

Или может все-таки разработчик индикатора привык плевать на проверки и пишет в режиме "мне всегда светит солнце"?

 
Ренат, примите мои извинения. Я полагал Андрей досконально проверил неработоспособность вышеназванного индикатора. Оказалось, что нет.
 
alexx_v:
Ренат, примите мои извинения. Я полагал Андрей досконально проверил неработоспособность вышеназванного индикатора. Оказалось, что нет.

Проблема в том, что люди редко вдумчиво (включая меня) читают ответы и чужие обсуждения.

Поэтому каждую мысль приходится повторять трижды.

Причина обращения: