From 6e71fbcb119e7068ba35380edaa5cc66e7c71f1b Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 27 十月 2022 16:21:05 +0800
Subject: [PATCH] 交易体系完善

---
 l2_trade_factor.py |   37 +++++++++++++++++++++++--------------
 1 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/l2_trade_factor.py b/l2_trade_factor.py
index cda2229..0694c38 100644
--- a/l2_trade_factor.py
+++ b/l2_trade_factor.py
@@ -4,9 +4,9 @@
 
 # l2浜ゆ槗鍥犲瓙
 import big_money_num_manager
+import global_data_loader
 import global_util
 import limit_up_time_manager
-import log
 
 
 class L2TradeFactorUtil:
@@ -121,16 +121,17 @@
         big_money_rate = 0
         if big_money_num is not None:
             big_money_rate = cls.get_big_money_rate(big_money_num)
-        print(
-            "industry_rate锛歿} volumn_rate锛歿} limit_up_time_rate锛歿} big_money_rate锛歿}".format(industry_rate,
-                                                                                             volumn_rate,
-                                                                                             limit_up_time_rate,
-                                                                                             big_money_rate))
+
+        msg = "zyltgb锛歿} industry_rate锛歿} volumn_rate锛歿} limit_up_time_rate锛歿} big_money_rate锛歿}".format(zyltgb,
+                                                                                                         industry_rate,
+                                                                                                         volumn_rate,
+                                                                                                         limit_up_time_rate,
+                                                                                                         big_money_rate)
 
         final_rate = round(1 - (industry_rate + volumn_rate + limit_up_time_rate + big_money_rate), 4)
         if final_rate < 0.1:
             final_rate = 0.1
-        return final_rate
+        return final_rate, msg
 
     @classmethod
     def compute_rate_by_code(cls, code):
@@ -143,7 +144,7 @@
         # 鑾峰彇琛屼笟鐑害
         industry = global_util.code_industry_map.get(code)
         if industry is None:
-            global_util.load_industry()
+            global_data_loader.load_industry()
             industry = global_util.code_industry_map.get(code)
 
         total_industry_limit_percent = global_util.industry_hot_num.get(industry) if industry is not None else None
@@ -156,7 +157,7 @@
         volumn_day60_max, volumn_yest, volumn_today = global_util.max60_volumn.get(
             code), global_util.yesterday_volumn.get(code), global_util.today_volumn.get(code)
         if volumn_day60_max is None or volumn_yest is None:
-            global_util.load_volumn()
+            global_data_loader.load_volumn()
             volumn_day60_max, volumn_yest, volumn_today = global_util.max60_volumn.get(
                 code), global_util.yesterday_volumn.get(code), global_util.today_volumn.get(code)
         # 棣栨娑ㄥ仠鏃堕棿
@@ -180,7 +181,7 @@
     def __get_zyltgb(cls, code):
         zyltgb = global_util.zyltgb_map.get(code)
         if zyltgb is None:
-            global_util.load_zyltgb()
+            global_data_loader.load_zyltgb()
             zyltgb = global_util.zyltgb_map.get(code)
         return zyltgb
 
@@ -188,15 +189,15 @@
     def compute_m_value(cls, code):
         zyltgb = global_util.zyltgb_map.get(code)
         if zyltgb is None:
-            global_util.load_zyltgb()
+            global_data_loader.load_zyltgb()
             zyltgb = global_util.zyltgb_map.get(code)
             if zyltgb is None:
                 print("娌℃湁鑾峰彇鍒拌嚜鐢辨祦閫氬競鍊�")
                 return 10000000
         zyltgb = cls.get_base_safe_val(zyltgb)
-        rate = cls.compute_rate_by_code(code)
+        rate, msg = cls.compute_rate_by_code(code)
         # print("m鍊艰幏鍙栵細", code, round(zyltgb * rate))
-        return round(zyltgb * rate)
+        return round(zyltgb * rate), msg
 
     # 鑾峰彇瀹夊叏绗旀暟
     @classmethod
@@ -210,7 +211,15 @@
             return 30
         if count < 5:
             return 5
-        return count
+
+        big_money_num = global_util.big_money_num.get(code)
+        if big_money_num is None:
+            big_money_num = big_money_num_manager.get_num(code)
+        rate = 0
+        if big_money_num is not None:
+            rate = cls.get_big_money_rate(big_money_num)
+
+        return round(count*(1-rate/2))
 
 
 # l2鍥犲瓙褰掑洜鏁版嵁

--
Gitblit v1.8.0