From 81f328532e366eef171b71810b221a9294dda78f Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 21 十二月 2023 14:31:58 +0800 Subject: [PATCH] 买入条件调整/L撤调整 --- utils/data_export_util.py | 66 ++++++++++++++++++++++---------- 1 files changed, 45 insertions(+), 21 deletions(-) diff --git a/utils/data_export_util.py b/utils/data_export_util.py index fa26cd3..7395f82 100644 --- a/utils/data_export_util.py +++ b/utils/data_export_util.py @@ -11,6 +11,7 @@ import constant from code_attribute import gpcode_manager import l2.l2_data_util +from l2.huaxin import l2_huaxin_util from log_module import log, log_export from l2 import l2_data_source_util from trade import deal_big_money_manager @@ -18,13 +19,7 @@ def export_l2_excel(code, date=None): # 鑾峰彇L2鐨勬暟鎹� - local_today_datas = log_export.load_l2_from_log(date) - datas = local_today_datas[code] - datas = datas[-2000:] - # 鑾峰彇L2澶勭悊浣嶇疆淇℃伅 - process_indexs = log_export.get_l2_process_position(code, date) - trade_indexs = log_export.get_l2_trade_position(code, date) - fdatas = export_l2_data(code, datas, process_indexs, trade_indexs) + fdatas = get_l2_datas(code) __save_l2_datas(code, fdatas) @@ -34,11 +29,16 @@ datas = local_today_datas[code] process_indexs = log_export.get_l2_process_position(code, date) trade_indexs = log_export.get_l2_trade_position(code, date) - fdatas = export_l2_data(code, datas, process_indexs, trade_indexs) + real_position_indexes = log_export.get_real_place_order_positions(code, date) + deal_list = log_export.load_huaxin_deal_record(code) + deal_list_dict = {} + for d in deal_list: + deal_list_dict[str(d[0])] = d + fdatas = export_l2_data(code, datas, process_indexs, trade_indexs, real_position_indexes, deal_list_dict) return fdatas -def export_l2_data(code, datas, process_indexs, trade_indexs): +def export_l2_data(code, datas, process_indexs, trade_indexs, real_position_indexes, deal_list_dict): def find_process_index(index): for i in range(0, len(process_indexs)): if process_indexs[i][0] <= index <= process_indexs[i][1]: @@ -70,6 +70,10 @@ for data in datas: index += 1 trade_info = find_trade_index(data["index"]) + if not trade_info: + # 鑾峰彇鐪熷疄涓嬪崟浣嶇疆 + if data["index"] in real_position_indexes: + trade_info = [3] style_int = None if find_process_index(data["index"]) % 2 == 0: style_int = 0 @@ -108,31 +112,31 @@ limit_price = "" if int(data["val"]["limitPrice"]) == 1: - limit_price = "娑ㄥ仠" + limit_price = "T" elif int(data["val"]["limitPrice"]) == 2: - limit_price = "璺屽仠" + limit_price = "D" operateDesc = "" if int(data["val"]["operateType"]) == 0: if len(limit_price) > 0: - operateDesc = '涔� ({})'.format(limit_price) + operateDesc = '涔皗}'.format(limit_price) else: operateDesc = '涔�' elif int(data["val"]["operateType"]) == 1: if len(limit_price) > 0: - operateDesc = '涔版挙 ({})'.format(limit_price) + operateDesc = '涔版挙{}'.format(limit_price) else: operateDesc = '涔版挙' elif int(data["val"]["operateType"]) == 2: if len(limit_price) > 0: - operateDesc = '鍗� ({})'.format(limit_price) + operateDesc = '鍗杮}'.format(limit_price) else: operateDesc = '鍗�' elif int(data["val"]["operateType"]) == 3: if len(limit_price) > 0: - operateDesc = '鍗栨挙 ({})'.format(limit_price) + operateDesc = '鍗栨挙{}'.format(limit_price) else: operateDesc = '鍗栨挙' format_data.append(operateDesc) @@ -144,9 +148,19 @@ # 涔� if cancel_data: try: - cancel_info = "{}-{}".format(cancel_data["index"], cancel_data["val"]["time"]) + left_num = data["val"]["num"] - cancel_data["val"]["num"] + if left_num > 0: + cancel_info = f"{left_num}鎵嬫湭鎾�:{cancel_data['index']}" + else: + cancel_info = "{}-{}".format(cancel_data["index"], f"{cancel_data['val']['time']}") + ( + f".{cancel_data['val']['tms']}" if "tms" in cancel_data["val"] else '') except Exception as e: logging.exception(e) + else: + deal_info = deal_list_dict.get(str(data["val"].get("orderNo"))) + if deal_info: + cancel_info = l2_huaxin_util.convert_time(deal_info[3], + with_ms=True) format_data.append(cancel_info) cancel_order_info = None if trade_info: @@ -161,7 +175,7 @@ cancel_order_info = trade_info[2] format_data.append(cancel_order_info) format_data.append(data["val"].get("orderNo")) - fdatas.append((style_int, format_data)) + fdatas.append((style_int, trade_info, format_data)) return fdatas @@ -179,21 +193,31 @@ ws.write(0, 6, '绫诲瀷') ws.write(0, 7, '閲嶅鏁伴噺') ws.write(0, 8, '鎾ゅ崟鏃堕棿') - ws.write(0, 9, '璁㈠崟鍙�') + ws.write(0, 9, '澶囨敞') + ws.write(0, 10, '璁㈠崟鍙�') index = 0 - font = xlwt.Font() cancel_style = xlwt.easyxf('pattern: pattern solid, fore_colour gray25') for fdata in fdatas: index += 1 style_int = fdata[0] - data = fdatas[1] + trade_info = fdata[1] + data = fdata[2] style = None if style_int == 0: style = xlwt.easyxf('pattern: pattern solid') else: style = xlwt.easyxf('pattern: pattern solid, fore_colour light_yellow') + font = xlwt.Font() style.font = font + + if trade_info: + if trade_info[0] == 0: + font.colour_index = 53 + elif trade_info[0] == 1: + font.colour_index = 17 + elif trade_info[0] == 2: + font.colour_index = 10 for i in range(len(data)): if data[i] is None: @@ -255,6 +279,6 @@ if __name__ == "__main__": try: - export_l2_excel("600476") + export_l2_excel("002036") except Exception as e: logging.exception(e) -- Gitblit v1.8.0