コード例 #1
0
    def get_can_open_time(self, cfg):
        next_open_time_cfg_name = "n_o_t"
        delay_timedelta_cfg_name = "d_td"

        if next_open_time_cfg_name in cfg:
            _t1 = xq.get_next_open_time(cfg[next_open_time_cfg_name],
                                        self.now())
        else:
            _t1 = None

        if delay_timedelta_cfg_name in cfg:
            _t2 = self.now() + xq.get_interval_timedelta(
                cfg[delay_timedelta_cfg_name])
        else:
            _t2 = None

        if _t1 and _t2:
            return max(_t1, _t2)

        if _t1:
            return _t1
        elif _t2:
            return _t2
        else:
            return None
コード例 #2
0
ファイル: dbmd.py プロジェクト: ydx2099/xquant
    def __get_klines_1min_cache1(self, symbol, interval, s_time, e_time):
        """ 获取分钟k线 """
        if interval not in self.k1ms_cache or (
                interval in self.k1ms_cache
                and self.k1ms_cache_s_time[interval] != s_time):
            # 把整个间隔的分钟k线都取下来
            next_interval_time = s_time + xq.get_interval_timedelta(interval)
            self.k1ms_cache[interval] = self.__get_klines_1min(
                symbol, s_time, next_interval_time)
            self.k1ms_cache_s_time[interval] = s_time

        tmp_len = int((e_time - s_time).total_seconds() / 60)
        if tmp_len >= len(self.k1ms_cache[interval]):
            return self.k1ms_cache[interval]

        e_timestamp = e_time.timestamp() * 1000
        while tmp_len > 0:
            if self.k1ms_cache[interval][tmp_len]["open_time"] <= e_timestamp:
                break
            tmp_len -= 1
        return self.k1ms_cache[interval][:tmp_len]
コード例 #3
0
                        '--display',
                        action='store_true',
                        help='display info')
    args = parser.parse_args()
    # print(args)

    if not (args.s and args.r and args.k and args.m):
        parser.print_help()
        exit(1)

    start_time, end_time = split_time_range(args.r)
    print("range: [%s, %s)" % (start_time, end_time))

    interval = args.k
    collection = xq.get_kline_collection(args.s, interval)
    td = xq.get_interval_timedelta(interval)
    period = xq.get_interval_seconds(interval)
    tick_time = xq.get_open_time(interval, start_time)
    if tick_time < start_time:
        tick_time = xq.get_open_time(interval, start_time + td)

    db = md.MongoDB(mongo_user, mongo_pwd, args.m, db_url)
    target_len = int(
        (int(end_time.timestamp()) - int(start_time.timestamp())) / period)
    print("Target length:", target_len)

    klines = db.find_sort(
        collection, {
            "open_time": {
                "$gte": int(start_time.timestamp()) * 1000,
                "$lt": int(end_time.timestamp()) * 1000