예제 #1
0
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
예제 #2
0
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
예제 #3
0
 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)
예제 #4
0
    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
예제 #5
0
파일: gm_api.py 프로젝트: zzprice/xuefu
    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']]
예제 #6
0
 def on_backtest_finish(self, indicator):
     print('backtest finished', to_dict(indicator))
예제 #7
0
 def on_backtest_finish(self, indicator):
     print('backtest finished', to_dict(indicator))
예제 #8
0
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):