← 返回

Индикатор 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

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

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