def update(self):
		"""
		"""

		wl = self.portfolio.watch_list
		for ticker, val in wl.items():
			if ticker in ma_short and ticker in ma_long:
				ma_short[TIME.timestamp].append(mean(DATA.get_data_interval(ticker,
																	   TIME.timestamp,
																	   TIME.timestamp + timedelta(days=20),
																	   'close',
																	   config.DAY_INTERVAL)))
				ma_long[TIME.timestamp].append(mean(DATA.get_data_interval(ticker,
																	  TIME.timestamp,
																	  TIME.timestamp + timedelta(days=150),
																	  'close',
																	  config.DAY_INTERVAL)))
			else:
				ma_short[TIME.timestamp] = mean(DATA.get_data_interval(ticker,
																	   TIME.timestamp,
																	   TIME.timestamp + timedelta(days=20),
																	   'close',
																	   config.DAY_INTERVAL))
				ma_long[TIME.timestamp] = mean(DATA.get_data_interval(ticker,
																	  TIME.timestamp,
																	  TIME.timestamp + timedelta(days=150),
																	  'close',
																	  config.DAY_INTERVAL))
    def __init__(self, name, portfolio, shortterm, longterm):
        """
        :param name: Name of Algorithm
        """

        self.name = name
        self.portfolio = portfolio
        self.ma_short = {}
        self.ma_long = {}
		self.shortterm = shortterm
		self.longterm = longterm
		wl = self.portfolio.watch_list
		for ticker, val in wl.items():
			ma_short[ticker] = {}
			ma_long[ticker] = {}
			ma_short[ticker][TIME.timestamp] = mean(DATA.get_data_interval(ticker,
																   TIME.timestamp,
																   TIME.timestamp + timedelta(days=self.shortterm),
																   'close',
																   config.DAY_INTERVAL))
			ma_long[ticker][TIME.timestamp] = mean(DATA.get_data_interval(ticker,
																  TIME.timestamp,
																  TIME.timestamp + timedelta(days=self.longterm),
																  'close',
																  config.DAY_INTERVAL))
示例#3
0
 def update_special(self):
     dividend = DATA.get_data(self.ticker, TIME.date, 'dividend_amount')
     split = DATA.get_data(self.ticker, TIME.date, 'split_coefficient')
     if dividend is not None and split is not None:
         self.dividend = dividend
         self.split = split
     else:
         self.dividend = 0
         self.split = 1
    def get_quote(self, ticker, timestamp=None):
        if timestamp is None:
            timestamp = self.curr_time

        quote = {}
        quote['open'] = DATA.get_data(ticker, timestamp, 'open')
        quote['high'] = DATA.get_data(ticker, timestamp, 'high')
        quote['low'] = DATA.get_data(ticker, timestamp, 'low')
        quote['close'] = DATA.get_data(ticker, timestamp, 'close')
        quote['volume'] = DATA.get_data(ticker, timestamp, 'volume')
        
        return quote
    def get_quote(self, ticker, timestamp=None, daily=False):
        if timestamp is None:
            timestamp = self.curr_time

        if timestamp > self.curr_time:
            print('Request of future data\n')

        quote = {}
        quote['open'] = DATA.get_data(ticker, timestamp, 'open', daily)
        quote['high'] = DATA.get_data(ticker, timestamp, 'high', daily)
        quote['low'] = DATA.get_data(ticker, timestamp, 'low', daily)
        quote['close'] = DATA.get_data(ticker, timestamp, 'close', daily)
        quote['volume'] = DATA.get_data(ticker, timestamp, 'volume', daily)

        return quote
示例#6
0
    def update_data(self):
        for ticker, val in self.portfolio.watch_list.items():
            self.dataset[ticker] = DATA.get_data_interval(ticker,
                                                          TIME.timestamp - timedelta(days=self.num_days),
                                                          TIME.timestamp,
                                                          'close',
                                                          INTERVAL)

        self.train_set, self.test_set = dataproc.process_data(self.dataset)
 def preprocess(self):
     tickers = {}
     wl = self.portfolio.watch_list
     for ticker, val in wl.items():
         tickers[ticker] = []
         data = DATA.get_data_interval(ticker,
                                TIME.timestamp - timedelta(days=50),
                                TIME.timestamp,
                                'close',
                                INTERVAL)
         train_split = len(data) * 0.9
         test_split = len(data) * 0.1
         train = data[train_split:]
         test = data[:test_split]
         for i, val in enumerate(data):
             window = data[:5]
示例#8
0
 def set_quote(self):
     quote = DATA.get_data(self.ticker, TIME.timestamp, 'close')
     if quote is not None:
         self.cur_quote = quote
         return True
     return False