diff --git a/funcat/func.py b/funcat/func.py index aca5846..9fbf32a 100644 --- a/funcat/func.py +++ b/funcat/func.py @@ -75,11 +75,12 @@ class SMASeries(TwoArgumentSeries): """同花顺专用SMA""" def func(self, series, n, _): - results = np.nan_to_num(series).copy() + # results = np.nan_to_num(series).copy() # FIXME this is very slow - for i in range(1, len(series)): - results[i] = ((n - 1) * results[i - 1] + results[i]) / n - return results + # for i in range(1, len(series)): + # results[i] = ((n - 1) * results[i - 1] + results[i]) / n + results = series.fillna(0) + return results.ewm(min_periods=0, ignore_na=False, adjust=False, alpha=1/n).mean() class SumSeries(NumericSeries):