| | |
| | | def __new__(cls, *args, **kwargs): |
| | | if not cls.__instance: |
| | | cls.__instance = super(L2BigNumForMProcessor, cls).__new__(cls, *args, **kwargs) |
| | | cls.__load_datas() |
| | | return cls.__instance |
| | | |
| | | @classmethod |
| | | def __get_redis(cls): |
| | | return cls._redis_manager.getRedis() |
| | | |
| | | @classmethod |
| | | def __load_datas(cls): |
| | | _redis = cls._redis_manager.getRedis() |
| | | try: |
| | | keys = RedisUtils.keys(_redis, "m_big_money_begin-*") |
| | | for k in keys: |
| | | code = k.split("-")[-1] |
| | | val = RedisUtils.get(_redis, k) |
| | | tool.CodeDataCacheUtil.set_cache(cls.m_big_money_begin_cache, code, int(val)) |
| | | |
| | | keys = RedisUtils.keys(_redis, "m_big_money_process_index-*") |
| | | for k in keys: |
| | | code = k.split("-")[-1] |
| | | val = RedisUtils.get(_redis, k) |
| | | tool.CodeDataCacheUtil.set_cache(cls.m_big_money_process_index_cache, code, int(val)) |
| | | |
| | | |
| | | |
| | | finally: |
| | | RedisUtils.realse(_redis) |
| | | |
| | | # 保存计算开始位置 |
| | | def set_begin_pos(self, code, index): |
| | |
| | | cache_result = tool.CodeDataCacheUtil.get_cache(self.m_big_money_begin_cache, code) |
| | | if cache_result[0]: |
| | | return cache_result[1] |
| | | val = self.__get_begin_pos(code) |
| | | tool.CodeDataCacheUtil.set_cache(self.m_big_money_begin_cache, code, val) |
| | | return val |
| | | return None |
| | | |
| | | # 清除已经处理的数据 |
| | | def clear_processed_end_index(self, code): |
| | |
| | | cache_result = tool.CodeDataCacheUtil.get_cache(self.m_big_money_process_index_cache, code) |
| | | if cache_result[0]: |
| | | return cache_result[1] |
| | | val = self.__get_processed_end_index(code) |
| | | tool.CodeDataCacheUtil.set_cache(self.m_big_money_process_index_cache, code, val) |
| | | return val |
| | | return None |
| | | |
| | | # 处理大单 |
| | | def process(self, code, start_index, end_index, limit_up_price): |
| | |
| | | @classmethod |
| | | def __save_order_begin_data(self, code, buy_single_index, buy_exec_index, compute_index, num, count, max_num_set, |
| | | volume_rate): |
| | | TradePointManager().set_buy_compute_start_data(code, buy_single_index, buy_exec_index, compute_index, num, count, |
| | | max_num_set, volume_rate) |
| | | TradePointManager().set_buy_compute_start_data(code, buy_single_index, buy_exec_index, compute_index, num, |
| | | count, |
| | | max_num_set, volume_rate) |
| | | |
| | | # 计算下单起始信号 |
| | | # compute_data_count 用于计算的l2数据数量 |