From 6da589c084f8fa15555aa365d5f79e6e85e6dc5c Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 09 十月 2023 09:54:46 +0800
Subject: [PATCH] bug修复

---
 trade/sell_data_processor.py |   76 +++++++++-----------------------------
 1 files changed, 18 insertions(+), 58 deletions(-)

diff --git a/trade/sell_data_processor.py b/trade/sell_data_processor.py
index 7a55091..ec06792 100644
--- a/trade/sell_data_processor.py
+++ b/trade/sell_data_processor.py
@@ -5,72 +5,32 @@
 
 
 class TickDataProcess:
-    # 鍒濆鍖栧師濮嬩环鏍�,鍙�9鐐�25鐨勪环鏍�
-    __last_price_infos = {}
-
-    __last_15s_price_infos = {}
-
-    __reference_price_info = {}
+    # 鏈�楂樹环
+    __highest_price_infos = {}
 
     @classmethod
     def init_origin_price(cls, code, price, rate_percent):
-        cls.__last_price_infos[code] = [("09:25:00", price, rate_percent)]
-        cls.__last_15s_price_infos[code] = [("09:25:00", price, rate_percent)]
-        cls.__reference_price_info[code] = ("09:25:00", price, rate_percent)
-
-    # 鑾峰彇15s鏈�缁堢殑浠锋牸
-    @classmethod
-    def get_15_seconds_price_info(cls, price_infos, max_amplitude_rate_percent):
-        final_price_info = price_infos[-1]
-        max_rate_info = None
-        for price_info in price_infos:
-            if price_info - price_infos[0][2] > max_amplitude_rate_percent:
-                if not max_rate_info:
-                    max_rate_info = price_info
-                if max_rate_info[2] < price_info[2]:
-                    max_rate_info = price_info
-        if max_rate_info:
-            final_price_info = max_rate_info
-        return final_price_info
+        cls.__highest_price_infos[code] = [("09:25:00", price, rate_percent)]
 
     # 浠锋牸淇℃伅(鏃堕棿,鐜颁环,娑ㄥ箙)
+    # return 鏄惁鍑忎粨
     @classmethod
     def process_tick_data(cls, code, time_str, price, rate_percent, max_amplitude_rate_percent=0.6):
+        # 闈炰氦鏄撴椂闂�
+        if tool.trade_time_sub(time_str, "09:30:00") < 0:
+            return False
         now_price_info = (time_str, price, rate_percent)
-        latest_price_info = cls.__last_price_infos.get(code)[-1]
-        # 濉厖涓棿缂哄け鐨勬暟鎹�
-        latest_time = latest_price_info[0]
-        if tool.trade_time_sub(latest_time, "09:29:57") < 0:
-            latest_time = "09:29:57"
-
-        sub_time = tool.trade_time_sub(time_str, latest_time)
-        fill_middle_count = sub_time // 3 - 1
-        if fill_middle_count > 0:
-            for i in range(0, fill_middle_count):
-                cls.__last_price_infos.get(code).append(
-                    (tool.trade_time_add_second(latest_price_info[0], 3), latest_price_info[1], latest_price_info[2]))
-        cls.__last_price_infos.get(code).append(now_price_info)
-        latest_15s_price_info = cls.__last_15s_price_infos[code][-1]
-        if now_price_info[2] - latest_15s_price_info[2] > max_amplitude_rate_percent:
-            # 娑ㄥ箙瓒呰繃鎸箙涓旀瘮鍙傝�冪偣鐨勬尟骞呭ぇ
-            if now_price_info[2] > cls.__reference_price_info[code][2]:
-                cls.__reference_price_info[code] = now_price_info
-        elif latest_15s_price_info[2] - now_price_info[2] > max_amplitude_rate_percent:
-            # 璺屽箙瓒呰繃鎸箙
-            cls.__reference_price_info[code] = now_price_info
-        # 褰撳墠鐐规槸鍚︽瘮鍙傝�冪偣涓嬮檷鎸箙灏辫Е鍙戝崠
-        if cls.__reference_price_info[code][2] - now_price_info[2] > max_amplitude_rate_percent:
-            # 瑙﹀彂鍗�
-            cls.__reference_price_info[code] = now_price_info
-            return True
+        # 濡傛灉姣旀渶楂樹环楂樺氨鍙栨渶楂樹环
+        if cls.__highest_price_infos.get(code)[2] < now_price_info[2]:
+            cls.__highest_price_infos[code] = now_price_info
         else:
-            # 灏氭湭瑙﹀彂鍗�
-            if len(cls.__last_price_infos.get(code)) >= 5:
-                # 婊¤冻15s鏁版嵁
-                reference_price_info = cls.get_15_seconds_price_info(cls.__last_price_infos.get(code), max_amplitude_rate_percent)
-                cls.__last_price_infos.get(code).clear()
-                cls.__reference_price_info[code] = reference_price_info
+            # 浣庝簬鏈�楂樼偣闃堝��
+            if cls.__highest_price_infos.get(code)[2] - now_price_info[2] > max_amplitude_rate_percent:
+                # 瑙﹀彂鍗�
+                cls.__highest_price_infos[code] = now_price_info
+                return True
+        return False
 
 
-
-
+if __name__ == "__main__":
+    pass

--
Gitblit v1.8.0