# 板块中的代码强度排序
|
|
|
# 板块强度排序,根据当前时间是否涨停,涨停时间排序
|
import functools
|
|
import global_util
|
import limit_up_time_manager
|
from trade import trade_data_manager
|
|
__codeActualPriceProcessor = trade_data_manager.CodeActualPriceProcessor()
|
|
|
# 同一板块的数据排序
|
def sort_codes(codes, target_code):
|
def cmp(a, b):
|
la = 1 if a[2] else 0
|
lb = 1 if b[2] else 0
|
if la != lb:
|
return lb - la
|
return int(a[1].replace(":", "")) - int(b[1].replace(":", ""))
|
|
if not global_util.limit_up_time:
|
limit_up_time_manager.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:
|
is_limit_up = __codeActualPriceProcessor.current_is_limit_up(code)
|
if code == target_code:
|
is_limit_up = True
|
list.append((code, limit_up_time,is_limit_up))
|
new_s = sorted(list, key=functools.cmp_to_key(cmp))
|
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_
|