def prep(tickers): reader = STOCK_TIMESERIES.init() values = map(lambda ticker: reader.extract_from_yahoo(ticker), tickers) values = map(lambda data: pd.DataFrame(data)['Adj Close'], values) values = list(values) ret = dict(zip(tickers, values)) ret = pd.DataFrame(ret, columns=tickers) return ret
def save(cls, local_dir, ticker, dud): filename = '{}/{}.pkl'.format(local_dir, ticker) if cls.reader is None: cls.reader = STOCK_TIMESERIES.init() prices = cls.reader.extract_from_yahoo(ticker) if prices is None: dud.append(ticker) return dud STOCK_TIMESERIES.save(filename, ticker, prices) return dud
def _init(cls) : if not (cls._data_list is None) : return cls._data_list target = 'test_finance_end' end = globals().get(target,None) reader = STOCK_TIMESERIES.init(end=end) target = 'test_finance_stock_list' stock_list = globals().get(target,[]) cls._data_list = map(lambda stock : reader.extract_from_yahoo(stock), stock_list) cls._data_list = list(cls._data_list) return cls._data_list
def _prices(cls, wait_on_failure, local_dir, ticker, dud): if dud is None: dud = [] filename = '{}/{}.pkl'.format(local_dir, ticker) reader = STOCK_TIMESERIES.init() prices = reader.extract_from_yahoo(ticker) if prices is None: dud.append(ticker) time.sleep(wait_on_failure) return dud STOCK_TIMESERIES.save(filename, ticker, prices) del prices return dud
def main(local, *stock_list): logging.info(stock_list) reader = STOCK_TIMESERIES.init() for stock in stock_list: filename = '{}/historical_prices/{}.pkl'.format(local, stock) ret = reader.extract_from_yahoo(stock) logging.debug(ret.tail(5)) STOCK_TIMESERIES.save(filename, stock, ret) if len(stock_list) > 0: return nasdaq = NASDAQ.init() for stock in nasdaq(): filename = '{}/historical_prices/{}.pkl'.format(local, stock) ret = reader.extract_from_yahoo(stock) STOCK_TIMESERIES.save(filename, stock, ret)
def instance(cls) : if not (cls._singleton is None) : return cls._singleton target = 'env' env = globals().get(target,None) target = 'data_store_stock' stock = globals().get(target,'') if not isinstance(stock,str) : stock = str(stock) target = 'data_store_fund' fund = globals().get(target,'') if not isinstance(fund,str) : fund = str(fund) reader = STOCK_TIMESERIES.init() env.mkdir(stock) env.mkdir(fund) cls._singleton = cls(env,stock,fund,reader) return cls._singleton
def instance(cls, **kwargs) : if not (cls._singleton is None) : return cls._singleton target = 'env' _env = globals().get(target,None) target = "data_store" data_store = globals().get(target,[]) target = "output_file" output_file = globals().get(target,[]) target = 'config_file' config_file = globals().get(target,[]) if not isinstance(config_file,list) : config_file = list(config_file) if len(_env.argv) > 1 : config_file = [_env.argv[1]] if len(_env.argv) > 2 : output_file = [_env.argv[2]] reader = STOCK_TIMESERIES.init() env.mkdir(data_store) cls._singleton = cls(_env,data_store,config_file,output_file,reader) return cls._singleton
log_msg = '%(module)s.%(funcName)s(%(lineno)s) %(levelname)s - %(message)s' logging.basicConfig(stream=sys.stdout, format=log_msg, level=logging.DEBUG) def prep(*ini_list) : ini_list = filter(lambda x : "benchmark" in x , ini_list) print (ini_list) for path, section, key, stock_list in INI.loadList(*ini_list) : if section == 'Index' : pass else : continue yield key, stock_list file_list = env.list_filenames('local/historical_prices/*pkl') ini_list = env.list_filenames('local/*.ini') reader = STOCK_TIMESERIES.init() for name, stock_list in prep(*ini_list) : for stock in stock_list : print ((stock,name)) data = reader.extract_from_yahoo(stock) if data is None : continue ret = data[['Adj Close']] print (ret.head(2)) print (ret.tail(2)) print (ret.mean()) print (ret.std()) print (ret.mean()[0]) print (ret.std()[0]) print (HELPER.find(ret,period=FINANCE.YEAR,span=0)) print (HELPER.find(ret,period=FINANCE.YEAR)) print ((stock,name))
def read(cls, ticker): if cls.reader is None: cls.reader = STOCK_TIMESERIES.init() return cls.reader.extract_from_yahoo(ticker)