diff --git a/pandas_eval.py b/pandas_eval.py index 0e9368e..16a8b86 100644 --- a/pandas_eval.py +++ b/pandas_eval.py @@ -3,6 +3,7 @@ import pandas_datareader.data as web import numpy as np import math import matplotlib.pyplot as plt +from scipy.interpolate import UnivariateSpline import datetime as dt import os @@ -21,7 +22,7 @@ import os key = '0UO7Z2MVZ2YSQSVE' thresh_macd = 1.5 -show_range_days = 40 +show_range_days = 20 show_title = ['QCOM', 'VAR1.DE', 'MOR.DE', 'QIA.DE', 'MDG1.DE'] k_euro = 1 / 1.11 N_poly = 7 @@ -241,14 +242,13 @@ class Symbol(object): _macd_curr = self.data_full['macd'][len(self.data_full)-1] self._macd_data = self.data_full['macd'][len(self.data_full) - show_range_days:] - x_r = list(range(0, len(self._macd_data)+1)) + x_r = np.linspace(0, len(self._macd_data), len(self._macd_data)) y_r = self._macd_data.to_numpy() - y_r = np.append(y_r, y_r[len(y_r)-1]) - poly = np.polyfit(x_r, y_r, N_poly) - poly_d = np.polyder(poly) + spl = UnivariateSpline(x_r, y_r) + spl.set_smoothing_factor(0.5) + yf = spl(x_r) + yf_d = spl.derivative()(x_r) - yf = np.polyval(poly, x_r[:len(x_r)-1]) - yf_d = np.polyval(poly_d, x_r[:len(x_r)-1]) self._macd_fitted = pd.DataFrame(np.transpose([yf,yf_d]), index=self._macd_data.index, columns=['macd_fitted', 'macd_fitted_d']) _macd_f_curr = self._macd_fitted['macd_fitted'][len(self._macd_fitted)-1]