diff --git a/Algorithm/QCAlgorithm.Python.cs b/Algorithm/QCAlgorithm.Python.cs index 683c03077d3d..b385866a995a 100644 --- a/Algorithm/QCAlgorithm.Python.cs +++ b/Algorithm/QCAlgorithm.Python.cs @@ -692,7 +692,7 @@ public void RegisterIndicator(Symbol symbol, PyObject indicator, IDataConsolidat } else { - RegisterIndicator(symbol, WrapPythonIndicator(indicator), consolidator, + RegisterIndicator(symbol, WrapPythonIndicator(indicator, (PythonIndicator)convertedIndicator), consolidator, selector?.ConvertToDelegate>()); } } diff --git a/Indicators/IndicatorExtensions.cs b/Indicators/IndicatorExtensions.cs index c14fc516e054..9159500520c2 100644 --- a/Indicators/IndicatorExtensions.cs +++ b/Indicators/IndicatorExtensions.cs @@ -292,26 +292,27 @@ public static CompositeIndicator Times(this IndicatorBase left, IndicatorBase ri public static IndicatorBase ConvertToIndicator(this PyObject pyObject) { IndicatorBase indicator; - if (pyObject.TryConvert(out var pi)) + + if (pyObject.TryConvert(out var pythonIndicator)) { - pi.SetIndicator(pyObject); - indicator = pi; + pythonIndicator.SetIndicator(pyObject); + indicator = pythonIndicator; } - else if (pyObject.TryConvert>(out var idp)) + else if (pyObject.TryConvert>(out var dataPointIndicator)) { - indicator = idp; + indicator = dataPointIndicator; } - else if (pyObject.TryConvert>(out var idb)) + else if (pyObject.TryConvert>(out var baseDataBarIndicator)) { - indicator = idb; + indicator = baseDataBarIndicator; } - else if (pyObject.TryConvert>(out var itb)) + else if (pyObject.TryConvert>(out var tradeBarIndicator)) { - indicator = itb; + indicator = tradeBarIndicator; } - else if (pyObject.TryConvert>(out var ibd)) + else if (pyObject.TryConvert>(out var baseDataIndicator)) { - indicator = ibd; + indicator = baseDataIndicator; } else { diff --git a/Tests/Indicators/CompositeIndicatorTests.cs b/Tests/Indicators/CompositeIndicatorTests.cs index 219c88b2932c..f1a1293d900b 100644 --- a/Tests/Indicators/CompositeIndicatorTests.cs +++ b/Tests/Indicators/CompositeIndicatorTests.cs @@ -114,15 +114,15 @@ from QuantConnect.Indicators import * def create_composite_indicator(left, right, operation): if operation == 'sum': def composer(l, r): - return IndicatorResult(l.Current.Value + r.Current.Value) + return IndicatorResult(l.current.value + r.current.value) elif operation == 'min': def composer(l, r): - return IndicatorResult(min(l.Current.Value, r.Current.Value)) + return IndicatorResult(min(l.current.value, r.current.value)) return CompositeIndicator(left, right, composer) def update_indicators(left, right, value_left, value_right): - left.Update(IndicatorDataPoint(DateTime.Now, value_left)) - right.Update(IndicatorDataPoint(DateTime.Now, value_right)) + left.update(IndicatorDataPoint(DateTime.Now, value_left)) + right.update(IndicatorDataPoint(DateTime.Now, value_right)) "); using var createCompositeIndicator = testModule.GetAttr("create_composite_indicator"); @@ -159,19 +159,19 @@ from collections import deque class CustomSimpleMovingAverage(PythonIndicator): def __init__(self, period): - self.Name = 'SMA' - self.Value = 0 - self.Period = period - self.WarmUpPeriod = period + self.name = 'SMA' + self.value = 0 + self.period = period + self.warm_up_period = period self.queue = deque(maxlen=period) - self.Current = IndicatorDataPoint(DateTime.Now, self.Value) + self.current = IndicatorDataPoint(DateTime.Now, self.value) - def Update(self, input): - self.queue.appendleft(input.Value) + def update(self, input): + self.queue.appendleft(input.value) count = len(self.queue) - self.Value = sum(self.queue) / count - self.Current = IndicatorDataPoint(input.Time, self.Value) - self.on_updated(IndicatorDataPoint(DateTime.Now, input.Value)) + self.value = sum(self.queue) / count + self.current = IndicatorDataPoint(input.time, self.value) + self.on_updated(IndicatorDataPoint(DateTime.Now, input.value)) " );