'''
|
成交进度
|
'''
|
|
# 买入队列
|
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
|