Spaces:
Sleeping
Sleeping
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) |