Пример #1
0
 def down_minute_data(self, count=400, freq=None):
     if pd.isnull(freq):
         self.data = get_k_data_jq(self.stk_code,
                                   count=count,
                                   end_date=get_current_datetime_str(),
                                   freq=self.freq)
     else:
         self.data = get_k_data_jq(self.stk_code,
                                   count=count,
                                   end_date=get_current_datetime_str(),
                                   freq=freq)
Пример #2
0
    def init_today_minute_data(self, count=200, debug_datetime=None):
        """
        为了避免重复下载数据,有时需要维护最近一段时间的分钟数据
        :return:
        """
        try:
            datetime_now = {
                True: get_current_datetime_str(),
                False: fgv.debug_datetime
            }.get(isinstance(fgv.debug_datetime, type(None)))
            self.rt_minute_data = get_k_data_jq(stk=self.stk_code,
                                                freq=self.freq,
                                                count=count,
                                                end_date=datetime_now)
            self.rt_minute_data.loc[:, 'datetime'] = self.rt_minute_data.index
            self.rt_minute_data.loc[:, 'num'] = range(len(self.rt_minute_data))
            self.rt_minute_data = self.rt_minute_data.set_index('num')

            self.rt_minute_update_minute = self.get_minute_from_datetime(
                self.rt_minute_data.tail(1)['datetime'].values[0])
            return True

        except Exception as e_:
            logger_eml.exception('初始下载“rt minute数据”时出错!具体为:%s' % str(e_))
            return False
Пример #3
0
 def save_hist_data(self):
     """
     在内存测试时,应该先运行此函数,此函数会向类的成员变量self.data中注入数据!
     将历史bias数据保存到本地
     :return:
     """
     df = get_k_data_jq(stk=self.stk_code,
                        freq=self.freq,
                        count=self.hist_count)
     self.data = self.add_bias_rank_public(df, self.span_q, self.span_s)
     self.bias_history_data = self.data[self.bias_col].values
     self.save_bias_to_json()
Пример #4
0
    def get_today_df(self, debug_date=None):
        df_ = get_k_data_jq(stk=self.stk_code,
                            count=50,
                            end_date={
                                True: get_current_datetime_str(),
                                False: debug_date
                            }.get(isinstance(debug_date, type(None))))

        # 调整df,增加date列,增加正数index列
        df_['datetime'] = df_.index
        df_['datetime_str'] = df_.apply(lambda x: str(x['datetime']), axis=1)

        # 重置索引
        df_ = df_.reset_index(drop=True)

        return df_
Пример #5
0
    def get_single_trade_time_span(f_code):

        df = get_k_data_jq(stk=f_code, count=60 * 20, freq='1m')

        l_group = list(df.groupby(by='date'))
        l_group.sort(key=lambda x: len(x[1]), reverse=True)
        df = l_group[0][1]

        # 获取该天数据
        df.loc[:, 'datetime_dt'] = df.apply(
            lambda x: convert_np_datetime64_to_datetime(x['datetime']), axis=1)

        df.loc[:, 'num'] = range(0, len(df))
        df.set_index('num')

        df.loc[:, 'dt_next'] = df['datetime_dt'].shift(-1)

        time_span = []
        t_s: datetime.datetime = None
        t_e: datetime.datetime = None

        for idx in df.index:
            t_now: datetime.datetime = df.loc[idx, 'datetime_dt']
            t_next: datetime.datetime = df.loc[idx, 'dt_next']

            if isinstance(t_s, type(None)):
                t_s = t_now
                if t_s.minute % 5 != 0:
                    t_s = t_now - datetime.timedelta(minutes=t_now.minute % 5)

            if pd.isnull(t_next):
                t_e = t_now

            elif t_next.hour * 60 + t_next.minute - (t_now.hour * 60 +
                                                     t_now.minute) > 1:
                t_e = t_now

            if not isinstance(t_e, type(None)):
                time_span.append((t_s, t_e))
                t_s = None
                t_e = None

        return list(set(time_span))
Пример #6
0
# encoding=utf-8
Пример #7
0
 def down_day_data(self, count=150, start_date=None, end_date=None):
     self.data = get_k_data_jq(self.stk_code,
                               count=count,
                               start_date=start_date,
                               end_date=end_date,
                               freq=self.freq)
Пример #8
0
# encoding=utf-8
Пример #9
0
# encoding=utf-8