Проблемы с возвращенными значениями функций в разные периоды и временные рамки графика - PullRequest
0 голосов
/ 09 мая 2019

Мне нужно сделать что-то подобное

if ( iAO( Symbol(),PERIOD_M1, 0) <= iAO( Symbol(), PERIOD_M5, 0) )

{

....

}

Но iAO (Symbol (), PERIOD_M5, 0) не работает, когда таймфрейм моего графика равен M1 (всегда возвращается 0).

Возможно ли получить реальное возвращаемое значение этой функции в M1?


UPDATE

Я обнаружил, что проблема связана с числом баров на разных таймфреймах. как то так:

int BM1 = iBars(NULL,PERIOD_M1);

, где

int BM5 = BM1/5;

или

int BM5 = iBars(NULL,PERIOD_BM5);

Итак, если я это сделаю, это сработает, если я нахожусь на таймфрейме M1.

int i, n=0, Counted_bars;   

Counted_bars=IndicatorCounted();  

i=Bars-Counted_bars-1;



   while(i>=0)                     

   { 

        if (  iAO( Symbol(),PERIOD_M1, i) <= iAO( Symbol(), PERIOD_M5, i/5)  )

        {

...

        }

i--;

}

Но это работает только тогда, когда я программирую индикатор. Не работает в эксперте. ¿Есть идеи?

...