l2/l2_data_manager_new.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
trade/radical_buy_data_manager.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
l2/l2_data_manager_new.py
@@ -2092,23 +2092,9 @@ else: # 判断该板块前排是否已经有成交 deal_codes = RadicalBuyDealCodesManager().get_deal_codes() for b in radical_data[2]: temp_deal_codes = radical_buy_data_manager.get_deal_codes_by_block(b, deal_codes) if len(temp_deal_codes) > 0: max_count = RadicalBuyBlockCodeCountManager().get_block_code_count(b) if len(temp_deal_codes) > max_count: return False, result[1], f"前排代码成交数量足够多:{temp_deal_codes}" # 前排代码才会继续买 limit_up_timestamp = LimitUpDataConstant.get_first_limit_up_time(code) if not limit_up_timestamp: limit_up_timestamp = t.time() front_infos = [] for _code in temp_deal_codes: temp_limit_up_timestamp = LimitUpDataConstant.get_first_limit_up_time(_code) if temp_limit_up_timestamp and limit_up_timestamp > temp_limit_up_timestamp: front_infos.append((_code, temp_limit_up_timestamp)) if len(front_infos) >= max_count: return False, result[1], f"前排代码已经成交:{front_infos}" buy_blocks = radical_buy_data_manager.is_block_can_radical_buy(code, radical_data[2], deal_codes) if not buy_blocks: return False, result[1], f"板块代码已有成交:{radical_data[2]}" return True, result[1], radical_data[2] return result trade/radical_buy_data_manager.py
@@ -2,6 +2,7 @@ 激进买数据管理 """ import json import time import constant import l2_data_util @@ -13,6 +14,7 @@ from log_module import async_log_util from log_module.log import logger_l2_radical_buy from third_data import kpl_data_manager from third_data.kpl_data_constant import LimitUpDataConstant from trade.buy_money_count_setting import RadicalBuyBlockCodeCountManager from trade.trade_data_manager import RadicalBuyDealCodesManager from utils import tool, global_util @@ -279,9 +281,10 @@ reasons |= radical_buy_deal_blocks return reasons def is_block_can_radical_buy(code, radical_buy_blocks, deal_codes): """ 板块是否还能买入 板块是否还能买入:如果有身位更加靠前的买入一个了可以下单 @param code: @param radical_buy_blocks: 板块 @param deal_codes: 成交的代码 @@ -304,7 +307,24 @@ # 获取板块的最大买入个数 max_count = RadicalBuyBlockCodeCountManager().get_block_code_count(b) if b in deal_reason_codes and len(deal_reason_codes[b]) >= max_count: continue if len(deal_reason_codes[b]) >= max_count + 1: continue else: # 当前代码身位比成交代码身位靠前的可以多成交一个代码 is_front = False limit_up_timestamp = LimitUpDataConstant.get_first_limit_up_time(code) if not limit_up_timestamp: limit_up_timestamp = time.time() for c in deal_reason_codes[b]: # 获取涨停时间 timestamp = LimitUpDataConstant.get_first_limit_up_time(c) if timestamp and timestamp > limit_up_timestamp: # 比目标代码后涨停 is_front = True async_log_util.info(logger_l2_radical_buy, f"前排代码还可买入:{b}-{code},后排成交代码-{c}") break if not is_front: continue f_buy_blocks.add(b) async_log_util.info(logger_l2_radical_buy, f"还可以买入的板块:{code}-{f_buy_blocks}") return f_buy_blocks