Python pandas_datareader.data.get_data_yahoo() Examples
The following are 15
code examples of pandas_datareader.data.get_data_yahoo().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
pandas_datareader.data
, or try the search function
.
Example #1
Source File: get_prices.py From IntroNeuralNetworks with MIT License | 9 votes |
def get_sp500(start_date, end_date): """ Gets sp500 price data :param start_date: starting date for sp500 prices :type start_date: string of date "Y-m-d" :param end_date: end date for sp500 prices :type end_date: string of date "Y-m-d" :return: sp500_data.csv """ i = 1 try: sp500_all_data = pdr.get_data_yahoo("SPY", start_date, end_date) except ValueError: print("ValueError, trying again") i += 1 if i < 5: time.sleep(10) get_stock_data(start_date, end_date) else: print("Tried 5 times, Yahoo error. Trying after 2 minutes") time.sleep(120) get_stock_data(start_date, end_date) sp500_data = sp500_all_data["Adj Close"] sp500_data.to_csv("sp500_data.csv")
Example #2
Source File: get_data.py From Using-Deep-Learning-Neural-Networks-and-Candlestick-Chart-Representation-to-Predict-Stock-Market with MIT License | 7 votes |
def fetch_yahoo_data(ticker, start_date, end_date, fname, max_attempt, check_exist): if (os.path.exists(fname) == True) and check_exist: print("file exist") else: # remove exist file if os.path.exists(fname): os.remove(fname) for attempt in range(max_attempt): time.sleep(2) try: dat = data.get_data_yahoo(''.join("{}".format( ticker)), start=start_date, end=end_date) dat.to_csv(fname) except Exception as e: if attempt < max_attempt - 1: print('Attempt {}: {}'.format(attempt + 1, str(e))) else: raise else: break
Example #3
Source File: download_historical_prices.py From MachineLearningStocks with MIT License | 7 votes |
def build_dataset_iteratively( idx_start, idx_end, date_start=START_DATE, date_end=END_DATE ): """ This is an alternative iterative solution to building the stock dataset, which may be necessary if the tickerlist is too big. Instead of downloading all at once, we download ticker by ticker and append to a dataframe. This will download data for tickerlist[idx_start:idx_end], which makes this method suitable for chunking data. :param idx_start: (int) the starting index of the tickerlist :param idx_end: (int) the end index of the tickerlist """ statspath = "intraQuarter/_KeyStats/" ticker_list = os.listdir(statspath) df = pd.DataFrame() for ticker in ticker_list: ticker = ticker.upper() stock_ohlc = pdr.get_data_yahoo(ticker, start=date_start, end=date_end) if stock_ohlc.empty: print(f"No data for {ticker}") continue adj_close = stock_ohlc["Adj Close"].rename(ticker) df = pd.concat([df, adj_close], axis=1) df.to_csv("stock_prices.csv")
Example #4
Source File: stock_reader.py From stock-analysis with MIT License | 6 votes |
def get_ticker_data(self, ticker): """ Get historical OHLC data for given date range and ticker. Tries to get from Investors Exchange (IEX), but falls back to Yahoo! Finance if IEX doesn't have it. Parameter: - ticker: The stock symbol to lookup as a string. Returns: A pandas dataframe with the stock data. """ try: data = web.DataReader(ticker, 'iex', self.start, self.end) data.index = pd.to_datetime(data.index) except: data = web.get_data_yahoo( ticker, self.start, self.end ) return data
Example #5
Source File: stock_reader.py From stock-analysis with MIT License | 6 votes |
def get_index_data(self, index='SP500'): """ Get historical OHLC data from Yahoo! Finance for the chosen index for given date range. Parameter: - index: String representing the index you want data for, supported indices include: - 'SP500' for S&P 500, - 'DOW' for Dow Jones Industrial Average, - 'NASDAQ' for NASDAQ Composite Index Check the `available_tickers` property for more. Returns: A pandas dataframe with the index data. """ if index not in self.available_tickers: raise ValueError( 'Index not supported. ' f"Available tickers are: {', '.join(self.available_tickers)}" ) return web.get_data_yahoo( self.get_index_ticker(index), self.start, self.end )
Example #6
Source File: predictme.py From Using-Deep-Learning-Neural-Networks-and-Candlestick-Chart-Representation-to-Predict-Stock-Market with MIT License | 6 votes |
def fetch_yahoo_data(ticker, start_date, end_date, fname, max_attempt, check_exist): if (os.path.exists(fname) == True) and check_exist: print("file exist") else: # remove exist file if os.path.exists(fname): os.remove(fname) for attempt in range(max_attempt): time.sleep(2) try: dat = data.get_data_yahoo(''.join("{}".format( ticker)), start=start_date, end=end_date) dat.to_csv(fname) except Exception as e: if attempt < max_attempt - 1: print('Attempt {}: {}'.format(attempt + 1, str(e))) else: raise else: break
Example #7
Source File: get_data.py From Going-Deeper-with-Convolutional-Neural-Network-for-Stock-Market-Prediction with Apache License 2.0 | 6 votes |
def fetch_yahoo_data(ticker, start_date, end_date, fname, max_attempt, check_exist): if (os.path.exists(fname) == True) and check_exist: print("file exist") else: # remove exist file if os.path.exists(fname): os.remove(fname) for attempt in range(max_attempt): time.sleep(2) try: dat = data.get_data_yahoo(''.join("{}".format( ticker)), start=start_date, end=end_date) dat.to_csv(fname) except Exception as e: if attempt < max_attempt - 1: print('Attempt {}: {}'.format(attempt + 1, str(e))) else: raise else: break
Example #8
Source File: download_historical_prices.py From MachineLearningStocks with MIT License | 6 votes |
def build_sp500_dataset(start=START_DATE, end=END_DATE): """ Creates the dataset containing S&P500 prices :returns: sp500_index.csv """ index_data = pdr.get_data_yahoo("SPY", start=START_DATE, end=END_DATE) index_data.to_csv("sp500_index.csv")
Example #9
Source File: data.py From ffn with MIT License | 5 votes |
def yf(ticker, field, start=None, end=None, mrefresh=False): if field is None: field = 'Adj Close' tmp = pdata.get_data_yahoo(ticker, start=start, end=end) if tmp is None: raise ValueError('failed to retrieve data for %s:%s' % (ticker, field)) if field: return tmp[field] else: return tmp
Example #10
Source File: util.py From stock-price-prediction with MIT License | 5 votes |
def get_data(name, start, end): data = web.get_data_yahoo(name, start, end) del data['Adj Close'] # we don't need Adj Close data['Return'] = (data['Close'] - data['Open']) / data['Open'] return data
Example #11
Source File: stock_volatility.py From BinomialOptModel with MIT License | 5 votes |
def __init__(self, tk, start, end): self.tk = tk self.start = start self.end = end all_data = pdr.get_data_yahoo(self.tk, start=self.start, end=self.end) self.stock_data = pd.DataFrame(all_data['Adj Close'], columns=["Adj Close"]) self.stock_data["log"] = np.log(self.stock_data)-np.log(self.stock_data.shift(1))
Example #12
Source File: get_prices.py From IntroNeuralNetworks with MIT License | 5 votes |
def get_stock_data(ticker, start_date, end_date): """ Gets historical stock data of given tickers between dates :param ticker: company, or companies whose data is to fetched :type ticker: string or list of strings :param start_date: starting date for stock prices :type start_date: string of date "YYYY-mm-dd" :param end_date: end date for stock prices :type end_date: string of date "YYYY-mm-dd" :return: stock_data.csv """ i = 1 try: all_data = pdr.get_data_yahoo(ticker, start_date, end_date) except ValueError: print("ValueError, trying again") i += 1 if i < 5: time.sleep(10) get_stock_data(ticker, start_date, end_date) else: print("Tried 5 times, Yahoo error. Trying after 2 minutes") time.sleep(120) get_stock_data(ticker, start_date, end_date) stock_data = all_data["Adj Close"] stock_data.to_csv("stock_prices.csv")
Example #13
Source File: backtest.py From IntroNeuralNetworks with MIT License | 5 votes |
def back_test(strategy, seq_len, ticker, start_date, end_date, dim): """ A simple back test for a given date period :param strategy: the chosen strategy. Note to have already formed the model, and fitted with training data. :param seq_len: length of the days used for prediction :param ticker: company ticker :param start_date: starting date :type start_date: "YYYY-mm-dd" :param end_date: ending date :type end_date: "YYYY-mm-dd" :param dim: dimension required for strategy: 3dim for LSTM and 2dim for MLP :type dim: tuple :return: Percentage errors array that gives the errors for every test in the given date range """ data = pdr.get_data_yahoo(ticker, start_date, end_date) stock_data = data["Adj Close"] errors = [] for i in range((len(stock_data)//10)*10 - seq_len - 1): x = np.array(stock_data.iloc[i: i + seq_len, 1]).reshape(dim) / 200 y = np.array(stock_data.iloc[i + seq_len + 1, 1]) / 200 predict = strategy.predict(x) while predict == 0: predict = strategy.predict(x) error = (predict - y) / 100 errors.append(error) total_error = np.array(errors) print(f"Average error = {total_error.mean()}") # If you want to see the full error list then print the following statement # print(errors)
Example #14
Source File: utils.py From empyrical with Apache License 2.0 | 5 votes |
def get_symbol_returns_from_yahoo(symbol, start=None, end=None): """ Wrapper for pandas.io.data.get_data_yahoo(). Retrieves prices for symbol from yahoo and computes returns based on adjusted closing prices. Parameters ---------- symbol : str Symbol name to load, e.g. 'SPY' start : pandas.Timestamp compatible, optional Start date of time period to retrieve end : pandas.Timestamp compatible, optional End date of time period to retrieve Returns ------- pandas.DataFrame Returns of symbol in requested period. """ try: px = web.get_data_yahoo(symbol, start=start, end=end) px['date'] = pd.to_datetime(px['date']) px.set_index('date', drop=False, inplace=True) rets = px[['adjclose']].pct_change().dropna() except Exception as e: warnings.warn( 'Yahoo Finance read failed: {}, falling back to Google'.format(e), UserWarning) px = web.get_data_google(symbol, start=start, end=end) rets = px[['Close']].pct_change().dropna() rets.index = rets.index.tz_localize("UTC") rets.columns = [symbol] return rets
Example #15
Source File: download_historical_prices.py From MachineLearningStocks with MIT License | 5 votes |
def build_stock_dataset(start=START_DATE, end=END_DATE): """ Creates the dataset containing all stock prices :returns: stock_prices.csv """ statspath = "intraQuarter/_KeyStats/" ticker_list = os.listdir(statspath) # Required on macOS if ".DS_Store" in ticker_list: os.remove(f"{statspath}/.DS_Store") ticker_list.remove(".DS_Store") # Get all Adjusted Close prices for all the tickers in our list, # between START_DATE and END_DATE all_data = pdr.get_data_yahoo(ticker_list, start, end) stock_data = all_data["Adj Close"] # Remove any columns that hold no data, and print their tickers. stock_data.dropna(how="all", axis=1, inplace=True) missing_tickers = [ ticker for ticker in ticker_list if ticker.upper() not in stock_data.columns ] print(f"{len(missing_tickers)} tickers are missing: \n {missing_tickers} ") # If there are only some missing datapoints, forward fill. stock_data.ffill(inplace=True) stock_data.to_csv("stock_prices.csv")