# 涨停时间管理器
|
"""
|
涨停时间管理器
|
"""
|
import redis_manager
|
import tool
|
import global_util
|
|
_redisManager = redis_manager.RedisManager(0)
|
|
|
def save_limit_up_time(code, time):
|
_time = get_limit_up_time(code)
|
if _time is None:
|
redis = _redisManager.getRedis()
|
redis.setex("limit_up_time-{}".format(code), tool.get_expire(), time)
|
global_util.limit_up_time[code] = time
|
|
|
def get_limit_up_time(code):
|
time = global_util.limit_up_time.get(code)
|
if time is None:
|
redis = _redisManager.getRedis()
|
time = redis.get("limit_up_time-{}".format(code))
|
if time is not None:
|
global_util.limit_up_time[code] = time
|
|
return time
|
|
|
def load_limit_up_time():
|
redis = _redisManager.getRedis()
|
keys = redis.keys("limit_up_time-*")
|
for key in keys:
|
code = key.replace("limit_up_time-", "")
|
global_util.limit_up_time[code] = redis.get(key)
|
|
|
# 板块强度排序
|
def sort_code_by_limit_time(codes):
|
if not global_util.limit_up_time:
|
load_limit_up_time()
|
list = []
|
for code in codes:
|
limit_up_time = global_util.limit_up_time.get(code)
|
if limit_up_time is not None:
|
list.append((code, limit_up_time))
|
new_s = sorted(list, key=lambda e: int(e[1].replace(":", "")))
|
dict_ = {}
|
# 相同值为同一排序
|
sort_index = 0
|
for i in range(0, len(new_s)):
|
if new_s[i - 1][1] != new_s[i][1] and i > 0:
|
sort_index += 1
|
dict_[new_s[i][0]] = sort_index
|
return dict_
|
|
|
if __name__ == "__main__":
|
list = [("1234578", "09:00:03"), ("12345", "09:00:00"), ("123456", "09:00:00"), ("123457", "09:00:03")]
|
new_s = sorted(list, key=lambda e: int(e[1].replace(":", "")))
|
dict_ = {}
|
# 相同值为同一排序
|
sort_index = 0
|
for i in range(0, len(new_s)):
|
if new_s[i - 1][1] != new_s[i][1] and i > 0:
|
sort_index += 1
|
dict_[new_s[i][0]] = sort_index
|
print(dict_)
|