From 72203280d2834f05d8129a22fe3e878cb0da41b1 Mon Sep 17 00:00:00 2001 From: Scott Sanderson Date: Wed, 9 Nov 2016 18:35:30 -0500 Subject: [PATCH] MAINT: Use fancy default for window_length. --- zipline/pipeline/factors/technical.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/zipline/pipeline/factors/technical.py b/zipline/pipeline/factors/technical.py index 77bda03e..bdbc49ae 100644 --- a/zipline/pipeline/factors/technical.py +++ b/zipline/pipeline/factors/technical.py @@ -718,13 +718,23 @@ class MovingAverageConvergenceDivergence(CustomFactor): hist: Difference between MACD and signal. (Divergence series) """ inputs = [USEquityPricing.close] - - params = {'fast_period': 12, - 'slow_period': 26, - 'signal_period': 9} - + params = ('fast_period', 'slow_period', 'signal_period') outputs = ('MACD', 'signal', 'hist') + def __new__(cls, + fast_period=12, + slow_period=26, + signal_period=9, + *args, + **kwargs): + return super(MovingAverageConvergenceDivergence, cls).__new__( + fast_period=fast_period, + slow_period=slow_period, + signal_period=signal_period, + window_length=slow_period + signal_period, + *args, **kwargs + ) + def calculate_macd(self, col, fast, slow, signal): try: macd, sig, hist = MACD(col,