def update_ma(range1, range2, stock_picker): #start = datetime.strptime(start_date[:10], '%Y-%m-%d') #end = datetime.strptime(end_date[:10], '%Y-%m-%d') df = StooqDailyReader(stock_picker, start="2020-01-01").read() df = df.sort_values(by='Date') rolling_mean1 = df['Close'].rolling(window=range1).mean() rolling_mean2 = df['Close'].rolling(window=range2).mean() trace1 = go.Scatter(x=df.index, y=df['Close'], mode='lines', name=stock_picker) trace_a = go.Scatter(x=df.index, y=rolling_mean1, mode='lines', yaxis='y', name=f'SMA {range1}') trace_b = go.Scatter(x=df.index, y=rolling_mean2, mode='lines', yaxis='y', name=f'SMA {range2}') layout1 = go.Layout({ 'title': 'Stock Price With Moving Average', "legend": { "orientation": "h", "xanchor": "left" }, "xaxis": { "rangeselector": { "buttons": [{ "count": 6, "label": "6M", "step": "month", "stepmode": "backward" }, { "count": 1, "label": "1Y", "step": "year", "stepmode": "backward" }, { "count": 1, "label": "YTD", "step": "year", "stepmode": "todate" }] } } }) fig = {'data': [trace1], 'layout': layout1} fig['data'].append(trace_a) fig['data'].append(trace_b) return fig
def update_return(stock_picker): #start = datetime.strptime(start_date[:10], '%Y-%m-%d') #end = datetime.strptime(end_date[:10], '%Y-%m-%d') df = StooqDailyReader(stock_picker, start="2020-01-01").read() df_wig = StooqDailyReader("WIG.PL", start="2020-01-01").read() df = df.sort_values(by='Date') df_wig = df_wig.sort_values(by='Date') stocks = pd.DataFrame({ "Date": df.index, str(stock_picker): df["Close"], "WIG": df_wig["Close"] }) stocks = stocks.set_index('Date') stock_return = stocks.apply(lambda x: ((x - x[0]) / x[0]) * 100) trace2 = go.Scatter(x=stock_return.index, y=stock_return[str(stock_picker)], mode='lines', name=str(stock_picker)) trace3 = go.Scatter(x=stock_return.index, y=stock_return['WIG'], mode='lines', name="WIG") fig = { 'data': [trace2], 'layout': { 'xaxis': { 'title': 'Data' }, 'yaxis': { 'title': 'Cena zamknięcia' } } } fig['data'].append(trace3) return fig