← 戻る

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

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

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