Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1071

 
Добрый день! В старом индикаторе прописан цикл , он сильно подгружает терминал, помогите его переложить на новый лад,чтобы постоянно не пересчитывались бары... Заранее благодарен!
int i,limit;
limit = Bars-2;
for(i=limit; i>0; i--)
 
   limit=rates_total-prev_calculated;
   if(prev_calculated>0)
      limit++;
Взято с примера MACD из поставки терминала.
 
evillive:
Взято с примера MACD из поставки терминала.
Спасибо,но в этом случае limit=0,а в цикле расчет идет от последнего бара к нулевому 
 
Pokrov:
Спасибо,но в этом случае limit=0,а в цикле расчет идет от последнего бара к нулевому 

Тогда так, если посчитано 0 то берём все бары, в остальных случаях - сколько не посчитано:

  limit=rates_total-prev_calculated;
  if(prev_calculated<1) limit=rates_total-1;
 
evillive:

Тогда так, если посчитано 0 то берём все бары, в остальных случаях - сколько не посчитано:

Спасибо, Вам большое! Только я так и не понял почему это работает, при загрузке индикатора rates_total и prev_calculated равны одинаковому кол-ву баров, и тогда limit = 0, дальше условие которое не истинно, тогда почему работает ? Объясните мне пожалуйста,

хочется понять почему работает...   
 
Pokrov:

Спасибо, Вам большое! Только я так и не понял почему это работает, при загрузке индикатора rates_total и prev_calculated равны одинаковому кол-ву баров, и тогда limit = 0, дальше условие которое не истинно, тогда почему работает ? Объясните мне пожалуйста,

хочется понять почему работает...   

 При загрузке  rates_total=Bars, a prev_calculated=0.

 
evillive:

 При загрузке  rates_total=Bars, a prev_calculated=0.

А ведь точно, я просто не внимательно смотрел в журнал, первый тик prev_calculated=0. Еще раз спасибо!!! 
 
evillive:
Можно. Только места ему надо оставить побольше, папки истории и логов растут, у меня как-то больше 5Гб истории накопилось, а как-то раз неотлаженный советник набил логи ошибками на 20Гб, хорошо что не на флэшке )))
Ну да. Понятно. Всем спасибо!
 

Всем привет. Хочу в тестере стратегий на таймфрейме H1 использовать данные с таймфрема H4. При инициализации индикатора он отричовывается правильно, но при запуске тестера не перерисовывается.

Это особенности тестера? Как-то побороть можно? 

int shift = iBarShift(Symbol(), PERIOD_H4, Time[i]);

bufBuffer[i] = iClose(Symbol(),PERIOD_H4,shift); 
 
storuky:

Всем привет. Хочу в тестере стратегий на таймфрейме H1 использовать данный с таймфрема H4. При инициализации индикатора он отричовывается правильно, но при запуске тестера не перерисовывается.

Это особенности тестера? Как-то побороть можно? 

Да, это так тестер блокирует доступ к данным других ТФ в режиме визуализации, так разработчики решили, для предотвращения "заглядывания в будущее" в тестере. Вроде в обычном тестировании без визуализации данные идут правильно, только отрисовка страдает.

Побороть напрямую никак нельзя, только усложняя алгоритм и рисуя объектами, но стоит ли это того?

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