Fin_Research / scraped_data.py
Robert Castagna
feb8 meeting update
813fa51
import json
import requests
import datetime
import pandas as pd
import streamlit as st
import os
import re
import yfinance as yf
import plotly.graph_objects as go
from datetime import timedelta
from dotenv import load_dotenv
load_dotenv()
def get_finnhub_data(example: str) -> json:
"""
Pass in the "example" string from the API documentation. It changes for every endpoint.
:param1 example: '/company-news?symbol=AAPL&from=2023-08-15&to=2023-08-20'
"""
base_url = 'https://finnhub.io/api/v1//'
token = f"&token={os.environ['finnhub_token']}"
request = requests.get(f"{base_url}{example}{token}")
return request.json()
def get_alpha_vantage_data(example: str) -> json:
"""
Pass in the "function" string from the API documentation. It changes for every endpoint.
:param1 example: ''
"""
base_url = 'https://www.alphavantage.co/query?'
token = f"&apikey={os.environ['alpha_api_key']}"
request = requests.get(f"{base_url}{example}{token}")
return request.json()
sp = yf.Ticker("^GSPC")
sp_hist = sp.history(period="1y")['Close']
sp500 = sp_hist.reset_index().rename(columns={'Close':'sp500_Close'})
sp500['sp500_variance'] = sp500['sp500_Close'].var()
beta = sp500.cov().loc['sp500_Close']['Close'] / sp500['sp500_variance'].max()
max_date = sp500['Date'].max()
# plotting sp500 price over time
price_chart = go.Scatter(
x=sp500.Date,
y=sp500.sp500_Close,
name = '1y price history'
)
fig_candle = go.Figure(price_chart)
st.plotly_chart(fig_candle, use_container_width=True)