From 967abfe26abe09c26df61fe48bab1d64e2253cef Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期三, 20 十一月 2024 15:26:37 +0800 Subject: [PATCH] 添加新接口 --- l2/l2_data_manager_new.py | 39 +++++++++++++++++++++++++-------------- 1 files changed, 25 insertions(+), 14 deletions(-) diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py index 40959db..c962bf9 100644 --- a/l2/l2_data_manager_new.py +++ b/l2/l2_data_manager_new.py @@ -466,7 +466,7 @@ add_datas[0], buy_info[2], shadow_price=shadow_price, shadow_volume=buy_info[1]) - cls.__place_order_success(code, order_begin_pos_info) + cls.__place_order_success(code, order_begin_pos_info, None) except Exception as e: logger_l2_error.exception(e) finally: @@ -778,8 +778,17 @@ return True, False, f"", False @classmethod - def start_buy(cls, code, last_data, last_data_index, is_first_code): - return cls.__buy(code, 0, last_data, last_data_index, is_first_code) + def start_buy(cls, code, last_data, last_data_index, is_first_code, block_info): + """ + 寮�濮嬩拱鍏� + @param code: + @param last_data: + @param last_data_index: + @param is_first_code: + @param block_info:鏉垮潡淇℃伅:[(鏉垮潡,娴佸叆淇℃伅)] + @return: + """ + return cls.__buy(code, 0, last_data, last_data_index, is_first_code, block_info=block_info) @classmethod def get_active_buy_blocks(cls, code): @@ -812,7 +821,7 @@ return None @classmethod - def __place_order_success(cls, code, order_begin_pos): + def __place_order_success(cls, code, order_begin_pos, block_info): ################涓嬪崟鎴愬姛澶勭悊################ trade_result_manager.real_buy_success(code, cls.__TradePointManager) l2_log.debug(code, "澶勭悊涔板叆鎴愬姛1") @@ -835,6 +844,7 @@ info.mode_desc = order_begin_pos.mode_desc info.set_buy_index(order_begin_pos.buy_single_index, order_begin_pos.buy_exec_index) info.set_sell_info(order_begin_pos.sell_info) + info.set_block_info(block_info) if jx_blocks: info.set_kpl_blocks(list(jx_blocks)) elif jx_blocks_by: @@ -858,7 +868,7 @@ async_log_util.error(logger_l2_error, f"鍔犲叆涔板叆璁板綍鏃ュ織鍑洪敊锛歿str(e)}") @classmethod - def __buy(cls, code, capture_timestamp, last_data, last_data_index, is_first_code): + def __buy(cls, code, capture_timestamp, last_data, last_data_index, is_first_code, block_info=None): pre_result = cls.__is_pre_can_buy(code) if not pre_result[0]: return False @@ -909,7 +919,7 @@ last_data_index, order_begin_pos.mode, order_begin_pos.buy_exec_index) l2_log.debug(code, "鎵ц涔板叆鎴愬姛") - cls.__place_order_success(code, order_begin_pos) + cls.__place_order_success(code, order_begin_pos, block_info) except Exception as e: async_log_util.exception(logger_l2_error, e) @@ -1512,7 +1522,7 @@ trade_result_manager.virtual_buy_success(code) @classmethod - def __process_with_find_exec_index(cls, code, order_begin_pos: OrderBeginPosInfo, compute_end_index): + def __process_with_find_exec_index(cls, code, order_begin_pos: OrderBeginPosInfo, compute_end_index, block_info): """ 澶勭悊鎵惧埌鎵ц浣嶇疆 @return: @@ -1535,7 +1545,7 @@ cls.__latest_exec_indexes[code] = cls.__latest_exec_indexes[code][-3:] # 鐩存帴涓嬪崟 - ordered = cls.__buy(code, 0, total_datas[-1], total_datas[-1]["index"], True) + ordered = cls.__buy(code, 0, total_datas[-1], total_datas[-1]["index"], True, block_info=block_info) # 鏁版嵁鏄惁澶勭悊瀹屾瘯 if order_begin_pos.buy_exec_index < compute_end_index: @@ -1601,11 +1611,12 @@ max_num_set=set(), buy_volume_rate=buy_volume_rate, mode=OrderBeginPosInfo.MODE_RADICAL, - mode_desc=f"鎬绘姏鍘嬪皬鎵叆:{radical_result[2]}", + mode_desc=f"澶у崟涓嶈冻鎵叆:{radical_result[2]}", sell_info=sell_info, threshold_money=threshold_money) order_begin_pos_info.at_limit_up = cls.__is_at_limit_up_buy(code) - ordered = cls.__process_with_find_exec_index(code, order_begin_pos_info, compute_end_index) + ordered = cls.__process_with_find_exec_index(code, order_begin_pos_info, compute_end_index, + block_info=radical_result[3]) if ordered: radical_buy_data_manager.BlockPlaceOrderRecordManager().add_record(code, radical_result[2]) return @@ -1718,7 +1729,7 @@ mode_desc=order_begin_pos.mode_desc, sell_info=order_begin_pos.sell_info, threshold_money=threshold_money), - compute_end_index) + compute_end_index, block_info=None) else: # 鏈揪鍒颁笅鍗曟潯浠讹紝淇濆瓨绾拱棰濓紝璁剧疆绾拱棰� # 璁板綍涔板叆淇″彿浣嶇疆 @@ -2022,7 +2033,7 @@ @param code: @param start_index: @param end_index: - @return: (鏄惁鑾峰彇鍒颁俊鍙�, 淇″彿浣嶇疆, 鎵叆鏉垮潡/娑堟伅) + @return: (鏄惁鑾峰彇鍒颁俊鍙�, 淇″彿浣嶇疆, 鎵叆鏉垮潡/娑堟伅, 鎵叆鏉垮潡澶у崟娴佸叆淇℃伅) """ # 婵�杩涗拱淇″彿鐨勬椂闂� @@ -2053,7 +2064,7 @@ THRESHOLD_MONEY = 2990000 * 2 else: THRESHOLD_MONEY = 2990000 - if total_deal_money >= THRESHOLD_MONEY: + if total_deal_money >= THRESHOLD_MONEY: min_num = int(5000 / limit_up_price) # 鎬诲鎵樺ぇ鍗曢噾棰� @@ -2132,7 +2143,7 @@ # 濡傛灉鏉夸笂鏀鹃噺涓嶅彲涔板叆灏遍渶瑕佸垹闄や俊鍙� if not constant.CAN_RADICAL_BUY_AT_LIMIT_UP and code in RadicalBuyDealCodesManager.buy_by_l2_delegate_expire_time_dict: RadicalBuyDealCodesManager.buy_by_l2_delegate_expire_time_dict.pop(code) - return True, result[1], radical_data[2] + return True, result[1], radical_data[2], radical_data[3] return result @classmethod -- Gitblit v1.8.0