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