From a99df93c160cd4feb4fb9ee076a49672c5ee0d02 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期二, 14 五月 2024 00:40:55 +0800 Subject: [PATCH] 成交队列输出 --- code_attribute/code_nature_analyse.py | 78 +++++++++++++++++++++++++++++++-------- 1 files changed, 62 insertions(+), 16 deletions(-) diff --git a/code_attribute/code_nature_analyse.py b/code_attribute/code_nature_analyse.py index 05d9470..dc6e69f 100644 --- a/code_attribute/code_nature_analyse.py +++ b/code_attribute/code_nature_analyse.py @@ -385,24 +385,70 @@ datas = copy.deepcopy(record_datas) datas.sort(key=lambda x: x["bob"]) datas = datas[0 - day_count:] - min_price = None - max_price = None + min_price_info = None + max_price_info = 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 min_price_info is None: + min_price_info = d["low"], d + if max_price_info is None: + max_price_info = d["high"], d + if min_price_info[0] > d["low"]: + min_price_info = d["low"], d + if max_price_info[0] < d["high"]: + max_price_info = d["high"], d # if max_price > float(limit_up_price): # return False - rate = (float(limit_up_price) - min_price) / min_price - # print(rate) - if rate >= 0.28: - return True - return False + rate = (float(limit_up_price) - min_price_info[1]["close"]) / min_price_info[1]["close"] + print(rate) + if rate >= 0.319: + return True, rate + return False, rate + + +# 杩炵画娑ㄥ仠鍚庢槸鍚﹀洖璋冧笉瓒冲 +def is_continue_limit_up_not_enough_fall_dwon(record_datas): + # 10 澶╁唴鏄惁鏈夎繛缁�3鏉� + datas = copy.deepcopy(record_datas) + datas.sort(key=lambda x: x["bob"]) + datas = datas[0 - 10:] + limit_up_continue_count_info = None + max_limit_up_continue_count_info_list = [] # [杩炵画娑ㄥ仠娆℃暟,娑ㄥ仠璧风偣] + + for i in range(len(datas)): + item = datas[i] + if __is_limit_up(item): + if not limit_up_continue_count_info: + limit_up_continue_count_info = [1, i] + else: + limit_up_continue_count_info[0] += 1 + else: + if limit_up_continue_count_info: + max_limit_up_continue_count_info_list.append(limit_up_continue_count_info) + limit_up_continue_count_info = None + max_limit_up_info = None + for x in max_limit_up_continue_count_info_list: + if max_limit_up_info is None: + max_limit_up_info = x + if max_limit_up_info[0] <= x[0]: + max_limit_up_info = x + + if not max_limit_up_info or max_limit_up_info[0] < 3: + print("鏃�3杩炴澘") + return False + start_index = max_limit_up_info[1] + max_price_info = [0, None] + for i in range(start_index, len(datas)): + item = datas[i] + if item["high"] > max_price_info[0]: + max_price_info = [item["high"], i] + # 璁$畻鍥炶俯浠锋牸 + lowest_price_threhhold = round((1 - 0.28) * max_price_info[0], 2) + for i in range(max_price_info[1] + 1, len(datas)): + item = datas[i] + if item["low"] < lowest_price_threhhold: + print("鍥炶俯瓒冲") + return False + return True # 鏄惁鏈夋定鍋� @@ -674,7 +720,7 @@ has_continue = True else: continue_count = 0 - if count >= 7 and has_continue: + if count >= 6 and has_continue: return True, "闀挎湡杈ㄨ瘑搴�" return False, "" -- Gitblit v1.8.0