| | |
| | | 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: |
| | |
| | | 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) |
| | | |
| | | # 计算观察索引,倒序计算 |
| | |
| | | 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), |