From 365491c1fcf523994035e4bd28d8b5872dd6ec98 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 31 七月 2025 14:47:48 +0800 Subject: [PATCH] 除权采用掘金更新K线 --- output/code_info_output.py | 80 +++++++++++++++++++++++++-------------- 1 files changed, 51 insertions(+), 29 deletions(-) diff --git a/output/code_info_output.py b/output/code_info_output.py index ebef414..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: @@ -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) @@ -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: @@ -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,7 +509,7 @@ # 杩斿洖鍐呭[锛堢被鍨�,buy_single_index,indexes锛塢 -def load_trade_record_cancel_watch_indexes(code, cancel_type=None, date=None): +def load_trade_record_cancel_watch_indexes(code, cancel_type=None, date=tool.get_now_date_str()): fresults = [] records = [] try: @@ -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