Exemplo n.º 1
0
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
Exemplo n.º 2
0
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