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

 
FOReignEXchange:




спс, да я разбираюсь в программировании, но когда берусь чтонить делать с индикаторами или графикой, впадаю в ступор, уж слишком тяжело мне дается эта непонятная система координат, то ли дело рисование с Canvas, раз два ...
usver:


  Использовать переменную Bars и отслеживать ее изменение. Увеличилось на 5, запомнили и т.д. 

пример плз
 
if (N=0) N=iBars(Simbol(),TF);

if ((iBars(Simbol(),TF)-N)==5)
   {
   N=0;
   Также обнуляем все параметры, которые использует индикатор, чтобы он смог сделать перерасчёт.
   }

Примерно так, я думаю. 

 

IgorM:

Примерно так. 

int barsTtl;

int init()
   {
      barsTtl=iBars(Symbol(),PERIOD_H1);
      return(0);
   }

int start()
   {
      if (iBars(Symbol(),PERIOD_H1)==barsTtl+5)
        {
          // какие-то действия
          ...
          ...
          ...
          barsTtl=iBars(Symbol(),PERIOD_H1);
          return(0);
        }
   }
FOReignEXchange:

Примерно так, я думаю. 


Да, именно это и имел в виду
 

usver, FOReignEXchange

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

видно внезапное увеличение обьема скачанной инфы, хотя никаких действий не производится 

 
usver:

IgorM:

Примерно так.


Да, именно это и имел в виду

Пробовал подобное. Не всегда помогает.
 
IgorM:

usver, FOReignEXchange

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

видно внезапное увеличение обьема скачанной инфы, хотя никаких действий не производится 


Да - поэтому этот способ нельзя назвать надежным. Использую его только для проверки стратегий и индикаторов, как наиболее простой. У меня ниразу сбоев не давал.
 

Поэтому надо запоминать время бара  iTime(NULL,TF,0), а потом считать бары iBarShift

Логика таже, что и выше, но используется время бара. 

 
IgorM:

usver, FOReignEXchange

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

видно внезапное увеличение обьема скачанной инфы, хотя никаких действий не производится 


Да - поэтому этот способ нельзя назвать надежным. Использую его только для проверки стратегий и индикаторов, как наиболее простой. У меня ниразу сбоев не давал.

Скажу так: использовал его для открытия позиций в начале нового бара (второго/третьего от точки отсчета), и все выглядело нормально. Анализировал историю в экселе -  работает все по условию. Раз на раз не приходится, как говорится. Вам решать. Альтернативу вам посоветовал FOReignEXchange  со временем открытия. Технология, в приципе, та же.

 
Вот так короче 
if (t=0) t=iTime(NULL,TF,0);

if ((iBarShift(NULL,TF,t)-iBarShift(NULL,TF,iTime(NULL,TF,0))==5)
   {
   t=0;
   Также обнуляем все параметры, которые использует индикатор, чтобы он смог сделать перерасчёт.
   }


 
FOReignEXchange:
Вот так короче 


отлично, но если Вас не затруднит, сделайте плз просто задержку в минутах с помощью этого кода

т.е. в настройках индикатора зададим перерисовку в минутах, а с М1 будем брать счетчик 

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