def OnGotContracts(self, response): # # 继承基类 DataRecorder.OnGotContracts(self, response) # # 获取合约 req = BfGetContractReq(symbol="*", exchange="*") resps = self.GwGetContract(req) symbol_list = [] for resp in resps: print resp self.InsertContract(resp) symbol_list = symbol_list + [resp.symbol] print '*' * 60 # # 根据合约初始化 for symbol in symbol_list: if symbol not in self.last_dt_bar.keys(): self.last_dt_bar[symbol] = {} self.CntBar[symbol] = {} self.last_bar[symbol] = {} dt_now = dt.datetime.now() for k in self.period_key_list: self.last_dt_bar[symbol][k] = dt.datetime( dt_now.year, dt_now.month, dt_now.day, dt_now.hour, dt_now.minute / int(k[1:]) * int(k[1:]), 0) self.CntBar[symbol][k] = BfBarData() self.last_bar[symbol][k] = BfBarData()
def OnGotContracts(self, response): # # 继承基类 DataRecorder.OnGotContracts(self, response) # # 获取合约 req = BfGetContractReq(symbol="*", exchange="*") resps = self.GwGetContract(req) symbol_list = [] for resp in resps: print resp self.InsertContract(resp) symbol_list = symbol_list + [resp.symbol] print '*' * 60 # # 根据合约初始化 for symbol in symbol_list: if symbol not in self.symbol_df.index: sym_df = pd.DataFrame([ re.findall(r'[a-zA-Z]+', symbol), re.findall(r'[0-9]+', symbol) ], index=['symN', 'symC'], columns=[symbol]).T self.symbol_df = self.symbol_df.append(sym_df) print self.symbol_df symN_list = list(set(self.symbol_df['symN'])) for symN in symN_list: if symN not in self.lastPrice_df.keys(): self.lastPrice_df[symN] = pd.DataFrame( 0, columns=self.symbol_df[self.symbol_df['symN'] == symN].index, index=[dt.datetime(2016, 1, 1, 0, 0, 0)]) self.openInterest_df[symN] = pd.DataFrame( 0, columns=self.symbol_df[self.symbol_df['symN'] == symN].index, index=[dt.datetime(2016, 1, 1, 0, 0, 0)]) self.volume_df[symN] = pd.DataFrame( 0, columns=self.symbol_df[self.symbol_df['symN'] == symN].index, index=[dt.datetime(2016, 1, 1, 0, 0, 0)]) self.last_dt_bar[symN] = {} self.CntBar[symN] = {} self.last_bar[symN] = {} for k in self.period_key_list: self.last_dt_bar[symN][k] = dt.datetime( 2016, 1, 1, 0, 0, 0) self.CntBar[symN][k] = BfBarData() self.last_bar[symN][k] = BfBarData()