Administrator
2023-02-08 3ec79004bd769828c8dc18ed35280f81cfb473ff
l2/safe_count_manager.py
@@ -59,7 +59,13 @@
        return vals
    def clear_data(self, code):
        pass
        key_regex = f"safe_count_l2-{code}-*"
        keys = self.__getRedis().keys(key_regex)
        for k in keys:
            self.__getRedis().delete(k)
        key = f"latest_place_order_info-{code}"
        self.__getRedis().delete(key)
    # 获取基础的安全笔数
    def __get_base_save_count(self, code):
@@ -68,6 +74,9 @@
    # 获取最后的安全笔数
    def get_safe_count(self, code):
        rate = self.__get_rate(code)
        print("--------------------------------")
        print("安全笔数比例:", rate)
        print("--------------------------------")
        count = self.__get_base_save_count(code)
        count = round(count * rate)
        if count < 8:
@@ -98,13 +107,17 @@
            data = total_datas[i]
            val = data["val"]
            # 如果没有取消位置就一直计算下去, 计算截至时间不能大于取消时间
            if cancel_time and int(cancel_time.split(":", "")) < int(val["time"].split(":", "")):
            if cancel_time and int(cancel_time.replace(":", "")) < int(val["time"].replace(":", "")):
                break_index = i
                break
        if break_index >= 0:
            end_index = break_index - 1
        # 获取开始计算的位置
        start_compute_index = min(start_index, last_buy_single_index)
        if start_compute_index <= process_index:
            start_compute_index = process_index + 1
        for i in range(start_index, end_index):
        for i in range(start_compute_index, end_index):
            data = total_datas[i]
            val = data["val"]
            if process_index >= i:
@@ -128,7 +141,10 @@
        vals = self.__get_all_compute_progress(code)
        rate = (1 - 0)
        for val in vals:
            rate *= (1 - round((val[2] - val[3]) / val[2], 4))
            temp_rate = (1 - round((val[2] - val[3]) / val[2], 4))
            if temp_rate > 1:
                temp_rate = 1
            rate *= temp_rate
        return rate
    # 下单成功