def to_pd(var,index): ret =[] for i in var: ret.append(to_dict(i)) ret = pd.DataFrame (ret) ret = ret.set_index(index) return ret
def to_pd(var, index): ret = [] for i in var: ret.append(to_dict(i)) ret = pd.DataFrame(ret) ret = ret.set_index(index) return ret
def on_backtest_finish(self, indicator): print('backtest finished', to_dict(indicator)) list1 = self.get_instruments('SHSE', 1, 1) #list2=self.get_instruments('SZSE', 1, 1) #list3=list(set(list1).union(set(list2))) print(len(list1)) bars = self.get_last_dailybars('SZSE.002760') dailybars = self.get_last_n_dailybars('SHSE.000300', 160) print(bars[0].open) print(bars[0].close)
def get_k_data(self, code=None, start=None, end=ct._TODAY_, ktype='D', isOHLC=True): if code[:2] == '60' or\ code[:2] == '00': code = 'SHSE.' + code else: code = 'SZSE.' + code if len(start) == 10: start += ' 09:00:00' if len(end) == 10: end += ' 15:00:00' tmp_end = start last_end = -1 dat = pd.DataFrame() while (tmp_end < end and tmp_end != last_end): if ktype == 'D': bars = md.get_dailybars(code, tmp_end, end) else: bars = md.get_bars(code, self.k_dic[ktype], tmp_end, end) if len(bars) == 0: break rt = [] for i in bars: rt.append(to_dict(i)) dt = pd.DataFrame(rt) if start == tmp_end: dat = dt else: dat = dat.append(dt) print '-----', code, dt.iloc[-1, 12][:19] last_end = tmp_end tmp_end = dt.iloc[-1, 12][:19] next_5min = datetime.strptime( tmp_end, '%Y-%m-%dT%H:%M:%S') + timedelta(minutes=int(ktype)) tmp_end = datetime.strftime(next_5min, '%Y-%m-%d %H:%M:%S') if dat.empty: return dat dat.drop_duplicates(['strendtime'], inplace=True) dat['date'] = dat['strendtime'].apply( lambda x: x[:10] + ' ' + x[11:19]) dat.insert(len(dat.columns), "code", code[5:]) #dat.index = dat['strtime'].apply(lambda x: datetime.strptime(x, '%Y-%m-%dT%H:%M:%S+08:00')) if isOHLC: return dat[[ 'date', 'high', 'low', 'open', 'close', 'volume', 'code' ]] return dat
def get_hist_data(self, code=None, start=None, end=ct._TODAY_, ktype='D'): if code[:2] == '60': code = 'SHSE.' + code else: code = 'SZSE.' + code tmp_end = start last_end = -1 dat = pd.DataFrame() while (tmp_end < end and tmp_end != last_end): if ktype == 'D': bars = md.get_dailybars(code, tmp_end, end) else: bars = md.get_bars(code, self.k_dic[ktype], tmp_end + ' 09:00:00', end + ' 15:00:00') if len(bars) == 0: return pd.DataFrame( [], columns=['high', 'low', 'open', 'close', 'volume']) rt = [] for i in bars: rt.append(to_dict(i)) dt = pd.DataFrame(rt) if start == tmp_end: dat = dt else: dat = dat.append(dt) print '-----', code, dt.iloc[-1, 12][:10] last_end = tmp_end tmp_end = dt.iloc[-1, 12][:10] tomorrow = datetime.strptime(tmp_end, '%Y-%m-%d') + timedelta(days=1) tmp_end = datetime.strftime(tomorrow, '%Y-%m-%d') dat.drop_duplicates(['strendtime'], inplace=True) dat.index = dat['strendtime'].apply( lambda x: datetime.strptime(x, '%Y-%m-%dT%H:%M:%S+08:00')) return dat[['high', 'low', 'open', 'close', 'volume']]
def on_backtest_finish(self, indicator): print('backtest finished', to_dict(indicator))
qh_data_five_min = db['qh_data_five_min'] qh_data_five_daily = db['qh_data_five_daily'] ############################### end = datetime.datetime.now() start_m = end.month - 1 start = datetime.datetime(end.year, start_m, 1, 9, 0, 0) start_e = datetime.datetime(end.year, start_m, 1, 15, 0, 0) e_s_timedetlta = (end - start).days for day in range(e_s_timedetlta): this_start = start + datetime.timedelta(days=day) this_end = start_e + datetime.timedelta(days=day) for f in f_list: bars = md.get_bars(f, 60, this_start.strftime('%Y-%m-%d %H:%M:%S'), this_end.strftime('%Y-%m-%d %H:%M:%S')) for bar in bars: print to_dict(bar) qh_data_one_min.insert_one(to_dict(bar)) time.sleep(2) for day in range(e_s_timedetlta): this_start = start + datetime.timedelta(days=day) this_end = start_e + datetime.timedelta(days=day) for f in f_list: bars = md.get_bars(f, 300, this_start.strftime('%Y-%m-%d %H:%M:%S'), this_end.strftime('%Y-%m-%d %H:%M:%S')) for bar in bars: print to_dict(bar) qh_data_five_min.insert(to_dict(bar)) time.sleep(2) for day in range(e_s_timedetlta):