Помогите разобраться с таймфреймами

 
Доброго времени. Вопрос возник при написании советника. Работа 2 индикаторов на 2 тайнфреймах. Примерно так
Ma=iMa(симв, таймфрейм, период, скольж,...) 
Масд=iMacd(симв,таймфрейм2,.....)

If(macd>0)
{if(ma>5 & & ma<10)
   Open 3
 }
Я может не правильно понимаю? Если 1 правда на таймфрейм2 переходим проверять 2 на тайм фрейм если да то опен. 
Но у меня все выполняеися на текущем тайм фрейме. Как сделать что бы результат возвращался по указаному периоду... Т. Е. Если макд считает на 1н, а ма на 5м, они и результаты передавали с этих ТФ, а не с того который открыт
 

Вы же сами пишете : iMa(символ, ТАЙМФРЕЙМ, . . . )

по 2 массивы на встроенные индикаторы с разным таймфреймом.

 
Документация по MQL5: Технические индикаторы / iMA
Документация по MQL5: Технические индикаторы / iMA
  • www.mql5.com
//|                                                     Demo_iMA.mq5 | //|                        Copyright 2011, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Перечисление способов создания хэндла                            |  Creation             type=Call_iMA;                ...
 

Aleksandr Morozov:
https://www.mql5.com/ru/docs/indicators/ima


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

  

 //нужны значения с часового таймфрема индикатора масд


   MacdCurrent=iMACD(NULL,PERIOD_H1,32,80,5,PRICE_CLOSE,MODE_MAIN,0);
   MacdPrevious=iMACD(NULL,PERIOD_H1,32,80,5,PRICE_CLOSE,MODE_MAIN,1);
   SignalCurrent=iMACD(NULL,PERIOD_H1,32,80,5,PRICE_CLOSE,MODE_SIGNAL,0);
   SignalPrevious=iMACD(NULL,PERIOD_H1,32,80,5,PRICE_CLOSE,MODE_SIGNAL,1);
   
// а здесь 15М

   MaCurrent=iMA(NULL,PERIOD_M15,15,0,MODE_SMA,PRICE_OPEN,1); 
   MaPrevious=iMA(NULL,PERIOD_M15,50,0,MODE_SMA,PRICE_OPEN,1);
  
   total=OrdersTotal();
   if(total<1)
     {
      
      //--- а вот здесь они должны использоваться. Но почему то значения совсем другие берет.
      if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MaCurrent>MaPrevious)

Подскажите еще, что тогда значит period_m15 , если это не таймфрейм с которого он берет данные? Благодарю за помощь

 
Что-то я понять не могу. Он у вас вообще считает? Вроде как надо массив, а не переменную. и куда он возвращает в какой индекс результат?
 

' massiv[a]= iMa(0,0, . . . . ,a)'

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