コード例 #1
0
ファイル: app2.py プロジェクト: firefly454/stockticker
def home():
    errors = []
    if request.method == "GET":
        return render_template('enter_stock.html')
    else:
        symbol = request.form['symbol']
        api_url = 'https://www.quandl.com/api/v1/datasets/WIKI/%s.json?api_key=8L5MpAx2n-9x-tTp5jw4' %symbol
        session = requests.Session()
        session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
        raw_data = session.get(api_url)
        #r = requests.get(api_url)
        data = raw_data.json()
        df = pd.DataFrame(data['data'])
        df.columns = data['column_names']

        def datetime(x):
            return np.array(x, dtype=np.datetime64)

        p1 = figure(x_axis_type = "datetime")
        p1.title = "Data from Quandl WIKI set"
        p1.grid.grid_line_alpha=0.3
        p1.xaxis.axis_label = 'Date'
        p1.yaxis.axis_label = 'Price'
        #p1.line(datetime(df['Date']), df['Open'], color='#A6CEE3', legend='open')
        if 'open' in request.form:
            p1.line(datetime(df['Date']), df['Open'], color='red', legend='open')
        if 'adjopen' in request.form:
            p1.line(datetime(df['Date']), df['Adj. Open'], color='green', legend='adj. open')
        if 'close' in request.form:
            p1.line(datetime(df['Date']), df['Close'], color='blue', legend='close')
        if 'adjclose' in request.form:
            p1.line(datetime(df['Date']), df['Adj. Close'], color='black', legend='adj. close')
        script, div = components(p1)  
        return render_template('graph.html', symbol=symbol, script=script, div=div)
コード例 #2
0
ファイル: app.py プロジェクト: mikeissah/milestone-project
def graph():

        app.vars['ticker'] = request.form['ticker'] 
        # Pass the ticker to the Quandl URL to get the raw data. Use the key obtained from the Quandl website       
        api_url = 'https://www.quandl.com/api/v1/datasets/WIKI/{}.json?api_key=XFqCpJrHuCwSuEs8h94z'.format(app.vars['ticker'])
        session = requests.Session()
        session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
        raw_data = session.get(api_url)
        # Get the raw json data
        a = raw_data.json()
        # Save the stocks data in pandas dataframe
        df = pandas.DataFrame(a['data'], columns=a['column_names'])
        # Convert data to datetime format
        df['Date'] = pandas.to_datetime(df['Date'])

        p = figure(title='Stock price variation for {}'.format(app.vars['ticker']), x_axis_label='date', x_axis_type='datetime')
        
        # Add a line to the figure corresponding to the type of data selected
        if request.form.get('Close'):
            p.line(x=df['Date'].values, y=df['Close'].values,line_width=2, legend='Close')
        if request.form.get('Adj. Close'):
            p.line(x=df['Date'].values, y=df['Adj. Close'].values,line_width=2, line_color="green", legend='Adj. Close')
        if request.form.get('Open'):
            p.line(x=df['Date'].values, y=df['Open'].values,line_width=2, line_color="red", legend='Open')
        if request.form.get('Adj. Open'):
            p.line(x=df['Date'].values, y=df['Adj. Open'].values,line_width=2, line_color="purple", legend='Adj. Open')

        # Use bokeh's components function to get the plot data (script) and the <div> tag (div) for the figure to be built
        script, div = components(p)
      
        return render_template('stocks.html', script=script, div=div)
コード例 #3
0
def create_plot(stock,types_list):
  # Load data:
  api_url = 'https://www.quandl.com/api/v1/datasets/WIKI/%s.json?api_key=N_mE5xwVmBJ4hfvDMbsP' % stock
  session = requests.Session()
  session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
  raw_data = session.get(api_url)
  
  # Clean data:
  json_string = json.dumps(raw_data.json(), sort_keys=True)
  obj = json.loads(json_string)
  index_dates = pd.to_datetime(pd.Series(np.array(obj['data'])[:,0]),format="%Y-%m-%d")
  df = pd.DataFrame(np.array(obj['data'])[:,1:],dtype=float,columns=obj['column_names'][1:],index=index_dates)
  
  #print(df)
  # Create the plot:
  plot = figure(title='Data from Quandle WIKI set',
                x_axis_label='date',
                x_axis_type='datetime',
                y_axis_label='stock value')
  colors = ["red","blue","black","magenta"]
  i=0
  for sel in types_list:
    plot.line(df.index,df[sel],color=colors[i],alpha=1.,
               muted_color=colors[i], muted_alpha=0.2,legend=sel)
    i+=1
  plot.legend.location = "top_left"
  plot.legend.click_policy="mute"
  return plot
コード例 #4
0
ファイル: utils.py プロジェクト: rerowep/rero-ils
def requests_retry_session(retries=5,
                           backoff_factor=0.5,
                           status_forcelist=(500, 502, 504),
                           session=None):
    """Request retry session.

    :params retries: The total number of retry attempts to make.
    :params backoff_factor: Sleep between failed requests.
        {backoff factor} * (2 ** ({number of total retries} - 1))
    :params status_forcelist: The HTTP response codes to retry on..
    :params session: Session to use.

    """
    session = session or requests.Session()
    retry = Retry(
        total=retries,
        read=retries,
        connect=retries,
        backoff_factor=backoff_factor,
        status_forcelist=status_forcelist,
    )
    adapter = HTTPAdapter(max_retries=retry)
    session.mount('http://', adapter)
    session.mount('https://', adapter)
    return session
コード例 #5
0
 def get_data(ticker):
     api_url = 'https://www.quandl.com/api/v1/datasets/WIKI/%s.json?api_key=%s' % (
         ticker, api_key)
     session = requests.Session()
     session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
     raw_data = session.get(api_url)
     data = raw_data.json()
     df = pd.DataFrame(data['data'], columns=data['column_names'])
     df['Date'] = pd.to_datetime(df['Date'])
     return df
コード例 #6
0
ファイル: app.py プロジェクト: chduong/flask-framework2
def graph():
    #    if request.method == 'POST':
    app.vars['ticker'] = request.form['ticker']

    #################################################################
    ## IMPORTANT: Replace the section in api_url for <YOUR_API_KEY> with your own API Key.
    #################################################################
    api_url = 'https://www.quandl.com/api/v1/datasets/WIKI/%s.json?api_key=<YOUR_API_KEY>' % app.vars[
        'ticker']
    session = requests.Session()
    session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
    raw_data = session.get(api_url)

    # grab the data from API
    data = raw_data.json()

    # converts data to pandas DataFrame
    df = pandas.DataFrame(data['data'], columns=data['column_names'])

    df['Date'] = pandas.to_datetime(df['Date'])

    # Bokeh Plot Set up
    p = figure(title='Stock prices for %s' % app.vars['ticker'],
               x_axis_label='date',
               x_axis_type='datetime')

    # Bokeh Plot Boxes Ticked
    if request.form.get('Close'):
        p.line(x=df['Date'].values,
               y=df['Close'].values,
               line_width=2,
               legend='Close')
    if request.form.get('Adj. Close'):
        p.line(x=df['Date'].values,
               y=df['Adj. Close'].values,
               line_width=2,
               line_color="green",
               legend='Adj. Close')
    if request.form.get('Open'):
        p.line(x=df['Date'].values,
               y=df['Open'].values,
               line_width=2,
               line_color="red",
               legend='Open')
    if request.form.get('Adj. Open'):
        p.line(x=df['Date'].values,
               y=df['Adj. Open'].values,
               line_width=2,
               line_color="purple",
               legend='Adj. Open')
    script, div = components(p)
    return render_template('graph.html', script=script, div=div)
コード例 #7
0
ファイル: app.py プロジェクト: SaltyLaker/milestoneProject-
def graph():

    stockName = request.form.get('ticker')
    closingPrice = request.form.get('closingPrice')
    adjClosingPrice = request.form.get('adjClosingPrice')
    openingPrice = request.form.get('openingPrice')
    adjOpeningPrice = request.form.get('adjOpeningPrice')

    URL = 'https://www.quandl.com/api/v1/datasets/WIKI/' + stockName + '.json?api_key=gVz7XbzeecyxHdkCn8yB'

    session = requests.Session()
    session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
    rawData = session.get(URL)

    rawDataJson = rawData.json()
    df = pandas.DataFrame(rawDataJson['data'],
                          columns=rawDataJson['column_names'])

    df['Date'] = pandas.to_datetime(df['Date'])

    p = figure(title='Stock prices for ' + stockName,
               x_axis_label='date',
               x_axis_type='datetime')

    if closingPrice:
        p.line(x=df['Date'].values,
               y=df['Close'].values,
               line_width=2,
               line_color="black",
               legend='Close')
    if adjClosingPrice:
        p.line(x=df['Date'].values,
               y=df['Adj. Close'].values,
               line_width=2,
               line_color="green",
               legend='Adj. Close')
    if openingPrice:
        p.line(x=df['Date'].values,
               y=df['Open'].values,
               line_width=2,
               line_color="red",
               legend='Open')
    if adjOpeningPrice:
        p.line(x=df['Date'].values,
               y=df['Adj. Open'].values,
               line_width=2,
               line_color="purple",
               legend='Adj. Open')
    script, div = components(p)
    return render_template('graph.html', script=script, div=div)
コード例 #8
0
ファイル: app.py プロジェクト: Vict0riaK/kildu
def graph():
    #    if request.method == 'POST':
    #         app.vars['ticker'] = request.form['ticker']
    app.vars['start'] = request.form['start']
    app.vars['end'] = request.form['end']
    print(request.form['start'])
    print(request.form['end'])

    if (app.vars['start'] < '2010-01-01') or (
            app.vars['end'] > '2018-08-01') or (app.vars['start'] >
                                                app.vars['end']):
        return render_template('error.html')

    else:
        # api_url = 'https://www.quandl.com/api/v1/datasets/WIKI/%s.json?api_key=gVz7XbzeecyxHdkCn8yB' % app.vars['ticker']
        api_url = 'https://www.quandl.com/api/v3/datasets/ZILLOW/C25709_ZRISFRR.json?api_key=QT-coVZNkYPJCs6R9Tkj&start_date=%s&end_date=%s' % (
            app.vars['start'], app.vars['end'])
        print(api_url)

        # api_url = 'https://www.quandl.com/api/v3/datasets/ZILLOW/C25709_ZRISFRR.json?api_key=QT-coVZNkYPJCs6R9Tkj&start_date=2010-11-01&end_date=2013-11-30'
        session = requests.Session()
        session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
        raw_data = session.get(api_url)

        a = raw_data.json()
        a1 = a['dataset']
        df = pandas.DataFrame(a1['data'], columns=a1['column_names'])

        df['Date'] = pandas.to_datetime(df['Date'])

        p = figure(title='Home Value Index',
                   x_axis_label='date',
                   x_axis_type='datetime')

        # if request.form.get('Close'):
        # p.line(x=df['Date'].values, y=df['Close'].values,line_width=2, legend='Close')
        # if request.form.get('Adj. Close'):
        #     p.line(x=df['Date'].values, y=df['Adj. Close'].values,line_width=2, line_color="green", legend='Adj. Close')
        # if request.form.get('Open'):
        #     p.line(x=df['Date'].values, y=df['Open'].values,line_width=2, line_color="red", legend='Open')
        # if request.form.get('Adj. Open'):
        #     p.line(x=df['Date'].values, y=df['Adj. Open'].values,line_width=2, line_color="purple", legend='Adj. Open')

        p.line(x=df['Date'].values,
               y=df['Value'].values,
               line_width=2,
               legend='Close')
        script, div = components(p)
        return render_template('graph.html', script=script, div=div)
コード例 #9
0
def graph():
    #    if request.method == 'POST':
    app.vars['ticker'] = request.form['ticker']

    api_url = 'https://www.quandl.com/api/v3/datasets/WIKI/%s/data.json?api_key=n36teYQNRWq1xmudWvm3' % app.vars[
        'ticker']
    session = requests.Session()
    session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
    raw_data = session.get(api_url)

    a = raw_data.json()
    df = pandas.DataFrame(a['dataset_data']['data'],
                          columns=a['dataset_data']['column_names'])

    df = df[['Date', 'Open', 'Adj. Open', 'Close', 'Adj. Close']]

    p = figure(title='Stock prices for %s' % app.vars['ticker'],
               x_axis_label='date',
               x_axis_type='datetime')

    if request.form.get('open'):
        p.line(x=df['Date'].values,
               y=df['Open'].values,
               line_width=2,
               line_color="red",
               legend_label='Open')
    if request.form.get('adj_open'):
        p.line(x=df['Date'].values,
               y=df['Adj. Open'].values,
               line_width=2,
               line_color="purple",
               legend_label='Adj. Open')
    if request.form.get('close'):
        p.line(x=df['Date'].values,
               y=df['Close'].values,
               line_width=2,
               line_color="blue",
               legend_label='Close')
    if request.form.get('adj_close'):
        p.line(x=df['Date'].values,
               y=df['Adj. Close'].values,
               line_width=2,
               line_color="green",
               legend_label='Adj. Close')
    script, div = components(p)

    return render_template('graph.html', script=script, div=div)
コード例 #10
0
ファイル: app.py プロジェクト: Csun1992/stock-ticker-deploy
def graph():
    app.vars['ticker'] = request.form['ticker']

    api_url = 'https://www.quandl.com/api/v1/datasets/WIKI/%s.json?api_key=gVz7XbzeecyxHdkCn8yB' % app.vars[
        'ticker']
    session = requests.Session()
    session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
    rawData = session.get(api_url)

    rawDataJason = rawData.json()
    df = pandas.DataFrame(rawDataJason['data'],
                          columns=rawDataJason['column_names'])

    df['Date'] = pandas.to_datetime(df['Date'])

    p = figure(title='Stock prices for %s' % app.vars['ticker'],
               x_axis_label='date',
               x_axis_type='datetime')

    if request.form.get('Close'):
        p.line(x=df['Date'].values,
               y=df['Close'].values,
               line_width=2,
               legend='Close')
    if request.form.get('Adj. Close'):
        p.line(x=df['Date'].values,
               y=df['Adj. Close'].values,
               line_width=2,
               line_color="green",
               legend='Adj. Close')
    if request.form.get('Open'):
        p.line(x=df['Date'].values,
               y=df['Open'].values,
               line_width=2,
               line_color="red",
               legend='Open')
    if request.form.get('Adj. Open'):
        p.line(x=df['Date'].values,
               y=df['Adj. Open'].values,
               line_width=2,
               line_color="purple",
               legend='Adj. Open')
    script, div = components(p)
    return render_template('graph.html', script=script, div=div)
コード例 #11
0
def graph():
    if request.method == 'POST':
        app.vars['ticker'] = request.form['ticker']
        app.vars['startdate'] = request.form['startdate']
        app.vars['enddate'] = request.form['enddate']
        print(app.vars['startdate'], app.vars['enddate'])

        #api_url = 'https://www.quandl.com/api/v3/datasets/NSE/%s.json?api_key=ENTER API KEY' % app.vars['ticker']
        api_url = 'https://www.quandl.com/api/v3/datasets/NSE/%s.json?column_index=5&api_key=ENTER API KEY&start_date=%s&end_date=%s' % (
            app.vars['ticker'], app.vars['startdate'], app.vars['enddate'])
        #api_url = 'https://www.quandl.com/api/v3/datasets/NSE/%s.json?api_key=ENTER API KEY&start_date=%s&end_date=%s' % (app.vars['ticker'], app.vars['startdate'], app.vars['enddate'])
        session = requests.Session()
        session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
        raw_data = session.get(api_url)
        print(type(raw_data))
        a = raw_data.json()
        print(a)
        df = pandas.DataFrame(a['dataset']['data'])
        print(df)

        x1 = df[0].astype('datetime64[D]')
        x2 = df[1]
        print(x1)
        print(x2)
        #output_file("line.html")

        p = figure(title='Stock prices for %s' % app.vars['ticker'],
                   x_axis_label='Date',
                   x_axis_type='datetime',
                   y_axis_label='Close',
                   plot_width=400,
                   plot_height=400)

        p.line(x1, x2, legend='Price Movement', line_width=2, color='red')
        show(p)

        resources = INLINE.render()

        script, div = components(p)
        return render_template('graph.html',
                               script=script,
                               div=div,
                               resources=resources)
コード例 #12
0
ファイル: app.py プロジェクト: kevinlarrabee/TDI_Stock
def graph():

        app.vars['ticker'] = request.form['ticker']
        
	#quandl.ApiConfig.api_key = "-kWt3pxKqsM8kzTKA-AY"
	
	## Old Way
        api_url = 'https://www.quandl.com/api/v1/datasets/WIKI/%s.json?api_key=-kWt3pxKqsM8kzTKA-AY' % app.vars['ticker']
        session = requests.Session()
        session.mount('http://', requests.adapters.HTTPAdapter(max_retries=3))
        raw_data = session.get(api_url)
        a = raw_data.json()

	## New Way
	#df = quandl.get("WIKI/%s" %app.vars['ticker'], rows=20)
        
        df = pandas.DataFrame(a['data'], columns=a['column_names'])

        df['Date'] = pandas.to_datetime(df['Date'])
        df = df.head(30)
        p = figure(title='The Stock prices for %s over the most recent 30 days' % app.vars['ticker'],
            x_axis_label='date',
            x_axis_type='datetime')
        
        if request.form.get('Close'):
            p.line(x=df['Date'].values, y=df['Close'].values,line_width=2, line_color= "purple",legend='Closing Price')
        #if request.form.get('Adj. Close'):
            #p.circle(x=df['Date'].values, y=df['Adj. Close'].values,line_width=2, line_color="red", legend='Adj. Close')
        #if request.form.get('Open'):
            #p.line(x=df['Date'].values, y=df['Open'].values,line_width=2, line_color="black", legend='Open')
        #if request.form.get('Adj. Open'):
            #p.circle(x=df['Date'].values, y=df['Adj. Open'].values,line_width=2, line_color="brown", legend='Adj. Open')

	
        script, div = components(p)
        return render_template('plot.html', script=script, div=div)
コード例 #13
0
def graph():
    if request.method == 'GET':
        return render_template('graph.html')
    else:
        ticker = request.form['ticker']
        start_date = request.form['start_date']
        end_date = request.form['end_date']
        form_open = ''
        adj_open = ''
        high = ''
        adj_high = ''
        low = ''
        adj_low = ''
        close = ''
        adj_close = ''

        api_url = '''https://www.quandl.com/api/v3/datasets/WIKI/%s/data.json?api_key=XxmSiACUars8yTcqLQhX&start_date=%s&end_date=%s''' % (
            ticker, start_date, end_date)
        session = requests.Session()
        session.mount('https://', requests.adapters.HTTPAdapter(max_retries=3))
        raw_data = session.get(api_url)

        raw_data = raw_data.json()
        ticker_df = pandas.DataFrame(
            raw_data['dataset_data']['data'],
            columns=raw_data['dataset_data']['column_names'])
        ticker_df['Date'] = pandas.to_datetime(ticker_df['Date'])

        plot = figure(title='Data from Quandle for %s' % ticker,
                      x_axis_label='date',
                      x_axis_type='datetime')

        if request.form.get('open'):
            plot.line(x=ticker_df['Date'].values,
                      y=ticker_df['Open'].values,
                      line_width=2,
                      line_color=Category20[20][0],
                      legend='Open')
            form_open = 'checked'
        if request.form.get('adj_open'):
            plot.line(x=ticker_df['Date'].values,
                      y=ticker_df['Adj. Open'].values,
                      line_width=2,
                      line_color=Category20[20][1],
                      legend='Adj. Open')
            adj_open = 'checked'
        if request.form.get('high'):
            plot.line(x=ticker_df['Date'].values,
                      y=ticker_df['High'].values,
                      line_width=2,
                      line_color=Category20[20][2],
                      legend='High')
            high = 'checked'
        if request.form.get('adj_high'):
            plot.line(x=ticker_df['Date'].values,
                      y=ticker_df['Adj. High'].values,
                      line_width=2,
                      line_color=Category20[20][3],
                      legend='Adj. High')
            adj_high = 'checked'
        if request.form.get('low'):
            plot.line(x=ticker_df['Date'].values,
                      y=ticker_df['Low'].values,
                      line_width=2,
                      line_color=Category20[20][4],
                      legend='Low')
            low = 'checked'
        if request.form.get('adj_low'):
            plot.line(x=ticker_df['Date'].values,
                      y=ticker_df['Adj. Low'].values,
                      line_width=2,
                      line_color=Category20[20][5],
                      legend='Adj. Low')
            adj_low = 'checked'
        if request.form.get('close'):
            plot.line(x=ticker_df['Date'].values,
                      y=ticker_df['Close'].values,
                      line_width=2,
                      line_color=Category20[20][10],
                      legend='Close')
            close = 'checked'
        if request.form.get('adj_close'):
            plot.line(x=ticker_df['Date'].values,
                      y=ticker_df['Adj. Close'].values,
                      line_width=2,
                      line_color=Category20[20][11],
                      legend='Adj. Close')
            adj_close = 'checked'

        script, div = components(plot)
        return render_template('graph.html',
                               ticker=ticker,
                               end=end_date,
                               start=start_date,
                               script=script,
                               div=div,
                               form_open=form_open,
                               adj_open=adj_open,
                               high=high,
                               adj_high=adj_high,
                               low=low,
                               adj_low=adj_low,
                               close=close,
                               adj_close=adj_close)