← Назад

Индикатор MovingAverageConvergenceDivergenceSignal

Доброго дня Подскажите пожалуйста, как получить значение индикатора MACDS. Получаю элемент Item2 из коллекции значений индикатора (конечно после того, как индикатор сформирован) MACDS.Container.GetValue(0).Item2 Дальше на отладке вижу, что мне нужно свойство InnerValues, но такое свойство есть только у класса "ComplexIndicatorValue", понятно, что индикатор комплексный.

А MACDS.Container.GetValue(0).Item2 принадлежит классу "IIndicatorValue", преобразовать один тип к другому не получается, пишет, что "ComplexIndicatorValue" получен в результате расчетов. В общем что-то запутался.

Комментарии (4)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Mikhail Sukhov
Mikhail Sukhov

Работа со значения индикаторов должна быть единообразной. Если индикатор сложный, то у него есть вложенные значения. Можно посмотреть на ГитХаб внутреннее устройство индикатора.

roman001
roman001 Автор

Да, разобрался уже по хелпу вот MACDS.GetValue<ComplexIndicatorValue>(0).InnerValues[MACDS.Macd] может пригодится кому.

Mikhail Sukhov gem81
roman001
roman001 Автор

Вот еще что обнаружил, если для получения значения объектов списка MACDS.GetValue<ComplexIndicatorValue>(ИНДЕКС).InnerValues[MACDS.Macd] вызывать метод ToString(), то они получаются корректно, т.к. на каждый индекс свое значение. А если писать MACDS.GetValue<ComplexIndicatorValue>(ИНДЕКС).InnerValues[MACDS.Macd].Indicator.GetCurrentValue(), то выходит последнее значение индикатора, пример на картинке из отладки А если вызвать MACDS.GetValue<ComplexIndicatorValue>(ИНДЕКС).InnerValues[MACDS.Macd].Indicator.GetValue(ИНДЕКС), то опять выходит верное значение Как-то это странно, ведь элемент коллекции результатов мы выбираем на этапе MACDS.GetValue<ComplexIndicatorValue>(ИНДЕКС) Версия 4.3.14

Mikhail Sukhov
Mikhail Sukhov

Попробуйте на ГитХабе посмотреть исходники. Пока не совсем понятно, о чем вы пишите.

Конструкции очень сложные и большие. Подозреваю, вы усложнили задачу свою.