Никогда не понимал значение сдвига МА. Это чтобы запудрить себе мозги покруче и потом в замешательстве задаваться такими вопросами?
В вашем случае на текущем, первом и втором барах значений МА еще нет. Вы ведь сдвинули все эти значения на третий бар! Выходит, что для получения текущего значения средней нужно обратиться к значению средней со сдвигом 3 на третьем баре. В итоге это будет эквивалентно значению средней со сдвигом 0 на текущем баре.
Как я понял вы предлагаете сделать цикл из 3х нулевых значений мувинга, а потом обращаться к 3му элементу массива?
Нечто следующие:
Как я понимаю в этом случае будет сдвиг -3. Верно?
Я застенчивый, поэтому, прежде чем спросить, провожу примитивные проверки в пределах своей некомпетентности.
double ma0=iMA(NULL,0,MovingPeriod,MovingShift1,MODE_LWMA,PRICE_CLOSE,0); double ma1=iMA(NULL,0,MovingPeriod,MovingShift1,MODE_LWMA,PRICE_CLOSE,1); double ma2=iMA(NULL,0,MovingPeriod,MovingShift1,MODE_LWMA,PRICE_CLOSE,2); double ma3=iMA(NULL,0,MovingPeriod,MovingShift1,MODE_LWMA,PRICE_CLOSE,3); double ma4=iMA(NULL,0,MovingPeriod,MovingShift1,MODE_LWMA,PRICE_CLOSE,4); double ma5=iMA(NULL,0,MovingPeriod,MovingShift1,MODE_LWMA,PRICE_CLOSE,5); Comment(" ma1= ",ma1," ma2= ",ma2," ma3= ",ma3," ma4= ",ma4," ma5= ",ma5); //результат вывода Comment: ma1= 0 ma2= 0 ma3= 133.7084 ma4= 133.7147 ma5= 133.7208
Подозреваю, что это может сделать каждый, кто написал свои первые три строки кода..
Отрицательное смещение индикатора означает, что линия индикатора смещается на ценовом графике влево.
В данном случае влево на 3 бара. Это означает, что последнее значимое значение индикатора находится на 3-м баре.
ma1=iMA(NULL,0,MovingPeriod,MovingShift1,MODE_LWMA,PRICE_CLOSE,3);
То есть обращения по индексу 0, 1 и 2 дадут 0, что мы и видим
Спасибо за объяснение
ps
я не застенчивый, поэтому спросил совет у профессионалов, застенчивые пусть советуются с мануалами, чего я им и желаю
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
......
extern int MovingShift1 = -3;
......
ma1=iMA(NULL,0,MovingPeriod,MovingShift1,MODE_LWMA,PRICE_CLOSE,0);
.....
Есть такой вот кусок кода, ma1 = 0 всегда, хотя на графике mooving с MovingShift<0 строится прекрасно.
Подскажите как правильно получить значение ima для MovingShift<0 ?