Ejemplo n.º 1
0
 def get_following_vix(self, from_date=None, to_date=None):
     from_date = from_date or TradeTime.get_latest_trade_date(
     ) - datetime.timedelta(30)
     to_date = to_date or TradeTime.get_latest_trade_date()
     #self.logger.info('today=%s, from_date=%s, to_date=%s'%(datetime.datetime.today(), from_date, to_date))
     symbols = VIX.get_vix_symbol_list(from_date, to_date, 3)
     #records_index = self.get_vix_price_by_symbol('VIY00')
     symbol_dic = {}
     for symbol in symbols:
         symbol_dic[symbol] = list_to_hash(
             self.get_vix_price_by_symbol_and_date(symbol, from_date,
                                                   to_date))
     days = (to_date - from_date).days + 1
     records_f1 = []
     records_f2 = []
     records_f3 = []
     for i in range(days):
         date = from_date + datetime.timedelta(days=i)
         if TradeTime.is_trade_day(date):
             symbol_f1 = VIX.get_f1_by_date(date)
             symbol_f2 = VIX.get_f2_by_date(date)
             symbol_f3 = VIX.get_f3_by_date(date)
             records_f1.append(
                 [date, symbol_dic[symbol_f1].get(date), symbol_f1])
             records_f2.append(
                 [date, symbol_dic[symbol_f2].get(date), symbol_f2])
             records_f3.append(
                 [date, symbol_dic[symbol_f3].get(date), symbol_f3])
     # self.logger.info([records_f1[-1], records_f2[-1]], records_f3[-1]])
     return (records_f1, records_f2, records_f3)
Ejemplo n.º 2
0
 def get3vix(self, date_str=None):
     date_str = date_str or TradeTime.get_latest_trade_date().strftime(
         '%Y-%m-%d')
     following_symbols = list(VIX.get_following_symbols(date_str))
     symbols = ['VIY00']
     symbols.extend(following_symbols[0:3])
     return map(lambda x: self.get_vix_price_by_symbol(x), symbols)
Ejemplo n.º 3
0
 def load_vix_data_by(self):
     file_path = os.path.join(self.daily_path, 'vix_data', 'vix.json')
     with open(file_path) as fs:
         json_data = json.load(fs)
         for record in json_data['data']:
             vix = VIX.loads(record)
             yield vix
Ejemplo n.º 4
0
 def get_following_vix_by_date(self, date_str):
     symbols = VIX.get_following_symbols(date_str)
     columns = ['symbol', 'dailyLastPrice', 'volume']
     records = []
     for symbol in symbols:
         rows = self.get_vix_by(symbol, date_str, columns)
         if len(rows) > 0:
             records.extend(rows)
         if len(records) == 2:
             break
     #return records
     return [date_str, records[0][1], records[1][1]]
Ejemplo n.º 5
0
 def get_vix_records():
     futures = CBOEScraper.get_vix_future()
     records = []
     for future in futures:
         record = VIX()
         symbol = future[0].replace('X/', '')
         record.symbol = '%s1%s'%(symbol[0:3], symbol[3])
         # record.dailyDate1dAgo = future[1]
         record.dailyDate1dAgo = datetime.date.today() - datetime.timedelta(days=1)
         record.lastPrice = future[2]
         record.dailyLastPrice = future[2]
         records.append(record)
     return records
Ejemplo n.º 6
0
 def parse_vix_data(self):
     df = pd.read_hdf(self.vix_data_file, 'VIX')
     vix = VIX()
     for index, row in df.iterrows():
         vix.symbol = index
         vix.lastPrice = row['lastPrice']
         vix.priceChange = row['priceChange']
         vix.openPrice = row['openPrice']
         vix.highPrice = row['highPrice']
         vix.lowPrice = row['lowPrice']
         vix.previousPrice = row['previousPrice']
         vix.volume = row['volume']
         vix.tradeTime = row['tradeTime']
         vix.dailyLastPrice = row['dailyLastPrice']
         vix.dailyPriceChange = row['dailyPriceChange']
         vix.dailyOpenPrice = row['dailyOpenPrice']
         vix.dailyHighPrice = row['dailyHighPrice']
         vix.dailyLowPrice = row['dailyLowPrice']
         vix.dailyPreviousPrice = row['dailyPreviousPrice']
         vix.dailyVolume = row['dailyVolume']
         vix.dailyDate1dAgo = row['dailyDate1dAgo']
         self.vix_records.append(vix)
Ejemplo n.º 7
0
 def add_missing_data_for_vix(self):
     viq17 = VIX(symbol='VIQ17', lastPrice=12.160, dailyHighPrice=12.560, dailyLowPrice=11.900, dailyLastPrice=12.160,\
               previousPrice=12.325, dailyPreviousPrice=12.325, volume=10365,dailyDate1dAgo= '2017-08-16')
     VIXDAO().insert([viq17])