def get_data(symbol, start_date=datetime(year=2015, month=1, day=1)): data = DataReader(symbol, 'yahoo', start_date).reset_index() data['Daily_Returns'] = data['Adj Close'].pct_change() data['Daily_Log_Returns'] = np.log(data['Adj Close']) - np.log( data['Adj Close'].shift(1)) data.drop(data.index[:1], inplace=True) data.columns = StockDataDownloader.COLUMNS return data
def get_web_data(self, symbol, src, start_date, end_date=None): try: stk_df = DataReader(symbol, src, start=start_date, end=end_date) stk_df.rename(columns={'Adj. Close': 'Close'}, inplace=True) stk_df.drop(['Adj Close'], axis=1, inplace=True) stk_df['Source'] = src stk_df['Symbol'] = symbol with sqlite3.connect(self.db_path) as con: stk_df.to_sql('Prices', con, if_exists='append') return stk_df except Exception as e: raise Exception, '[+] get_web_data Error - {}'.format(e)
def create_stockdir(): with open("Stocks.csv") as file: reader = csv.reader(file) header = next(reader) if header != None: for row in reader: stock = row[1] df = DataReader(stock, data_source="yahoo", start="2011-01-01", end=datetime.now()) df.drop(["Adj Close"], axis=1) df.to_csv(path + f"\{stock}.csv")
import pandas as pd from pandas_datareader import DataReader import matplotlib.pyplot as plt from pylab import rcParams import yahoo_fin.stock_info as si start = dt.datetime(1980, 12, 1) now = dt.datetime.now() stock = input('enter a ticker: ') while stock != 'quit': price = si.get_live_price(stock) df = DataReader(stock, 'yahoo', start, now) df.drop(df[df["Volume"] < 1000].index, inplace=True) dfmonth = df.groupby(pd.Grouper(freq="M"))["High"].max() glDate = 0 lastGLV = 0 currentDate = "" curentGLV = 0 for index, value in dfmonth.items(): if value > curentGLV: curentGLV = value currentDate = index counter = 0 if value < curentGLV: counter = counter + 1
from sklearn.ensemble import RandomForestRegressor, BaggingRegressor, GradientBoostingRegressor, AdaBoostRegressor from sklearn.neighbors import KNeighborsRegressor from sklearn.neural_network import MLPRegressor import matplotlib.pyplot as plt from pandas_datareader import DataReader import datetime as dt num_of_years = 40 start = dt.datetime.now() - dt.timedelta(int(365.25 * num_of_years)) now = dt.datetime.now() ticker = 'MSFT' df = DataReader(ticker, 'yahoo', start, now) df['Close'] = df['Adj Close'] df = df.drop("Adj Close", axis=1) for sma_period in [5, 10, 20, 50, 100, 200]: indicator_name = "SMA_%d" % (sma_period) df[indicator_name] = df['Close'].rolling(sma_period).mean() # # Adding Bollinger bands df['BollingerBand_Up_20_2'] = df['Close'].rolling( 20).mean() + 2 * df['Close'].rolling(20).std() df['BollingerBand_Down_20_2'] = df['Close'].rolling( 20).mean() - 2 * df['Close'].rolling(20).std() df['BollingerBand_Up_20_1'] = df['Close'].rolling( 20).mean() + df['Close'].rolling(20).std() df['BollingerBand_Down_20_1'] = df['Close'].rolling( 20).mean() - df['Close'].rolling(20).std() df['BollingerBand_Up_10_1'] = df['Close'].rolling(
df['obvPos'].iloc[row] = 1 else: df['obvPos'].iloc[row] = -1 if (df['CCI'].iloc[row] > 0): df['cciPos'].iloc[row] = 1 else: df['cciPos'].iloc[row] = -1 # Clean up dataframe frame = pd.DataFrame() frame['PC'] = df['Adj Close'].pct_change() db = df.copy() df = df.drop(columns=[ 'Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume', 'upper_band', 'lower_band', 'middle_band', 'lower_band', 'macd', 'macdsignal', 'macdhist', 'RSI', 'Momentum', 'Z-Score', 'SMA', 'EMA', 'OBV', 'CCI' ]) df['pos'] = df.mean(axis=1) df['PC'] = frame['PC'] db = db.reset_index() db['Buy'] = np.where((df['pos'] < 0.7), 1, 0) db['Sell'] = np.where((df['pos'] < -0.3), 1, 0) db['Buy_ind'] = np.where((db['Buy'] > db['Buy'].shift(1)), 1, 0) db['Sell_ind'] = np.where((db['Sell'] > db['Sell'].shift(1)), 1, 0) plt.gcf() plt.subplots() plt.rcParams['figure.figsize'] = (15, 10)
import seaborn as sns import matplotlib.pyplot as plt from pandas_datareader import DataReader import datetime as datetime from matplotlib.colors import ListedColormap pd.set_option('display.max_columns', None) start_date = datetime.datetime.now() - datetime.timedelta(days=3) end_date = datetime.date.today() stocks = ['AAPL', 'MSFT', 'GOOGL', 'AMZN', 'FB', 'WMT', 'COST', 'NFLX', 'TSLA', 'SBUX', 'TGT', 'GM', 'GE', 'NIO', 'NKE', 'AXP'] df = DataReader(stocks, 'yahoo', start_date, end_date)['Close'] df = df.reset_index() df = df.drop(['Date'], axis=1) dataframe = df.pct_change() dataframe.index = ['Nothing', 'Change'] dataframe = dataframe.drop(['Nothing']) dataframe = dataframe.transpose() print (dataframe) dataframe = dataframe.reset_index() Yrows = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4] Xcols = [1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4] dataframe['Yrows'] = Yrows dataframe['Xcols'] = Xcols
#pd.set_option("display.max_columns", None) #pd.set_option("display.max_rows", 50) stock = "AAPL" start_date = datetime.datetime.now() - datetime.timedelta(days=365) end_date = datetime.date.today() df = DataReader(stock, "yahoo", start_date, end_date) rows = df.values.tolist() forecast_out = 30 df['Prediction'] = df[['Close']].shift(-forecast_out) X = np.array(df.drop(['Prediction'], 1)) X = X[:-forecast_out] y = np.array(df['Prediction']) Y = y[:-forecast_out] x_train, x_test, y_train, y_test = train_test_split( X, Y, test_size=0.2) # split training and test data # Convert lists into numpy arrays x_train = np.array(x_train) y_train = np.array(y_train) x_test = np.array(x_test) y_test = np.array(y_test)