Theoretical report
Experimental report
Preparing the financial data (news & market values)
from FinancialData import financial_data
iex = financial_data()
print(iex.get_trade_bars(['AAPL'], '1m')[:10])
print(iex.get_news(['AAPL', 'MSFT'])[['symbol','time','headline']][:10])
# list(iex.all_ticker()) : list off all valid securities' symbols
# This step could take a while, considering that this API provides 8750 security's related news
df = iex.get_news(list(iex.all_ticker()))
df.to_excel("assets/news.xlsx")
##### IOdy.py : ######
import pandas as pd
from datetime import datetime, timedelta
from pandas_datareader import data
import numpy as np
news = pd.read_excel('assets/news.xlsx', index_col=0)
#remove news that are published earlier than 30 days from today
absolute_thresh = pd.Timestamp(datetime.today().date()-timedelta(days=37))
news = pd.read_excel('assets/news.xlsx', index_col=0)
news = news.loc[news['time']>=absolute_thresh]
news[['symbol', 'time', 'headline', 'summary']].head(2)
symbol | time | headline | summary | |
---|---|---|---|---|
0 | KAI | 2019-04-04 16:25:54 | 12 Upcoming Dividend Increases | I'm a huge fan of dividend growth stocks an... |
1 | ALTM | 2019-04-12 21:27:00 | FERC clears EPIC pipeline rates, three others ... | The 550K bbl/day EPIC pipeline wins appr... |
# This function uses Yahoo Finance to market data
def get_market(security, start_date, end_date):
end_date_str = end_date.strftime("%Y-%m-%d")
start_date_str = start_date.strftime("%Y-%m-%d")
asset_ = data.DataReader(security, start=start_date_str, end=end_date_str, data_source='yahoo')
return asset_
get_market('AAPL', intervals_[0][0], intervals_[0][1])
High | Low | Open | Close | Volume | Adj Close | |
---|---|---|---|---|---|---|
Date | ||||||
2019-03-21 | 196.330002 | 189.809998 | 190.020004 | 195.089996 | 51034200 | 195.089996 |
2019-03-22 | 197.690002 | 190.779999 | 195.339996 | 191.050003 | 42407700 | 191.050003 |