From 64acc2bcd5e531f02be2da919e97b7af6bc86e4a Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期二, 27 二月 2024 16:52:21 +0800
Subject: [PATCH] zeromq集成测试

---
 utils/init_data_util.py |   47 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/utils/init_data_util.py b/utils/init_data_util.py
index 3cd570e..7a4008b 100644
--- a/utils/init_data_util.py
+++ b/utils/init_data_util.py
@@ -29,10 +29,39 @@
     return datas
 
 
-# 瑙f瀽鏈�澶ч噺
 def parse_max_volume(datas, is_new_or_near_top=False):
+    result = __parse_max_volume(datas, is_new_or_near_top)
+    refer_index = result[3]
+    # 璁$畻鏈�浣庝环
+    refer_price = datas[refer_index]["high"]
+    min_price = float(refer_price)
+    for i in range(0, refer_index + 1):
+        if min_price > datas[i]["low"]:
+            min_price = datas[i]["low"]
+    if (refer_price - min_price) / refer_price < 0.4:
+        return result
+    # 瓒呰穼
+    new_datas = []
+    for i in range(0, refer_index):
+        # 鑾峰彇娑ㄥ箙
+        item = datas[i]
+        rate = (item["low"] - item["pre_close"]) / item["pre_close"]
+        new_datas.append((i, rate))
+    new_datas.sort(key=lambda x: x[1])
+    refer_index = new_datas[0][0]
+    # 鑾峰彇褰撳墠澶╁拰鍚庝竴澶╄緝澶ч噺
+    if refer_index > 0:
+        if datas[refer_index - 1]["volume"] > datas[refer_index]["volume"]:
+            refer_index -= 1
+
+    return datas[refer_index]["volume"], datas[refer_index]["volume"], datas[refer_index]['bob'].strftime("%Y-%m-%d"), refer_index
+
+
+# 杩斿洖锛�(60澶╂渶澶ч噺,鏄ㄦ棩閲�,閲忓弬鑰冩棩鏈�,鍙傝�冮噺鎹粖浜ゆ槗鏃ユ暟)
+def __parse_max_volume(datas, is_new_or_near_top=False):
     max_volume = 0
     max_volume_date = None
+    max_volume_index = None
     # 鍒ゆ柇30澶╁唴鏄惁鏈夋定鍋�
     if is_new_or_near_top:
         # 30澶╁唴鏄惁鏈夋定鍋�
@@ -50,18 +79,20 @@
             if latest_limit_up_index > 0 and datas[latest_limit_up_index - 1]["volume"] > datas[latest_limit_up_index][
                 "volume"]:
                 return datas[latest_limit_up_index - 1]["volume"], datas[latest_limit_up_index - 1]["volume"], \
-                       datas[latest_limit_up_index - 1]['bob'].strftime("%Y-%m-%d")
+                       datas[latest_limit_up_index - 1]['bob'].strftime("%Y-%m-%d"), latest_limit_up_index - 1
             else:
                 return datas[latest_limit_up_index]["volume"], datas[latest_limit_up_index]["volume"], \
-                       datas[latest_limit_up_index]['bob'].strftime("%Y-%m-%d")
+                       datas[latest_limit_up_index]['bob'].strftime("%Y-%m-%d"), latest_limit_up_index
 
     if is_new_or_near_top:
         # 濡傛灉鏄獊鐮村墠楂樺氨鍙栨渶澶ч噺
-        for item in datas:
+        for i in range(len(datas)):
+            item = datas[i]
             if max_volume < item["volume"]:
                 max_volume = item["volume"]
                 max_volume_date = item["bob"]
-        return max_volume, max_volume, max_volume_date.strftime("%Y-%m-%d")
+                max_volume_index = i
+        return max_volume, max_volume, max_volume_date.strftime("%Y-%m-%d"), max_volume_index
     else:
         date = None
         target_volume = None
@@ -84,7 +115,7 @@
                 if volume < next_volume:
                     volume = next_volume
                     date = datas[i - 1]["bob"]
-                target_volume = (volume, date)
+                target_volume = (volume, date, i)
                 break
 
         # 90涓氦鏄撴棩鏃犳定鍋滐紝鍙栨渶杩�30澶╁唴鐨勬渶楂橀噺浣滀负鍙傝�冮噺
@@ -97,6 +128,6 @@
                 item = datas[i]
                 volume = item["volume"]
                 if max_30_volume_info[0] < volume:
-                    max_30_volume_info = [volume, item["bob"]]
+                    max_30_volume_info = [volume, item["bob"], i]
             target_volume = max_30_volume_info
-        return target_volume[0], target_volume[0], target_volume[1].strftime("%Y-%m-%d")
+        return target_volume[0], target_volume[0], target_volume[1].strftime("%Y-%m-%d"), target_volume[2]

--
Gitblit v1.8.0