Ejemplo n.º 1
0
    def test_get_data_interval(self):
        # daily interval data
        pan = web.get_data_morningstar(symbols='XOM',
                                       start='2013-01-01',
                                       end='2013-12-31',
                                       interval='d')
        assert len(pan) == 261

        # weekly interval data
        pan = web.get_data_morningstar(symbols='XOM',
                                       start='2013-01-01',
                                       end='2013-12-31',
                                       interval='w')
        assert len(pan) == 54

        # monthly interval data
        pan = web.get_data_morningstar(symbols='XOM',
                                       start='2013-01-01',
                                       end='2013-12-31',
                                       interval='m')
        assert len(pan) == 13

        # test fail on invalid interval
        with pytest.raises(ValueError):
            web.get_data_morningstar('XOM', interval='NOT VALID')
Ejemplo n.º 2
0
    def incl_dividend_column_multi(self):
        df = web.get_data_morningstar(symbols=['XOM', 'MSFT'],
                                      start='2013-01-01',
                                      end='2013-03-04',
                                      incl_dividends=True)

        assert ("isDividend" in df)
Ejemplo n.º 3
0
    def test_get_data_multiple_symbols_two_dates(self):
        df = web.get_data_morningstar(symbols=['XOM', 'MSFT'],
                                      start='2013-01-01',
                                      end='2013-03-04')

        assert len(df.index.levels[0]) == 2
        assert 'XOM' in df.index.levels[0]
        assert 'MSFT' in df.index.levels[0]

        # sanity checking
        assert df.dtypes['Close'] == np.float64
        assert df.dtypes['Open'] == np.float64
        assert df.dtypes['Low'] == np.float64
        assert df.dtypes['High'] == np.float64
        assert df.dtypes['Volume'] == np.int64
Ejemplo n.º 4
0
import pickle
import time

style.use('ggplot')  #Makes graph look nice

start_day = datetime.date(2013, 1, 1)
end_day = datetime.date(2018, 4, 10)

delta_days = end_day - start_day

days_inbetween = [start_day]

for i in range(delta_days.days + 1):
    days_inbetween.append(start_day + datetime.timedelta(days=i))

df = web.get_data_morningstar('AAPL', start_day, end_day)
# df = quandl.get("EOD/HD", authtoken="jMntsFGxviSof9LiXbG2")

df = df[['Open', 'High', 'Low', 'Close',
         'Volume']]  #Grab important datasets only

old_days_inbetween = list(df.index)  #Get all dates in same format
dictionary_days = dict(zip(old_days_inbetween, days_inbetween))
df.rename(index=dictionary_days, inplace=True)
df.reset_index(inplace=True)
df.drop("Symbol", axis=1, inplace=True)
df.set_index('Date', inplace=True)  #Replaces index of Symbol with Date

df['HL_PCT'] = 100 * (
    (df['High'] - df['Low']) / df['High'])  #How volitile the market is
df['PCT_Change'] = 100 * ((df['Close'] - df['Open']) / df['Open']
Ejemplo n.º 5
0
 def test_get_data_multiple_symbols(self):
     # just test that we succeed
     sl = ['AAPL', 'AMZN', 'GOOG']
     web.get_data_morningstar(sl, '2012')
Ejemplo n.º 6
0
 def test_get_data_single_symbol(self):
     # single symbol
     # just test that we succeed
     web.get_data_morningstar('GOOG')
Ejemplo n.º 7
0
 def excl_volume_column_multi(self):
     df = web.get_data_morningstar(symbols=["XOM", "MSFT"],
                                   start='2013-01-01',
                                   end='2013-03-04',
                                   incl_volume=False)
     assert ("Volume" not in df.keys())
Ejemplo n.º 8
0
                #print(filehandle)
                pickle.dump(df, filehandle)
        else:
            print('Already have KR for {}'.format(ticker))

    pass

def create_price_history_table(tickers):
    PH = pd.DataFrame()
    for i in range(0,len(tickers)):
        print tickers[i]
    return PH

start = dt.datetime(2017,2,1)
end = dt.datetime.now()
df = web.get_data_morningstar('XJSE:FSR', start, end, incl_dividends = True, incl_volume = True, incl_splits = True)
df['100ma'] = df['Close'].rolling(window=100, min_periods=0).mean()
print(df.head(1000))


def main():
    """main entry poin t for script"""
    create_directories()
    ignore = np.array(['ANDV', 'BKNG', 'BHF', 'CBRE', 'DWDP', 'DXC','TPR','UAA','WELL'])
    #get_price_history(ignoreset = ignore)
    #get_key_ratios(ignoreset=ignore)
    pass


if __name__ == '__main__':
    sys.exit(main())