Administrator
2023-02-05 1252c9489b631905fbce608109260760537b224f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
'''
成交进度
'''
 
# 买入队列
import json
 
import constant
import redis_manager
import tool
import l2_data_manager
import l2.l2_data_util
 
 
class TradeBuyQueue:
    __redis_manager = redis_manager.RedisManager(0)
 
    def __init__(self):
        self.last_buy_queue_data = {}
 
    def __getRedis(self):
        return self.__redis_manager.getRedis()
 
    def __save_buy_queue_data(self, code, num_list):
        key = "trade_buy_queue_data-{}".format(code)
        self.__getRedis().setex(key, tool.get_expire(), json.dumps((num_list, tool.get_now_time_str())))
 
    # 返回数据与更新时间
    def __get_buy_queue_data(self, code):
        key = "trade_buy_queue_data-{}".format(code)
        val = self.__getRedis().get(key)
        if val is None:
            return None, None
        val = json.loads(val)
        return val[0], [1]
 
    def __save_buy_progress_index(self, code, index):
        key = "trade_buy_progress_index-{}".format(code)
        self.__getRedis().setex(key, tool.get_expire(), index)
        # 返回数据与更新时间
 
    def __get_buy_progress_index(self, code):
        key = "trade_buy_progress_index-{}".format(code)
        val = self.__getRedis().get(key)
        if val is None:
            return None
        return int(val)
 
    # 保存数据,返回保存数据的条数
    def save(self, code, limit_up_price, queues):
        if queues == self.last_buy_queue_data.get(code):
            return None
        self.last_buy_queue_data[code] = queues
        min_num = round(constant.L2_MIN_MONEY / (limit_up_price * 100))
        num_list = []
        for num in queues:
            if num > min_num:
                num_list.append(num)
        # 保存列表
        self.__save_buy_queue_data(code, num_list)
        return num_list
 
    # 保存成交索引
    def save_traded_index(self, code, buy1_price, buyQueueBig):
        total_datas = l2_data_manager.local_today_datas.get(code)
        today_num_operate_map = l2_data_manager.local_today_num_operate_map.get(code)
        index = l2.l2_data_util.L2TradeQueueUtils.find_traded_progress_index(buy1_price, total_datas, total_datas,
                                                                             today_num_operate_map, buyQueueBig)
        if index is not None:
            # 保存成交进度
            self.__save_buy_progress_index(code, index)
            return index
        return None
 
    # 获取成交进度索引
    def get_traded_index(self, code):
        index = self.__get_buy_progress_index(code)
        return index