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)
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)
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
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]]
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
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)
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])