From 8c7f84cbd0afde7600b0c67a8032fa19c57d8c41 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 05 二月 2024 11:18:33 +0800
Subject: [PATCH] L撤快速成交触发撤单修改

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

diff --git a/code_attribute/code_nature_analyse.py b/code_attribute/code_nature_analyse.py
index 05d9470..ef5b32a 100644
--- a/code_attribute/code_nature_analyse.py
+++ b/code_attribute/code_nature_analyse.py
@@ -400,9 +400,55 @@
     #     return False
     rate = (float(limit_up_price) - min_price) / min_price
     # print(rate)
-    if rate >= 0.28:
+    if rate >= 0.319:
         return True
     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
 
 
 # 鏄惁鏈夋定鍋�
@@ -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