Как использовать массив для перебора бара

 

Вот в чем суть стохастик м15 дает сигнал, но стохастик часовой запаздывает и надо написать так чтобы после сигнала по м15 советник ждал в течении 1 или 2 баров сигнала от часового стохастика.

Я пытался написать без массива но не работает, вот как у меня получилось:

  if(OrdersTotal()<1&&otkritye==true )
   {
     if(
     (
     iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,0) > 20 && iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,1) < 20
     && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_MAIN,0)<20 && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_SIGNAL,0)< 20
     )
     ||
     (
      iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,1) > 20 && iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,2) < 20//п.2 дополнение от 6.01.12
     && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_MAIN,0)<20 && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_SIGNAL,0)< 20
      )
     ||
     (
      iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,2) > 20 && iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,3) < 20//п.2 дополнение от 6.01.12
     && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_MAIN,0)<20 && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_SIGNAL,0)< 20
     )
     ||
     (
      iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,3) > 20 && iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,4) < 20//п.2 дополнение от 6.01.12
     && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_MAIN,0)<20 && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_SIGNAL,0)< 20
      )
      ||
     (
      iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,4) > 20 && iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,5) < 20//п.2 дополнение от 6.01.12
     && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_MAIN,0)<20 && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_SIGNAL,0)< 20
      )
      ||
     (
      iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,5) > 20 && iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,6) < 20//п.2 дополнение от 6.01.12
     && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_MAIN,0)<20 && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_SIGNAL,0)< 20
      )
      ||
     (
      iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,6) > 20 && iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,7) < 20//п.2 дополнение от 6.01.12
     && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_MAIN,0)<20 && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_SIGNAL,0)< 20
      )
      ||
     (
      iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,7) > 20 && iStochastic(NULL,0,15,3,3,MODE_SMA,0,MODE_SIGNAL,8) < 20//п.2 дополнение от 6.01.12
     && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_MAIN,0)<20 && iStochastic(NULL,60,15,3,3,MODE_SMA,0,MODE_SIGNAL,0)< 20
      )
     )

ну вот типа так, как можно переделать его в массив или можно по другому без массива. Буду рад комментариям и советам.

 
Можно сигнал с М15 запоминать в глобальной переменной типа int и присваивать ей значения (0,1,-1) . А при появлении сигнала с Н1 совместно с сигналом с М15 сформировать общий сигнал.
 
Я понимаю, что о пересчетных циклах вы никогда не слышали, но очень вам рекомендую. Пр появлении сигнала с часа, сходить на нужное количество баров назад на 15 минутке и проверить значение индикатора там.
 
можете написать поподробнее про пересчет циклов
Причина обращения: