From 8ddc7f5ecc67c0bb424954a86b75ec7444080ba2 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 29 三月 2023 18:02:50 +0800
Subject: [PATCH] 首板买入策略分值优化

---
 output/code_info_output.py |   85 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 71 insertions(+), 14 deletions(-)

diff --git a/output/code_info_output.py b/output/code_info_output.py
index 60876d6..0920370 100644
--- a/output/code_info_output.py
+++ b/output/code_info_output.py
@@ -17,13 +17,14 @@
 from third_data import hot_block_data_process
 from trade import first_code_score_manager, l2_trade_factor
 from trade.l2_trade_factor import L2TradeFactorUtil
+import trade.deal_big_money_manager
 
 
 def __format_data(code_info, score_info, buy_params_info, xgb_code_info, xgb_infos):
     html = ""
     html += f"<h2>{code_info[1]} {code_info[0]}</h2><br>"
     if score_info:
-        html += "-----涔板墠璇勫垎-------<br>"
+        html += "<b>-----涔板墠璇勫垎-------</b><br>"
         score_types = ["鎹㈡墜閲忚兘", "绔炰环寮哄害", "璧勯噾鍔涘害", "鏃ョ嚎褰㈡��", "鍘嗗彶鑲℃��", "鏉垮潡鐑害", "涓婃澘鏃堕棿", "甯傚�煎ぇ灏�", "鑲′环澶у皬"]
         html += "<table style='font-size:25px'>"
         for i in range(0, len(score_info[1])):
@@ -32,14 +33,14 @@
         html += f"</table>"
 
     if buy_params_info:
-        html += "<br>-----浜ゆ槗鍙傛暟-------<br><table>"
+        html += "<b><br>-----浜ゆ槗鍙傛暟-------<br></b><table>"
         titles = ["涔板叆鎰忔効", "瀹夊叏绗旀暟", "鍔ㄦ�丮鍊�", "涔板墠澶у崟", "鎴愪氦杩涘害", "涔板叆淇″彿", "涔板叆鎵ц浣�"]
         for i in range(0, len(titles)):
             html += f"<tr><td>{titles[i]}锛�</td><td>{buy_params_info[i]}</td></tr>"
         html += "</table>"
 
     if xgb_code_info:
-        html += "<br>-----閫夎偂瀹�---------<br>"
+        html += "<b><br>-----閫夎偂瀹�---------<br></b>"
         xgb_code_info_dates = ["浠婂ぉ", "鏄ㄥぉ", "鍓嶅ぉ", "涔嬪墠"]
         for i in range(0, len(xgb_code_info)):
             html += f"{xgb_code_info_dates[i]}锛�<br>"
@@ -52,10 +53,11 @@
             else:
                 html += f"鏃�<br>"
     if xgb_infos:
-        html += "<br>-----甯傚満鐑害-------<br><table>"
+        html += "<b><br>-----甯傚満鐑害-------<br></b><table>"
         for info in xgb_infos:
-            html += f"<tr><td>{info}</td></tr>"
+            html += f"<tr><td><font size='3'>{info[0]}</font><br><div style='margin-left:100px;'>{info[1]}</div></td></tr>"
         html += "</tr>"
+    html += "<br><br>"
     return html
 
 
@@ -81,13 +83,30 @@
         # 鑾峰彇褰撳墠閲忎俊鎭�
         max_60, yest = code_volumn_manager.get_histry_volumn(code)
         today = code_volumn_manager.get_today_volumn(code)
-        score_source_list_new.append(f"瀹炴椂閲忋�恵round(int(today)/1000000,2)}涓囨墜銆懨峰墠楂橀噺銆恵round(max_60[0]/1000000,2)}涓囨墜-{max_60[1]}銆�=銆恵round(score_source_list[6]*100,2)}%銆�")
+        score_source_list_new.append(
+            f"瀹炴椂閲忋�恵round(int(today) / 1000000, 2)}涓囨墜銆懨峰墠楂橀噺銆恵round(max_60[0] / 1000000, 2)}涓囨墜-{max_60[1]}銆�=銆恵round(score_source_list[6] * 100, 2)}%銆�")
         # 绔炰环寮哄害
         score_list_new.append(score_list[2])
         score_source_list_new.append(f"寮�鐩樺暒浠婃棩濮斿仠銆恵score_source_list[2] if score_source_list[2] else 0}涓囥��")
+        total_datas = l2_data_util.local_today_datas.get(code)
+        if total_datas is None:
+            l2_data_util.load_l2_data(code)
+            total_datas = l2_data_util.local_today_datas.get(code)
         # 璧勯噾鍔涘害
+        deal_indexes = trade.deal_big_money_manager.get_traded_indexes(code)
+        deal_info = ""
+        if deal_indexes:
+            temps = []
+            for index in deal_indexes:
+                temps.append(int(index))
+            temps.sort()
+            start_index = temps[0]
+            end_index = temps[-1]
+            deal_info = f"銆恵total_datas[start_index]['val']['time']}&{total_datas[start_index]['val']['num']}鎵�-{total_datas[end_index]['val']['time']}&{total_datas[end_index]['val']['num']}鎵嬨��,"
+
         score_list_new.append(score_list[8])
-        score_source_list_new.append(f"绱閲戦銆恵score_source_list[8][0] // 10000}涓囥��&鍥哄畾m鍊笺�恵score_source_list[8][1] // 10000}涓囥��")
+        score_source_list_new.append(
+            f"{deal_info}<br>绱閲戦銆恵score_source_list[8][0] // 10000}涓囥��&鍥哄畾m鍊笺�恵score_source_list[8][1] // 10000}涓囥��")
         # K绾垮舰鎬�
         k_score = 0
         k_source = []
@@ -172,11 +191,14 @@
         __L2PlaceOrderParamsManager = l2_trade_factor.L2PlaceOrderParamsManager(code, True, volume_rate,
                                                                                 code_volumn_manager.get_volume_rate_index(
                                                                                     volume_rate),
-                                                                                ((score, score_list),score_source_list))
+                                                                                (
+                                                                                    (score, score_list),
+                                                                                    score_source_list))
         __base_L2PlaceOrderParamsManager = l2_trade_factor.L2PlaceOrderParamsManager(code, False, volume_rate,
                                                                                      code_volumn_manager.get_volume_rate_index(
                                                                                          volume_rate),
-                                                                                     ((score, score_list),score_source_list))
+                                                                                     ((score, score_list),
+                                                                                      score_source_list))
         buy_params_info = []
         if -1 < __L2PlaceOrderParamsManager.score_index < 3:
             buy_params_info.append("<font color='red'>銆愪富鍔ㄤ拱鍏ャ��</font>")
@@ -201,10 +223,6 @@
         base_big_num = __base_L2PlaceOrderParamsManager.get_big_num_count()
         buy_params_info.append(f"鍥哄畾涔板墠澶у崟銆恵base_big_num}銆戠瑪锛岃“鍑忓悗涔板墠澶у崟銆恵big_num}銆戠瑪")
         # 鎴愪氦杩涘害
-        total_datas = l2_data_util.local_today_datas.get(code)
-        if total_datas is None:
-            l2_data_util.load_l2_data(code)
-            total_datas = l2_data_util.local_today_datas.get(code)
         trade_progress, is_default = transaction_progress.TradeBuyQueue().get_traded_index(code)
         if trade_progress is None or trade_progress < 0 or is_default:
             buy_params_info.append("鏈瘑鍒�")
@@ -267,12 +285,51 @@
     if not xgb_latest_datas:
         xgb_infos.append('鏆傛湭鑾峰彇鍒版暟鎹�')
     else:
+        # 鑾峰彇浠婃棩鐨勬墍鏈夋暟鎹�
+        datas_record = hot_block_data_process.XGBHotBlockDataManager.list_all(tool.get_now_date_str())
+        datas_record_dict = {}
+        for data in datas_record:
+            block = data[2]
+            if block not in datas_record_dict:
+                datas_record_dict[block] = []
+            # 浠g爜,浠g爜鍚嶇О,娑ㄥ仠鏃堕棿锛岄娆℃定鍋滄椂闂�
+            datas_record_dict[block].append((data[3], data[9], data[4], data[8], block))
+
         for block in xgb_latest_datas:
             limit_up_count = 0
+            codes = datas_record_dict.get(block[0])
             for code_data in block[2]:
                 if len(code_data[4]) > 6:
                     limit_up_count += 1
-            xgb_infos.append(f"銆恵block[0]}銆戯紝娑ㄥ箙銆恵block[1]}銆戯紝鍏便�恵limit_up_count}銆戜釜娑ㄥ仠")
+            # 鑾峰彇鏉垮潡涓殑浠g爜
+            block_codes_set = set()
+            for d in block[2]:
+                code = d[0][1].split(".")[0]
+                block_codes_set.add(code)
+
+            if codes:
+                codes_data_html = "<table><tr>"
+                count = 0
+                for code_data in codes:
+                    if code_data[4] != block[0]:
+                        # 涓嶆槸璇ユ澘鍧楁暟鎹�
+                        continue
+                    count += 1
+                    codes_data_html += "<td>"
+                    # 濡傛灉浠g爜娑ㄥ仠鏃堕棿鎴栬�呮病鏈夊湪鏈�鏂扮殑浠g爜涓�
+                    if (len(code_data[2]) < 6 or code_data[0] not in block_codes_set) and len(code_data[3]) > 6:
+                        # 鐐告澘
+                        codes_data_html += f"<font color='#000080'>{code_data[1]}:{code_data[0]}&nbsp;&nbsp;</font>"
+                    elif len(code_data[2]) > 6:
+                        # 娑ㄥ仠
+                        codes_data_html += f"<font color='#FF3232'>{code_data[1]}:{code_data[0]}&nbsp;&nbsp;</font>"
+                    else:
+                        codes_data_html += f"{code_data[1]}:{code_data[0]}&nbsp;&nbsp;"
+                    codes_data_html += "</td>"
+                    if count % 4 == 0:
+                        codes_data_html += "</tr><tr>"
+                codes_data_html += "</tr></table>"
+                xgb_infos.append((f"***銆恵block[0]}銆戯紝娑ㄥ箙銆恵block[1]}銆戯紝鍏便�恵limit_up_count}銆戜釜娑ㄥ仠", codes_data_html))
 
     return __format_data(code_info, score_info, buy_params_info, xgb_code_info, xgb_infos)
 

--
Gitblit v1.8.0