From b53b0f632cca75df8f39a17fab3d26caeecb2caf Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 15 十一月 2024 18:44:23 +0800
Subject: [PATCH] 自定义板块净流入

---
 huaxin_client/l1_client.py |   43 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/huaxin_client/l1_client.py b/huaxin_client/l1_client.py
index 8ce91fd..4937ecc 100644
--- a/huaxin_client/l1_client.py
+++ b/huaxin_client/l1_client.py
@@ -10,6 +10,9 @@
 import xmdapi
 from huaxin_client import tool, constant
 from log_module.log import logger_system, logger_local_huaxin_l1, logger_l2_codes_subscript, logger_debug
+from third_data import custom_block_in_money_manager
+from third_data.custom_block_in_money_manager import BlockInMoneyRankManager, CodeInMoneyManager
+from third_data.history_k_data_util import HistoryKDatasUtils, JueJinApi
 from utils import tool as out_tool
 
 ################B绫�##################
@@ -132,7 +135,13 @@
         # (浠g爜, 鐜颁环, 娑ㄥ箙, 閲�, 褰撳墠鏃堕棿, 涔�1浠�, 涔�1閲�, 涔�2浠�, 涔�2閲�, 鏇存柊鏃堕棿)
         level1_data_dict[pMarketDataField.SecurityID] = (
             pMarketDataField.SecurityID, pMarketDataField.LastPrice, rate, pMarketDataField.Volume, time.time(),
-            pMarketDataField.BidPrice1, pMarketDataField.BidVolume1, pMarketDataField.BidPrice2, pMarketDataField.BidVolume2, pMarketDataField.UpdateTime)
+            pMarketDataField.BidPrice1, pMarketDataField.BidVolume1, pMarketDataField.BidPrice2,
+            pMarketDataField.BidVolume2, pMarketDataField.UpdateTime)
+        try:
+            custom_block_in_money_manager.CodeInMoneyManager.set_market_info(pMarketDataField.SecurityID, lastPrice,
+                                                                             close_price, pMarketDataField.Turnover)
+        except:
+            pass
 
 
 __latest_subscript_codes = set()
@@ -208,12 +217,36 @@
         finally:
             time.sleep(3)
 
+def __test_block_in_money():
+    codes = BlockInMoneyRankManager().get_codes()
+    page_size = 200
+    total_page = len(codes) // page_size + 1
 
-def run(queue_l1_w_strategy_r, queue_l1_r_strategy_w, fixed_codes=None):
+    for i in range(0, total_page):
+        temp_codes = codes[i * page_size: (i + 1) * page_size]
+        print(temp_codes)
+        # 鑾峰彇鏈�杩戠殑淇℃伅
+        latest_infos = HistoryKDatasUtils.get_gp_latest_info(temp_codes, "sec_id,pre_close")
+        pre_close_dict = {x["sec_id"]: x["pre_close"] for x in latest_infos}
+
+        current_infos = JueJinApi.get_gp_current_info(temp_codes, "symbol,price,cum_amount")
+        current_infos = {x["symbol"].split(".")[1]: (x["price"], x["cum_amount"]) for x in
+                         current_infos}
+
+        for code in current_infos:
+            if code not in pre_close_dict:
+                continue
+            CodeInMoneyManager.set_market_info(code, current_infos[code][0], pre_close_dict[code],
+                                               current_infos[code][1])
+
+
+def run(queue_l1_w_strategy_r, queue_l1_r_strategy_w, queue_custom_block_in_money, fixed_codes=None):
     """
     杩愯l1璁㈤槄浠诲姟
+
     @param queue_l1_w_strategy_r: L1鏂瑰啓锛岀瓥鐣ユ柟璇�
     @param queue_l1_r_strategy_w: L1鏂硅锛岀瓥鐣ユ柟鍐�
+    @param queue_custom_block_in_money: 鏉垮潡娴佸叆娴佸嚭璁$畻缁撴灉
     @param fixed_codes: 鍥哄畾瑕佽繑鍥炴暟鎹殑浠g爜
     @return:
     """
@@ -272,6 +305,9 @@
 
     threading.Thread(target=__run_subscript_task, args=(spi,), daemon=True).start()
 
+    # TODO 娴嬭瘯
+    __test_block_in_money()
+
     # 绛夊緟绋嬪簭缁撴潫
     while True:
         print("鏁伴噺", len(level1_data_dict))
@@ -307,6 +343,9 @@
             if len(datas) > 0:
                 logger_l2_codes_subscript.info("寮�濮�#鍗庨懌L1涓婁紶浠g爜锛氭暟閲�-{}", len(datas))
                 __upload_codes_info(queue_l1_w_strategy_r, datas)
+            # 璁$畻娴佸叆娴佸嚭骞朵笂浼�
+            custom_block_in_money_manager.BlockInMoneyRankManager().compute()
+            queue_custom_block_in_money.put_nowait(custom_block_in_money_manager.BlockInMoneyRankManager().get_in_list(),  custom_block_in_money_manager.BlockInMoneyRankManager().get_out_list())
         except Exception as e:
             logging.exception(e)
             logger_debug.exception(e)

--
Gitblit v1.8.0