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]} </font>" + elif len(code_data[2]) > 6: + # 娑ㄥ仠 + codes_data_html += f"<font color='#FF3232'>{code_data[1]}:{code_data[0]} </font>" + else: + codes_data_html += f"{code_data[1]}:{code_data[0]} " + 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