From d91210fd9d205558fb3a0acb7e5cc8c6f0c600f2 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 04 九月 2025 18:18:27 +0800 Subject: [PATCH] 人为移想管理 --- output/code_info_output.py | 90 ++++++++++++++++++++++++++++----------------- 1 files changed, 56 insertions(+), 34 deletions(-) diff --git a/output/code_info_output.py b/output/code_info_output.py index 7cf5a03..c4b5844 100644 --- a/output/code_info_output.py +++ b/output/code_info_output.py @@ -15,14 +15,16 @@ from l2.l2_data_manager import OrderBeginPosInfo from l2.l2_data_util import L2DataUtil from third_data.code_plate_key_manager import KPLCodeJXBlockManager +from third_data.kpl_data_constant import LimitUpCodesBlockRecordManager +from trade.buy_radical.block_special_codes_manager import BlockSpecialCodesManager from utils import global_util, tool from log_module import log, log_export from l2 import l2_data_manager, l2_data_util, transaction_progress, l2_data_manager_new, code_price_manager -from l2.cancel_buy_strategy import HourCancelBigNumComputer +from cancel_strategy.s_l_h_cancel_strategy import HourCancelBigNumComputer import l2.l2_data_manager_new from third_data import kpl_data_manager, kpl_api from third_data.kpl_data_manager import KPLLimitUpDataRecordManager -from trade import l2_trade_factor, trade_manager, l2_trade_util, trade_record_log_util +from trade import l2_trade_factor, trade_manager, l2_trade_util, trade_record_log_util, trade_constant from trade.l2_trade_factor import L2TradeFactorUtil base_output_content = {} @@ -32,7 +34,6 @@ def __get_base_html_content(): - print("璺緞", sys.path[0]) if base_output_content.get('css') is None: __base_html_content = "" with open("./output/css/style.css", mode='r') as f: @@ -51,7 +52,7 @@ return f"{round(money / 10000, 2)}涓�" -def get_output_params(code, jingxuan_cache_dict, industry_cache_dict, trade_record_date=tool.get_now_date_str()): +def get_output_params(code, jingxuan_cache_dict, industry_cache_dict): __start_time = time.time() def format_plate_output(_plat): @@ -80,15 +81,15 @@ code_extra_infos.append("鏆備笉涔�") params["code"] = code params["code_name"] = f"{gpcode_manager.get_code_name(code)} {code} 锛坽','.join(code_extra_infos)}锛�" - 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) + total_datas = [] + # l2_data_util.load_l2_data(code) + # total_datas = l2_data_util.local_today_datas.get(code) if is_target_code: limit_up_price = gpcode_manager.get_limit_up_price(code) limit_up_time = limit_up_time_manager.LimitUpTimeManager().get_limit_up_time_cache(code) - volume_rate, volume_info = code_volumn_manager.get_volume_rate(code, with_info=True) + volume_rate, volume_info = code_volumn_manager.CodeVolumeManager().get_volume_rate(code, with_info=True) ################################涔板墠璇勫垎################################ @@ -102,19 +103,20 @@ # 鑾峰彇涔板叆鎰忔効 __L2PlaceOrderParamsManager = l2_trade_factor.L2PlaceOrderParamsManager(code, True, volume_rate, - code_volumn_manager.get_volume_rate_index( + code_volumn_manager.CodeVolumeManager().get_volume_rate_index( volume_rate), None) # 鏄惁鍙互涔板叆鐨勪俊鎭� try: - can_buy_info = l2.l2_data_manager_new.L2TradeDataProcessor.can_buy_first(code, limit_up_price) + can_buy_info = l2.l2_data_manager_new.L2TradeDataProcessor.can_buy_first_new(code, limit_up_price) params["trade_data"]["can_buy_info"] = can_buy_info except: pass # 鑾峰彇閲忓弬鑰冩棩鏈� try: - volume_refer_date, volume_refer_date_distance = code_volumn_manager.get_volume_refer_date(code) + volume_refer_date, volume_refer_date_distance = code_volumn_manager.CodeVolumeManager().get_volume_refer_date( + code) params["trade_data"]["volume_refer_date"] = volume_refer_date except: pass @@ -125,7 +127,7 @@ params["trade_data"]["special_info"] = k_format[8] __base_L2PlaceOrderParamsManager = l2_trade_factor.L2PlaceOrderParamsManager(code, False, volume_rate, - code_volumn_manager.get_volume_rate_index( + code_volumn_manager.CodeVolumeManager().get_volume_rate_index( volume_rate), None) if -1 < __L2PlaceOrderParamsManager.score_index < 3: @@ -207,25 +209,25 @@ data['val']['price']) * 100 / 10000, 1)} params["trade_data"]["trade_state"] = {} trade_state = trade_manager.CodesTradeStateManager().get_trade_state_cache(code) - if trade_state == trade_manager.TRADE_STATE_BUY_PLACE_ORDER or trade_state == trade_manager.TRADE_STATE_BUY_DELEGATED: + if trade_state == trade_constant.TRADE_STATE_BUY_PLACE_ORDER or trade_state == trade_constant.TRADE_STATE_BUY_DELEGATED: params["trade_data"]["trade_state"]["order"] = True params["trade_data"]["trade_state"]["desc"] = "宸蹭笅鍗�" else: params["trade_data"]["trade_state"]["order"] = False - if trade_state == trade_manager.TRADE_STATE_NOT_TRADE: + if trade_state == trade_constant.TRADE_STATE_NOT_TRADE: params["trade_data"]["trade_state"]["desc"] = "鏈氦鏄�" - elif trade_state == trade_manager.TRADE_STATE_BUY_CANCEL_ING: + elif trade_state == trade_constant.TRADE_STATE_BUY_CANCEL_ING: params["trade_data"]["trade_state"]["desc"] = "鎾ゅ崟涓�" - elif trade_state == trade_manager.TRADE_STATE_BUY_CANCEL_SUCCESS: + elif trade_state == trade_constant.TRADE_STATE_BUY_CANCEL_SUCCESS: params["trade_data"]["trade_state"]["desc"] = "鎾ゅ崟鎴愬姛" - elif trade_state == trade_manager.TRADE_STATE_BUY_SUCCESS: + elif trade_state == trade_constant.TRADE_STATE_BUY_SUCCESS: params["trade_data"]["trade_state"]["desc"] = "宸叉垚浜�" # log.logger_debug.info(f"涓嬪崟淇℃伅鑰楁椂锛歿time.time() - __start_time}") __start_time = time.time() # H鎾ょ洃鍚寖鍥� - if trade_state == trade_manager.TRADE_STATE_BUY_PLACE_ORDER or trade_state == trade_manager.TRADE_STATE_BUY_DELEGATED or trade_state == trade_manager.TRADE_STATE_BUY_SUCCESS: + if trade_state == trade_constant.TRADE_STATE_BUY_PLACE_ORDER or trade_state == trade_constant.TRADE_STATE_BUY_DELEGATED or trade_state == trade_constant.TRADE_STATE_BUY_SUCCESS: hcancel_datas_dict, cancel_indexes_set = HourCancelBigNumComputer().get_watch_index_dict(code) # 鏍规嵁鏃ュ織璇诲彇瀹炴椂鐨勮绠楁暟鎹� h_cancel_latest_compute_info = log_export.get_h_cancel_compute_info(code) @@ -263,7 +265,7 @@ # log.logger_debug.info(f"涓诲姩涔帮紝琚姩涔拌�楁椂锛歿time.time() - __start_time}") __start_time = time.time() - trade_info = __load_trade_record(code, total_datas, trade_record_date) + trade_info = load_trade_record(code, total_datas) params["trade_record"] = {"open_limit_up": trade_info[0], "records": trade_info[2]} # log.logger_debug.info(f"璇诲彇浜ゆ槗璁板綍鑰楁椂锛歿time.time() - __start_time}") @@ -300,6 +302,13 @@ if code_records: code_records = [(format_plate_output(k[0]), k[1], [format_plate_output(k1) for k1 in k[2].split("銆�")]) for k in code_records] + # 淇敼鍘嗗彶 + # code_records = LimitUpCodesBlockRecordManager().get_radical_buy_blocks_origin_data(code) + # if code_records: + # code_records = [(f"{x[0]}x{x[1]}", x[2], '') for x in code_records] + # else: + # code_records = [] + params["kpl_code_info"]["code_records"] = code_records if not KPLLimitUpDataRecordManager.total_datas: @@ -363,7 +372,7 @@ return kpl_code_info -def __load_trade_record(code, total_datas, trade_record_date): +def load_trade_record(code, total_datas, date=tool.get_now_date_str()): def format_l2_data(item): return f"{item['val']['time']}#{item['val']['num']}鎵�#{round(item['val']['num'] * float(item['val']['price']) * 100 / 10000, 1)}涓�" @@ -377,7 +386,7 @@ break_time = limit_up_info[1] records = [] try: - records = log_export.load_trade_recod(code, date=trade_record_date) + records = log_export.load_trade_recod(code, date=date) except: pass records_new = [] @@ -409,23 +418,35 @@ f"鐙嫍", None)) extra_datas = [] - if data['big_num_indexes']: + if data.get('big_num_indexes'): big_num_desc = [] for i in data['big_num_indexes']: big_num_desc.append(format_l2_data(total_datas[i])) extra_datas.append(f"鍖呭惈澶у崟锛歿' & '.join(big_num_desc)}") - extra_datas.append(f"M鍊硷細{money_desc(data['m_val'])}") - extra_datas.append(f"瀹夊叏绗旀暟锛歿data['safe_count']}") + if data.get('m_val'): + extra_datas.append(f"M鍊硷細{money_desc(data['m_val'])}") + if data.get('safe_count'): + extra_datas.append(f"瀹夊叏绗旀暟锛歿data['safe_count']}") + extra_datas.append(f"鎬诲崠棰濓細{data.get('sell_info')}") records_new_data.append((time_, "", "-------------------------", [])) mode = data.get('mode') - if mode == OrderBeginPosInfo.MODE_FAST: + mode_desc = data.get('mode_desc') + if mode == OrderBeginPosInfo.MODE_ACTIVE: + records_new_data.append((time_, "绉瀬涓嬪崟", + mode_desc, + extra_datas)) + elif mode == OrderBeginPosInfo.MODE_FAST: records_new_data.append((time_, "闂數涓嬪崟", - f"銆恵format_l2_data(total_datas[data['buy_single_index']])}銆�-銆恵format_l2_data(total_datas[data['buy_exec_index']])}銆�", + mode_desc, + extra_datas)) + elif mode == OrderBeginPosInfo.MODE_RADICAL: + records_new_data.append((time_, "鎵叆涓嬪崟", + mode_desc, extra_datas)) else: - records_new_data.append((time_, "涓嬪崟", - f"銆恵format_l2_data(total_datas[data['buy_single_index']])}銆�-銆恵format_l2_data(total_datas[data['buy_exec_index']])}銆�", + records_new_data.append((time_, "甯歌涓嬪崟", + mode_desc, extra_datas)) elif type == trade_record_log_util.TYPE_REAL_PLACE_ORDER_POSITION: _datas = [] @@ -473,6 +494,8 @@ elif type == trade_record_log_util.TYPE_CANCEL: load_cancel_watch_index(latest_cancel_watch_index_dict) records_new_data.append((time_, "鎾ゅ崟", f"鍘熷洜锛歿data['msg']}", [])) + elif type == trade_record_log_util.TYPE_ACTION: + records_new_data.append((time_, data['type'], f"{data['msg']}", [])) load_cancel_watch_index(latest_cancel_watch_index_dict) records_new_data.sort(key=lambda x: x[0]) if records_new_data: @@ -486,11 +509,11 @@ # 杩斿洖鍐呭[锛堢被鍨�,buy_single_index,indexes锛塢 -def load_trade_record_cancel_watch_indexes(code, cancel_type=None): +def load_trade_record_cancel_watch_indexes(code, cancel_type=None, date=tool.get_now_date_str()): fresults = [] records = [] try: - records = log_export.load_trade_recod(code) + records = log_export.load_trade_recod(code, date=date) except: pass if records: @@ -508,7 +531,6 @@ if __name__ == '__main__': - code = '600713' - l2_data_util.load_l2_data(code) - fresults = __load_trade_record(code, l2_data_util.local_today_datas.get(code)) - print(fresults) + code = '603616' + records = load_trade_record_cancel_watch_indexes(code, + trade_record_log_util.CancelWatchIndexesInfo.CANCEL_TYPE_H) -- Gitblit v1.8.0