Administrator
2023-08-07 e8ea6340db725a3b36a78e090fc6f97a90900264
l2/l2_data_manager_new.py
@@ -57,6 +57,7 @@
# m值大单处理
m_big_money_begin_cache={}
class L2BigNumForMProcessor:
    def __init__(self):
@@ -67,7 +68,8 @@
    # 保存计算开始位置
    def set_begin_pos(self, code, index):
        if self.__get_begin_pos(code) is None:
        if self.__get_begin_pos_cache(code) is None:
            tool.CodeDataCacheUtil.set_cache(m_big_money_begin_cache, code, index)
            # 保存位置
            key = "m_big_money_begin-{}".format(code)
            RedisUtils.setex(self.__get_redis(), key, tool.get_expire(), index)
@@ -79,6 +81,15 @@
        if val is None:
            return None
        return int(val)
    def __get_begin_pos_cache(self, code):
        cache_result = tool.CodeDataCacheUtil.get_cache(m_big_money_begin_cache,code)
        if cache_result[0]:
            return cache_result[1]
        val =   self.__get_begin_pos(code)
        tool.CodeDataCacheUtil.set_cache(m_big_money_begin_cache,code,val)
        return val
    # 清除已经处理的数据
    def clear_processed_end_index(self, code):
@@ -101,7 +112,7 @@
    # 处理大单
    def process(self, code, start_index, end_index, limit_up_price):
        begin_pos = self.__get_begin_pos(code)
        begin_pos = self.__get_begin_pos_cache(code)
        if begin_pos is None:
            # 没有获取到开始买入信号
            return
@@ -320,7 +331,7 @@
            # 时间差不能太大才能处理
            if not l2_trade_util.is_in_forbidden_trade_codes(code):
                # 判断是否已经挂单
                state = trade_manager.get_trade_state(code)
                state = trade_manager.get_trade_state_cache(code)
                start_index = len(total_datas) - len(add_datas)
                end_index = len(total_datas) - 1
                if state == trade_manager.TRADE_STATE_BUY_DELEGATED or state == trade_manager.TRADE_STATE_BUY_PLACE_ORDER or state == trade_manager.TRADE_STATE_BUY_SUCCESS: