From a00da3062c6c825b585f82275823ac45cdeb6502 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 19 一月 2024 19:16:20 +0800
Subject: [PATCH] L后成交太快撤单

---
 code_attribute/code_nature_analyse.py |   48 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 47 insertions(+), 1 deletions(-)

diff --git a/code_attribute/code_nature_analyse.py b/code_attribute/code_nature_analyse.py
index 05d9470..a00dfe4 100644
--- a/code_attribute/code_nature_analyse.py
+++ b/code_attribute/code_nature_analyse.py
@@ -405,6 +405,52 @@
     return False
 
 
+# 杩炵画娑ㄥ仠鍚庢槸鍚﹀洖璋冧笉瓒冲
+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
+
+
 # 鏄惁鏈夋定鍋�
 def get_first_limit_up_count(datas):
     datas = copy.deepcopy(datas)
@@ -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