Fin_Research / scraped_data.py
Robert Castagna
feb8 meeting update
813fa51
raw
history blame
No virus
1.57 kB
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)