- use spline interpolation

git-svn-id: http://moon:8086/svn/projects/Stock@319 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
2019-12-15 19:43:31 +00:00
parent 630da9bf77
commit 7b93fa8327
+7 -7
View File
@@ -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]