api/outside_api_command_callback.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
third_data/kpl_data_constant.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
trade/buy_radical/new_block_processor.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
trade/buy_radical/radical_buy_data_manager.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
trade/buy_radical/radical_buy_strategy.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
api/outside_api_command_callback.py
@@ -1075,7 +1075,7 @@ if referer_volume == today_volumn: expire_rate = "100%" else: expire_rate = f"{round(100 * total_left_num * 100 / (referer_volume - today_volumn), 2)}%" expire_rate = f"{100 - round(100 * total_left_num * 100 / (referer_volume - today_volumn), 2)}%" except: pass third_data/kpl_data_constant.py
@@ -77,6 +77,9 @@ # 今日的新概念 __new_blocks = set() # 代码的新题材 __code_new_blocks = {} __instance = None __day = tool.get_now_date_str() @@ -230,6 +233,10 @@ if block in old_blocks: return False self.__new_blocks.add(block) if code not in self.__code_new_blocks: self.__code_new_blocks[code] = set() self.__code_new_blocks[code].add(block) old_blocks.add(block) trade_record_log_util.add_temp_special_codes(code, f"新题材辨识度:{block}") async_log_util.info(logger_debug, f"今日新增概念:{code} - {block}") @@ -260,6 +267,15 @@ return True return False def has_new_block(self, code): """ 是否有新题材 @param code: @return: """ if self.__code_new_blocks.get(code): return True return False class TodayLimitUpReasonChangeManager: trade/buy_radical/new_block_processor.py
@@ -34,9 +34,11 @@ @param code: @return: """ if BlockSpecialCodesManager().get_code_blocks(code): if LimitUpCodesBlockRecordManager().has_new_block(code): # 有新题材 k_format = code_nature_analyse.CodeNatureRecordManager().get_k_format_cache(code) if k_format and k_format[1]: # 突破形态 return False return True trade/buy_radical/radical_buy_data_manager.py
@@ -29,6 +29,7 @@ from third_data.third_blocks_manager import BlockMapManager from trade import trade_record_log_util, trade_data_manager, trade_manager, trade_constant from trade.buy_money_count_setting import RadicalBuyBlockCodeCountManager from trade.buy_radical import new_block_processor from trade.buy_radical.block_special_codes_manager import BlockSpecialCodesManager from trade.trade_data_manager import RadicalBuyDealCodesManager from utils import tool, global_util, trade_util @@ -1391,6 +1392,36 @@ can_buy_blocks.add(b) msges.append(f"【{b}】:{result[1]}") fmsges.append("首封板块辨识度判断##" + ",".join(msges)) # 新题材只买前2 if can_buy_blocks: msges.clear() # 判断代码是否破前高 is_new_high = False k_format = code_nature_analyse.CodeNatureRecordManager().get_k_format_cache(code) if k_format and k_format[1]: # 突破形态 is_new_high = True delete_blocks = set() for b in can_buy_blocks: # 板块 if LimitUpCodesBlockRecordManager().is_new_block(b): if not is_new_high: msges.append(f"【{b}】:新题材没破前高") delete_blocks.add(b) continue # 新题材只买前2 history_index, history_before_codes_info, limit_up_space_ge_60s_codes = cls.__get_history_index( code, b, yesterday_limit_up_codes) if history_index > 1: delete_blocks.add(b) msges.append(f"【{b}】:新题材只买前2") continue can_buy_blocks -= delete_blocks if msges: fmsges.append("新题材判断##" + ",".join(msges)) # 判断板块是否不能买 if can_buy_blocks: msges.clear() trade/buy_radical/radical_buy_strategy.py
@@ -13,7 +13,7 @@ from log_module import async_log_util from log_module.log import logger_l2_radical_buy, hx_logger_l2_transaction, logger_l2_not_buy_reasons from third_data import kpl_data_manager from third_data.kpl_data_constant import LimitUpDataConstant from third_data.kpl_data_constant import LimitUpDataConstant, LimitUpCodesBlockRecordManager from trade.buy_radical import radical_buy_data_manager from trade.buy_radical.radical_buy_data_manager import RadicalBuyBlockManager from trade.trade_data_manager import RadicalBuyDealCodesManager @@ -171,11 +171,18 @@ average_rate = Buy1PriceManager().get_average_rate(code) if average_rate is not None and average_rate < 0.07: average_big_order_money = 299 * 10000 if average_big_order_money > left_limit_up_sell_money: threshold_left_sell_money = average_big_order_money # 如果是非新题材的首封: 2个大单的折扣 if radical_buy_data_manager.is_first_limit_up_buy(code) and not LimitUpCodesBlockRecordManager().has_new_block( code): threshold_left_sell_money = average_big_order_money * 2 if threshold_left_sell_money > left_limit_up_sell_money: # 剩余总卖小于均大单才能下单 # 如果是深证且卖一大于5000w可不判断大单是否满足 if tool.is_sz_code(code) and refer_sell_money >= 5e7: return BUY_MODE_DIRECT, f"剩余涨停总卖额-{left_limit_up_sell_money},均大单-{average_big_order_money}, 总抛压大({refer_sell_money})" return BUY_MODE_DIRECT, f"剩余涨停总卖额-{left_limit_up_sell_money},均大单-{average_big_order_money}, 剩余阈值-{threshold_left_sell_money}, 总抛压大({refer_sell_money})" else: # 判断大单是否满足 total_lack_money_info = radical_buy_data_manager.get_total_deal_big_order_info(code,