From 79483cba87e5d93e73f52538985c3db236f574c0 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Fri, 13 Dec 2019 20:53:57 +0000 Subject: [PATCH] - improved git-svn-id: http://moon:8086/svn/projects/Stock@307 fda53097-d464-4ada-af97-ba876c37ca34 --- pandas_eval.py | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/pandas_eval.py b/pandas_eval.py index 01dd4ff..d4ef27a 100644 --- a/pandas_eval.py +++ b/pandas_eval.py @@ -22,6 +22,7 @@ import os key = '0UO7Z2MVZ2YSQSVE' thresh_macd = 0.5 show_range_days = 20 +show_title = 'KEYS' titles = [ 'AAPL', @@ -50,9 +51,8 @@ titles = [ 'WAF.DE', 'EVT.DE', 'VOW.DE', - 'AMS.SW', - 'I', - 'OQ3.F'] + 'KEYS', + 'I'] def ema(data, key, alpha=0.5, ic=None): @@ -129,7 +129,6 @@ def bollinger(data, window_days, f=2): result['mid'] = mid return result - class Symbol(object): def __init__(self, name): self.name = name @@ -141,7 +140,6 @@ class Symbol(object): filename = self.name.replace('.','_') + '.h5' fetch = False today = dt.date.today() - try: hdf = pd.HDFStore(filename, 'r') except: @@ -157,7 +155,7 @@ class Symbol(object): if fetch: print ("Fetching \"{}\"".format(self.name)) # Get stock price via data reader - start = dt.datetime(2019,1,1) + start = dt.datetime(today.year,1,1) end = dt.date.today() data = web.DataReader(self.name, "av-daily", start, end, api_key=key) hdf = pd.HDFStore(filename) @@ -166,9 +164,13 @@ class Symbol(object): self.data_full = hdf[self.name]*self.k_euro hdf.close() - def __plot(self, data): - dates = data.index - data.plot() + def __plot(self, d, keys): + dates = d.index + + for key in keys: + data = d[key] + data.plot() + def hover(event): if event.inaxes == self.ax: x_idx = int(event.xdata) @@ -193,9 +195,7 @@ class Symbol(object): self.fig = plt.figure(figNum) self.ax = plt.subplot(311) - self.__plot(data['close']) - self.__plot(data['ema']) - self.__plot(data['sma']) + self.__plot(data, ['ema', 'close', 'sma']) plt.title(self.name) plt.legend() plt.grid() @@ -213,17 +213,21 @@ class Symbol(object): plt.grid() - - figNum = 1 -for title in titles: - sym = Symbol(title) - sym.fetch() - result = sym.analyze() - if result['macd'] > thresh_macd: - sym.show(figNum) - figNum += 1 +if '' != show_title: + sym = Symbol(show_title) + sym.fetch() + sym.analyze() + sym.show(figNum) +else: + for title in titles: + sym = Symbol(title) + sym.fetch() + result = sym.analyze() + if result['macd'] > thresh_macd: + sym.show(figNum) + figNum += 1 plt.show()