Получение N значение из индикатора(ошибка).

Получение N значение из индикатора(ошибка).
Atom
5/11/2013


Доброго дня!
Прошу пояснить, почему в этом коде пытаюсь получить значение индикатора под индексом i, в ответ на строке
var sarValue1 = _parabolic.GetValue(i); выпадает ошибка - "Индикатор Parabolic SAR не содержит необходимое количество значений.".
Например, проверяю по F10 в контейнере 179 значений, i=179, надо получить значение индикатора под индексом 179, выпадает такая ошибка... Контейнер - это своего рода массив значений индикатора? или нет...
И свечку по индексу i-1 не находит... Но, если есть 179 значений индикатора, то значит есть 179 свечек, иначе как появились значения индикатора...?
Code
var i = _parabolic.Container.Count;
                    while (i != 0)
                    {
                        var sarValue1 = _parabolic.GetValue(i);
                        var sarValue2 = _parabolic.GetValue(i - 1);
                        Candle candleValue = _candleSeries.GetCandle<TimeFrameCandle>(i - 1);
                        if (sarValue2 > candleValue.HighPrice && sarValue1 < candleValue.HighPrice)
                        {
                            _referenceLevelsUp.Add(sarValue2);
                            if (_referenceLevelsUp.Count > 2)
                                _referenceLevelsUp.RemoveAt(0);
                        }
                        i--;
                    }



Thanks:


IvanB

Avatar
Date: 5/11/2013
Reply


UsilaDobry Go to
Контейнер - это своего рода массив значений индикатора? или нет...

Контейнер индикатора - это некий ящик со значениями, и инструментами(методами) для работы с ними.
UsilaDobry Go to
И свечку по индексу i-1 не находит... Но, если есть 179 значений индикатора, то значит есть 179 свечек, иначе как появились значения индикатора...?

Если в контейнере 179 элементов. то индекс последнего 178. т.к. индексация принята с нуля в C#.
Нужно убрать строку
Code
var sarValue1 = _parabolic.GetValue(i);

и выполнить, посмотреть что будет с выполнением строки
Code
var sarValue2 = _parabolic.GetValue(i - 1); 

Thanks: UsilaDobry


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy