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


Доброго дня!
Прошу пояснить, почему в этом коде пытаюсь получить значение индикатора под индексом i, в ответ на строке
var sarValue1 = _parabolic.GetValue(i); выпадает ошибка - "Индикатор Parabolic SAR не содержит необходимое количество значений.".
Например, проверяю по F10 в контейнере 179 значений, i=179, надо получить значение индикатора под индексом 179, выпадает такая ошибка... Контейнер - это своего рода массив значений индикатора? или нет...
И свечку по индексу i-1 не находит... Но, если есть 179 значений индикатора, то значит есть 179 свечек, иначе как появились значения индикатора...?
Код
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--;
                    }

Теги:


Спасибо:




1 Ответов
IvanB

Фотография
Дата: 11.05.2013
Ответить


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

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

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

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

Спасибо: UsilaDobry


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy