From f4333824e6fc82eb7e6c0ff536f31baf6c7c8df2 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 26 六月 2025 14:21:47 +0800
Subject: [PATCH] L后自然最大撤单率最大80%

---
 utils/init_data_util.py |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 50 insertions(+), 6 deletions(-)

diff --git a/utils/init_data_util.py b/utils/init_data_util.py
index e400369..70a3f5b 100644
--- a/utils/init_data_util.py
+++ b/utils/init_data_util.py
@@ -14,12 +14,13 @@
 
 def re_set_price_pres(codes, force=False):
     # 閫氳繃鍘嗗彶鏁版嵁缂撳瓨鑾峰彇
-    result = HistoryKDatasUtils.get_gp_latest_info(codes)
-    for item in result:
-        symbol = item['symbol']
-        symbol = symbol.split(".")[1]
-        pre_close = tool.to_price(decimal.Decimal(str(item['pre_close'])))
-        gpcode_manager.CodePrePriceManager.set_price_pre(symbol, pre_close, force)
+    for code in codes:
+        result = HistoryKDatasUtils.get_history_tick_n(code, 1)
+        for item in result:
+            symbol = item['symbol']
+            symbol = symbol.split(".")[1]
+            pre_close = tool.to_price(decimal.Decimal(str(item['close'])))
+            gpcode_manager.CodePrePriceManager.set_price_pre(symbol, pre_close, force)
 
 
 # 鑾峰彇杩�90澶╃殑鏈�澶ч噺涓庢渶杩戠殑閲�
@@ -62,6 +63,49 @@
         "%Y-%m-%d"), refer_index
 
 
+def parse_max_volume_new(code, datas):
+    """
+    璁$畻杩滈珮閲�
+    @param code:
+    @param datas:
+    @return: [楂橀噺,楂橀噺,楂橀噺鏃ユ湡,楂橀噺绱㈠紩]
+    """
+
+    def __is_limited_up(item):
+        limit_up_price = float(gpcode_manager.get_limit_up_price_by_preprice(code, item["pre_close"]))
+        if abs(limit_up_price - item["high"]) < 0.001:
+            return True
+        return False
+
+    # 鍙栨渶杩�60涓氦鏄撴棩
+    datas = datas[:60]
+
+    # 鍒ゆ柇鏄惁娑ㄥ仠杩�
+    target_index = None
+    for i in range(len(datas)):
+        data = datas[i]
+        if __is_limited_up(data):
+            next_data = None
+            if i > 0:
+                next_data = datas[i - 1]
+            # max锛堟定鍋滆繖涓�澶�, 鍚庝竴澶╋級鐨勯噺
+            if next_data and next_data['volume'] > data['volume']:
+                target_index = i - 1
+            else:
+                target_index = i
+            break
+    if target_index is None:
+        # 60澶╂湭娑ㄥ仠,鑾峰彇60澶╁唴鐨勬渶楂橀噺
+        for i in range(len(datas)):
+            data = datas[i]
+            if target_index is None:
+                target_index = i
+            if data['volume'] > datas[target_index]['volume']:
+                target_index = i
+    return datas[target_index]['volume'], datas[target_index]['volume'], datas[target_index]['bob'].strftime(
+        "%Y-%m-%d"), target_index
+
+
 def parse_max_volume_in_days(datas, max_day):
     """
     瑙f瀽鏈�杩戝嚑澶╂渶澶х殑閲�

--
Gitblit v1.8.0