Можно ли сделать генератор импульсов в индикаторе?

 
Подскажите, пожалуйста, хочу проверить одну идею, но нужен генератор импульсов синхронизации процесса в индикаторе, вырабатывающий серию импульсов между тиками, и можно ли по каждому импульсу этой серии пересчитывать историю котировок внутри индикатора? Это не возможно в принципе, это возможно только в советнике (этот вариант хоть и несколько усложняет решение, тоже приемлим), или нет проблем это сделать в индикаторе? Тогда - как?
 

Попробуйте такой скрипт, может поможет

      while(!IsStopped()){
         
         WindowRedraw();  
         int hwnd=WindowHandle(Symbol(),Period());
            if(hwnd!=0){
               PostMessageA(hwnd,WM_COMMAND,33324,0);    
            }
         Sleep(50);
      }
 
Integer писал(а) >>

Попробуйте такой скрипт, может поможет

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

for (j=0; j<1000; j++)
{
  TT[j]=(High[j]+Low[j])/2; 
..............
}
 
Angela >>:

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


это зацикленный блок, в который вставив свой код можно получить генератор работающий между тиками (эксперты и индикаторы в МТ "как вы знаете" оживает только по приходу тика)
 
xeon писал(а) >>

это зацикленный блок, в который вставив свой код можно получить генератор работающий между тиками (эксперты и индикаторы в МТ "как вы знаете" оживает только по приходу тика)

Не! Это скрипт, непрерывно генерит команды обновления в окно и индикатор обновляется без прихода тиков.

 
Integer >>:

Не! Это скрипт, непрерывно генерит команды обновления в окно и индикатор обновляется без прихода тиков.


дык я так и написал :-)
 
Integer писал(а) >>

Не! Это скрипт, непрерывно генерит команды обновления в окно и индикатор обновляется без прихода тиков.

А как мне его использовать для решения моей задачи сформулированной в предыдущем посте?

 
Angela >>:

А как мне его использовать для решения моей задачи сформулированной в предыдущем посте?

Разберитесь как он работает и используйте элементы кода,

(только не забудьте что там нужно включение #include <WinUser32.mqh>)

или запускайте паралельно с основной прогой, обновление графика равносильно тику.

Но при переносе кода помните что Sleep() работет только в скриптах.

 
Angela писал(а) >>

А как мне его использовать для решения моей задачи сформулированной в предыдущем посте?

Наверно никак.

Может что-то такое подойдет. На первом тике нового бара выполняется 20 раз, на следующи 1 раз.

int start(){

   static datetime LastTime=0;
      if(LsatTime==0){
         LastTime=Time[0];
      }
      if(Time[0]!=LastTime){
          LastTime=Time[0];
          n=20;
      }
      else{
         n=1;
      } 

      for(x=0;x<n;x++){
         for (j=0; j<1000; j++){
            TT[j]=(High[j]+Low[j])/2; 
            ..............
         }
     }
}
 
Integer писал(а) >>

Наверно никак.

Может что-то такое подойдет. На первом тике нового бара выполняется 20 раз, на следующи 1 раз.

Спасибо, попробую.