У меня были написаны собственные индикаторы, возвращающие значения decimal. Как теперь нужно переписать код, чтобы возвращаемы значения были IIndicatorValue?
Можно на основе примера:
public class Dummy : LengthIndicator<decimal>
{
protected override decimal OnProcess(IIndicatorValue input)
{
var i = input.GetValue<decimal>();
return i+100;
}
}
Comentarios (10)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
Было в чате
Я конечно порылся в чате и нашел. А вот что делать всем остальным пользователям, которые не имеют эту историю? Мало того, что непонятно зачем поменяли тип данных, так еще и сделали это по-тихому вообще без какой-либо документации. Неужели сложно хоть пример использования составить? Я уже не говорю про какие-то новые фичи, которые вообще непонятно как использовать без документации. Я не первый про это пишу, но думаю, напомнить стоит.
Коллега, а выложите чат для тех, кто данной инфой не обладает...
protected override IIndicatorValue OnProcess(IIndicatorValue input) { var newValue = input.GetValue<decimal>();
if (input.IsFinal) { Buffer.Add(newValue);
}
if (Buffer.Count == 0) return new DecimalIndicatorValue();
return (DecimalIndicatorValue)(newValue - Buffer[0]); }
На вариант
ругается, что возвращаемое значение должно быть IIndicatorValue. Внимание, вопрос - что делать? Теперь массив не передать?
protected override IIndicatorValue OnProcess(IIndicatorValue input) { var newValue = input.GetValue<decimal>();
if (input.IsFinal) { Buffer.Add(newValue);
}
if (Buffer.Count == 0) return new DecimalIndicatorValue();
return (DecimalIndicatorValue)(newValue - Buffer[0]); }
protected override IIndicatorValue [] OnProcess(IIndicatorValue input) { new DecimalIndicatorValue[2] {(DecimalIndicatorValue)1.0m, (DecimalIndicatorValue)1.0m}; }
Работало, чесслово. Использовал BaseIndicator<decimal []>. теперь же, видимо, придётся переделывать код - разбираться в ComplexIndicatorValue или делать какие-либо собственные обёртки... Да, если будет возможность, пожалуйста, какой-нибудь dummy код приведите с использованием ComplexIndicatorValue. Заранее пасиба!
Ап! Камрады, плз, не останьтесь безучастными к проблемам собрата!
class ExtraDummyMultiIndicator : BaseComplexIndicator { protected override ComplexIndicatorValue OnProcess(IIndicatorValue input) { return base.OnProcess(input); } }