From 49f952cfa1dbc5bedaa8a2e136a662bae50aecc1 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期三, 29 十一月 2023 11:14:38 +0800 Subject: [PATCH] bug修改 --- code_attribute/code_nature_analyse.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 46 insertions(+), 5 deletions(-) diff --git a/code_attribute/code_nature_analyse.py b/code_attribute/code_nature_analyse.py index 86f126f..d4f9886 100644 --- a/code_attribute/code_nature_analyse.py +++ b/code_attribute/code_nature_analyse.py @@ -192,9 +192,9 @@ # 璁剧疆鍘嗗彶K绾� def set_record_datas(code, limit_up_price, record_datas): k_format = get_k_format(float(limit_up_price), record_datas) - CodeNatureRecordManager.save_k_format(code, k_format) + CodeNatureRecordManager().save_k_format(code, k_format) natures = get_nature(record_datas) - CodeNatureRecordManager.save_nature(code, natures) + CodeNatureRecordManager().save_nature(code, natures) # 鑾峰彇K绾垮舰鎬� @@ -217,13 +217,14 @@ # 鏄惁鍏锋湁杈ㄨ瘑搴� p9 = is_special(record_datas) + p10 = is_latest_10d_max_volume_at_latest_2d(record_datas) - return p1, p2, p3, p4, p5, p6, p7, p8, p9 + return p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 # 鏄惁鍏锋湁K绾垮舰鎬� def is_has_k_format(limit_up_price, record_datas): - is_too_high, is_new_top, is_lowest, is_near_new_top, is_n, is_v, has_format, volume_info, is_special = get_k_format( + is_too_high, is_new_top, is_lowest, is_near_new_top, is_n, is_v, has_format, volume_info, is_special, has_max_volume = get_k_format( float(limit_up_price), record_datas) if not has_format: return False, "涓嶆弧瓒矺绾垮舰鎬�" @@ -254,7 +255,7 @@ # 鏄惁娑ㄥ緱澶珮 -def is_up_too_high_in_10d(record_datas): +def is_up_too_high_in_10d_with_limit_up(record_datas): datas = copy.deepcopy(record_datas) datas.sort(key=lambda x: x["bob"]) datas = datas[-10:] @@ -290,6 +291,21 @@ return True return False + + +# 10澶╁唴鐨勬渶楂橀噺鏄惁闆嗕腑鍦ㄦ渶杩戜袱澶� +def is_latest_10d_max_volume_at_latest_2d(record_datas): + datas = copy.deepcopy(record_datas) + datas.sort(key=lambda x: x["bob"]) + datas = datas[-10:] + max_volume_info = None + for i in range(0, len(datas)): + if not max_volume_info: + max_volume_info = (i, datas[i]["volume"]) + else: + if max_volume_info[1] < datas[i]["volume"]: + max_volume_info = (i, datas[i]["volume"]) + return len(datas) - max_volume_info[0] <= 2 # 120 澶╁唴鏄惁闀垮緱澶珮 @@ -332,6 +348,31 @@ return False +# 鍦ㄦ渶杩戝嚑澶╁唴鑲′环鏄惁闀垮緱澶珮 +def is_price_too_high_in_days(record_datas, limit_up_price, day_count=6): + datas = copy.deepcopy(record_datas) + datas.sort(key=lambda x: x["bob"]) + datas = datas[0 - day_count:] + min_price = None + max_price = None + for d in datas: + if min_price is None: + min_price = d["low"] + if max_price is None: + max_price = d["high"] + if min_price > d["low"]: + min_price = d["low"] + if max_price < d["high"]: + max_price = d["high"] + if max_price > float(limit_up_price): + return False + rate = (float(limit_up_price) - min_price) / min_price + # print(rate) + if rate >= 0.25: + return True + return False + + # 鏄惁鏈夋定鍋� def get_first_limit_up_count(datas): datas = copy.deepcopy(datas) -- Gitblit v1.8.0