[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 316

 

Ещё кто то кроме costy_ что то понимает в IndicatorCounted, а то у него не очень получилось разобраться в сути задачи.

И как бы и ответил, и как бы и ответа нет.

 
depth_finde писал(а) >>

Ещё кто то кроме costy_ что то понимает в IndicatorCounted, а то у него не очень получилось разобраться в сути задачи.

И как бы и ответил, и как бы и ответа нет.

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

 
depth_finde писал(а) >>

Это мой первый пост на форуме. Изучаю MQL4. Не знаю был ли такой вопрос раньше я не нашёл. Думаю что нужно применить функцию IndicatorCounted но как не знаю подскажите пожалуйста. Закачал котировки 300 тысяч а теперь при запуске индикаторы подвисают понимаю что нужно поставить условие чтоб щиталось не всех котировок а только заданное, напрмер 3000 но и пересчитывать каждый раз все 3000 тоже не зачем, значит нужна IndicatorCounted а как составить условие не знаю чтоб и щитало только последних 3000 и не пересчитывало поновой уже пройденные.

Спасибо за ответ.

Повторюсь.

 
depth_finde писал(а) >>

Повторюсь.

Теперь понял

Пример реализации

Файлы:
 
depth_finde >>:

Повторюсь.

Вместо Bars ставь свое значение 300 или 100, ну или WindowBarsPerChart() Функция возвращает количество баров, помещающихся в окно текущего графика.(т.е. то что визуально видно в окне)

 
Vinin писал(а) >>

Теперь понял

Пример реализации

Спасибо большое то что надо, costy_ и вам спасибо извините за резкость.

 
depth_finde >>:

Повторюсь.

например можно так:

int CountBars=3000;

int limit=Bars-IndicatorCounted()-1;
if(limit>CountBars) limit=CountBars;
   
for(int i=0; i<limit; i++)
   {
   Buffer[i]=...;
   }

можно ограничить количество баров в окне.

Сервис-Настройки-Графики-Макс. баров в окне.

 
Urain >>:

Стоит, и ещё вместо удаления можно установку ObjectCreate поставить через проверку if(ObjectFind(RectangleSell)==-1){ ObjectCreate()}

а остальные без проверки так что вы не будете на каждом тике стирать и поновой устанавливать обьект.

Что касается удалений - дело в том что с увеличением количества Баров, прямоугольник увеличивается по шкале времени (EndBoxTime)

при неизменном для него "StartBoxTime". Поэтому если условия соблюдаются и образовался новый бар, приходится удалять предыдущий и вместо него

рисовать новый прямоугольник.

Спасибо!

 
chief2000 >>:

Что касается удалений - дело в том что с увеличением количества Баров, прямоугольник увеличивается по шкале времени (EndBoxTime)

при неизменном для него "StartBoxTime". Поэтому если условия соблюдаются и образовался новый бар, приходится удалять предыдущий и вместо него

рисовать новый прямоугольник.

Спасибо!

Какраз удалять не обязательно, можно просто изменить параметры через ObjectSet.

ps но вообще дело ваше нужно смотреть по привязке к конкретному случаю.

 

Люди, подскажите, кто знает. Допустим я рисую на основном графике пользовательский индикатор. Затем использую другой пользовательский индикатор, в котором задействован первый индикатор через функцию iCustom. Можно ли связать их так, чтобы при изменении параметра первого индикатора на графике автоматически изменялся параметр во втором пользовательском индикаторе?

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