Мне нужно сделать что-то подобное
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--;
}
Но это работает только тогда, когда я программирую индикатор. Не работает в эксперте. ¿Есть идеи?