Почему при утановке в iMA параметра int ma_shift с отрицательным значением - результат 0?

 

В индикаторе Moving Average при установке параметра ma_shift c отрицательным значением получаю 0.

Print(iMA(NULL,0,100,-10,MODE_SMA,PRICE_MEDIAN,0));
Print(iMA(NULL,0,100,0,MODE_SMA,PRICE_MEDIAN,0));
Print(iMA(NULL,0,100,10,MODE_SMA,PRICE_MEDIAN,0));



В результате:
2006.09.26 00:14:23 test1 EURUSD,H1: 1.2737
2006.09.26 00:14:23 test1 EURUSD,H1: 1.2744
2006.09.26 00:14:23 test1 EURUSD,H1: 0

Почему так происходит? Неверный параметр?

Спасибо за внимание.

 
Потому что будущее неизвестно.
 
Тогда я, наверно, неправильно понял значение этого параметра. В описании сказано:
double iMA( string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)
ma_shift - Сдвиг индикатора относительно ценового графика.
shift - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).
В чем тут различие?
 
Достаточно набросить на график такой МА со сдвигом -10, чтобы понять в чем дело.



Если Вы сдвинули линию на -10 баров, то Вы никак не можете у него запросить нулевую позицию. Нужно спрашивать по крайней мере значение по 10-му индексу.
Обычно сдвиги используют для визуализации построений, но не для расчетов.
 

Спасибо. Понял, что пытался сдвинуть MA не в том направлении.

Причина обращения: