From 8ef576b9a1809dd52dacaafe960db456b09e9e0b Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 30 三月 2023 18:24:21 +0800
Subject: [PATCH] 看盘界面调整

---
 output/code_info_output.py |  115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 109 insertions(+), 6 deletions(-)

diff --git a/output/code_info_output.py b/output/code_info_output.py
index 0920370..f688439 100644
--- a/output/code_info_output.py
+++ b/output/code_info_output.py
@@ -12,17 +12,21 @@
 import gpcode_manager
 import juejin
 import limit_up_time_manager
+import log
 import tool
-from l2 import l2_data_manager, l2_data_util, transaction_progress
+from l2 import l2_data_manager, l2_data_util, transaction_progress, l2_data_manager_new, code_price_manager
 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):
+def __format_data(code_info, score_info, buy_params_info, xgb_code_info, xgb_infos, codes_score, trade_info):
     html = ""
     html += f"<h2>{code_info[1]} {code_info[0]}</h2><br>"
+
+
+
     if score_info:
         html += "<b>-----涔板墠璇勫垎-------</b><br>"
         score_types = ["鎹㈡墜閲忚兘", "绔炰环寮哄害", "璧勯噾鍔涘害", "鏃ョ嚎褰㈡��", "鍘嗗彶鑲℃��", "鏉垮潡鐑害", "涓婃澘鏃堕棿", "甯傚�煎ぇ灏�", "鑲′环澶у皬"]
@@ -30,14 +34,14 @@
         for i in range(0, len(score_info[1])):
             html += f"<tr><td>{score_types[i]}</td><td>{score_info[1][i]}</td><td>{score_info[2][i]}</td></tr>"
         html += f"<tr><td><b>璇勫垎姹傚拰锛�</td><td>{score_info[0]}</b></td><td></td></tr>"
-        html += f"</table>"
+        html += f"</table><br>"
 
     if buy_params_info:
         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>"
+        html += "</table><br>"
 
     if xgb_code_info:
         html += "<b><br>-----閫夎偂瀹�---------<br></b>"
@@ -52,6 +56,57 @@
                         html += f"銆恵info[0]}銆戯紝鍏便�恵info[1]}銆戝彧绁ㄦ定鍋�<br>绗�恵info[2]}銆戞定鍋滐紝鐜颁环銆恵info[3]}銆戝厓锛屾定骞呫�恵info[4]}銆�<br><br>"
             else:
                 html += f"鏃�<br>"
+    if codes_score[0]:
+        html += "<b>-----涓诲姩涔板叆-------</b><br>"
+        html += "<table>"
+        for i in range(0, len(codes_score[0])):
+            if i % 4 == 0:
+                html += "<tr>"
+            html += f"<td><font color='red'>{codes_score[0][i][1]}:{codes_score[0][i][2]}</font></td>"
+            if i % 4 == 3 or i == len(codes_score[0]) - 1:
+                html += "</tr>"
+        html += "</table><br>"
+
+    if codes_score[1]:
+        html += "<b>-----琚姩涔板叆-------</b><br>"
+        html += "<table>"
+        for i in range(0, len(codes_score[1])):
+            if i % 4 == 0:
+                html += "<tr>"
+            html += f"<td><font color='#000080'>{codes_score[1][i][1]}:{codes_score[1][i][2]}</font></td>"
+            if i % 4 == 3 or i == len(codes_score[1]) - 1:
+                html += "</tr>"
+        html += "</table><br>"
+
+    if codes_score[2]:
+        html += "<b>-----涓嶄拱鍏�-------</b><br>"
+        html += "<table>"
+        for i in range(0, len(codes_score[2])):
+            if i % 4 == 0:
+                html += "<tr>"
+            html += f"<td>{codes_score[2][i][1]}:{codes_score[2][i][2]}</td>"
+            if i % 4 == 3 or i == len(codes_score[1]) - 1:
+                html += "</tr>"
+        html += "</table><br>"
+
+    if trade_info:
+        html += "<b>-----浠婃棩鎸傛挙璁板綍-------</b><br>"
+        html += "<br>浠婃棩鏄惁鐐告澘锛�"
+        if trade_info[0]:
+            html += f"鐐告澘-{trade_info[0]}"
+        else:
+            html += f"鏈偢鏉�"
+        if trade_info[1]:
+            html += "<table>"
+            for i in range(0, len(trade_info[1])):
+                if i % 2 == 0:
+                    html += "<tr>"
+                html += f"<td>绗瑊i + 1}娆′笅鍗� 璇勫垎{trade_info[1][i][1][0][0]} {trade_info[1][i][0]} </td>"
+                if i % 2 == 1 or i == len(codes_score[0]) - 1:
+                    html += "</tr>"
+            html += "</table><br>"
+        html += "<br>"
+
     if xgb_infos:
         html += "<b><br>-----甯傚満鐑害-------<br></b><table>"
         for info in xgb_infos:
@@ -136,6 +191,9 @@
             elif k == 6:
                 if not score_source_list[3][k][0]:
                     k_source.append("銆愪笉婊¤冻浠讳綍褰㈡�併��")
+            elif k == 7:
+                if score_source_list[3][k][0]:
+                    k_source.append("銆愬ぉ閲忓ぇ闃炽��")
 
         score_list_new.append(k_score)
         score_source_list_new.append("/".join(k_source))
@@ -152,7 +210,7 @@
                 else:
                     nature_source.append("鏈夋定鍋�")
             if n == 1:
-                nature_source.append(f"棣栨澘婧环鐜囥�恵score_source_list[4][2]}銆�")
+                nature_source.append(f"棣栨澘婧环鐜囥�恵round(score_source_list[4][2],2)}銆�")
 
         score_list_new.append(nature_score)
         score_source_list_new.append(",".join(nature_source))
@@ -167,6 +225,9 @@
                 hot_block_source.append(f"銆恵score_source_list[5][0]}銆戝叡{score_source_list[5][n]}涓定鍋�")
             elif n == 2:
                 hot_block_source.append(f"鍏眥score_source_list[5][n]}涓偢鏉�")
+            elif n == 4:
+                if score_source_list[5][n]:
+                    hot_block_source.append(f"銆恵score_source_list[5][n][0][0]}銆憑score_source_list[5][n][1]}")
         score_list_new.append(hot_block_score)
         score_source_list_new.append(",".join(hot_block_source))
 
@@ -330,8 +391,50 @@
                         codes_data_html += "</tr><tr>"
                 codes_data_html += "</tr></table>"
                 xgb_infos.append((f"***銆恵block[0]}銆戯紝娑ㄥ箙銆恵block[1]}銆戯紝鍏便�恵limit_up_count}銆戜釜娑ㄥ仠", codes_data_html))
+    codes_score = __load_codes_scores()
+    trade_info = __load_trade_record(code)
+    return __format_data(code_info, score_info, buy_params_info, xgb_code_info, xgb_infos, codes_score, trade_info)
 
-    return __format_data(code_info, score_info, buy_params_info, xgb_code_info, xgb_infos)
+
+def __load_codes_scores():
+    # 鑾峰彇鎵�鏈夌洃鍚腑鐨勪唬鐮�
+    codes = gpcode_manager.get_first_gp_codes()
+    scores = l2_data_manager_new.L2TradeDataProcessor.get_code_scores()
+    for code in codes:
+        if code not in scores:
+            # 鑾峰彇鍒嗘暟
+            limit_up_time = limit_up_time_manager.get_limit_up_time(code)
+            if limit_up_time is None:
+                continue
+            volume_rate, volume_info = code_volumn_manager.get_volume_rate(code, True)
+            (score, score_list), score_source_list = first_code_score_manager.get_score(code, volume_rate,
+                                                                                        limit_up_time,
+                                                                                        True)
+            scores[code] = score
+    # 绛涢��180鍒嗕互涓婄殑浠g爜
+    scores_list = []
+    for code in scores:
+        code_name = gpcode_manager.get_code_name(code)
+        scores_list.append((code, code_name, scores[code]))
+    scores_list.sort(key=lambda x: x[2], reverse=True)
+    fscores_list = [[], [], []]
+    for score in scores_list:
+        if score[2] >= 180:
+            fscores_list[0].append(score)
+        elif score[2] >= 100:
+            fscores_list[1].append(score)
+        else:
+            fscores_list[2].append(score)
+
+    return fscores_list
+
+
+def __load_trade_record(code):
+    # 鑾峰彇鐐告澘淇℃伅
+    limit_up_info = code_price_manager.Buy1PriceManager.get_limit_up_info(code)
+    break_time = limit_up_info[1]
+    records = log.load_buy_score_recod(code)
+    return break_time, records
 
 
 if __name__ == '__main__':

--
Gitblit v1.8.0