Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
 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
Exemplo n.º 8
0
   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))
Exemplo n.º 9
0
 def read(cls, ticker):
     if cls.reader is None:
         cls.reader = STOCK_TIMESERIES.init()
     return cls.reader.extract_from_yahoo(ticker)