Administrator
2023-09-07 625e981f2b4bc0807e1555400119c7be6b68b2f1
l2/cancel_buy_strategy.py
@@ -27,10 +27,10 @@
from utils.tool import CodeDataCacheUtil
def set_real_place_position(code, index):
def set_real_place_position(code, index, buy_single_index=None):
    DCancelBigNumComputer().set_real_order_index(code, index)
    SecondCancelBigNumComputer().set_real_place_order_index(code, index)
    LCancelBigNumComputer().set_real_place_order_index(code, index)
    LCancelBigNumComputer().set_real_place_order_index(code, index, buy_single_index=buy_single_index)
class SecondCancelBigNumComputer:
@@ -1073,14 +1073,16 @@
    def clear(self, code=None):
        if code:
            self.del_watch_index(code)
            if code in self.__last_trade_progress_dict:
                self.__last_trade_progress_dict.pop(code)
            if code in self.__real_place_order_index_dict:
                self.__real_place_order_index_dict.pop(code)
        else:
            keys = RedisUtils.keys(self.__get_redis(), f"l_cancel_watch_index-*")
            for k in keys:
                code = k.replace("l_cancel_watch_index-", "")
                if code in self.__last_trade_progress_dict:
                    self.__last_trade_progress_dict.pop(code)
                if code in self.__real_place_order_index_dict:
                    self.__real_place_order_index_dict.pop(code)
                self.del_watch_index(code)
    # 计算观察索引,倒序计算
@@ -1112,20 +1114,27 @@
                    break
    # 设置真实下单位置
    def set_real_place_order_index(self, code, index):
    def set_real_place_order_index(self, code, index, buy_single_index=None):
        self.__real_place_order_index_dict[code] = index
        if self.__last_trade_progress_dict.get(code):
            self.compute_watch_index(code, self.__last_trade_progress_dict.get(code), index)
        else:
            if buy_single_index:
                self.compute_watch_index(code, buy_single_index, index)
    # 设置成交位置,成交位置变化之后相应的监听数据也会发生变化
    def set_trade_progress(self, code, index, total_data):
        # 已经有计算的无法触发计算
        old_watch_indexes = self.__get_watch_indexes_cache(code)
        if old_watch_indexes:
            return
        if self.__last_trade_progress_dict.get(code) == index:
            return
        try:
            # 已经有计算的无法触发计算
            old_watch_indexes = self.__get_watch_indexes_cache(code)
            if old_watch_indexes and  self.__last_trade_progress_dict.get(code):
                return
        finally:
        self.__last_trade_progress_dict[code] = index
        if self.__real_place_order_index_dict.get(code):
            # 触发计算
            self.compute_watch_index(code, self.__last_trade_progress_dict.get(code),