constant.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
inited_data.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
third_data/third_blocks_manager.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
trade/buy_money_count_setting.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
trade/radical_buy_data_manager.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
constant.py
@@ -196,4 +196,4 @@ L2_DATA_IS_LOADED = False # 可买入的金额 AVAILABLE_BUY_MONEYS = [5000, 20000, 50000] AVAILABLE_BUY_MONEYS = [5000, 20000, 30000, 40000, 50000] inited_data.py
@@ -13,6 +13,7 @@ from db.redis_manager_delegate import RedisUtils from l2.l2_sell_manager import L2MarketSellManager from l2.l2_transaction_data_manager import HuaXinBuyOrderManager from third_data.third_blocks_manager import InvalidBlockManager, CodeThirdBlocksManager from ths import client_manager import constant from trade.deal_big_money_manager import DealOrderNoManager @@ -79,6 +80,10 @@ ThsCodeIndustryManager() InvalidBlockManager() CodeThirdBlocksManager() # 9点25之前删除所有代码 if tool.trade_time_sub(tool.get_now_time_str(), "09:25:00") <= 0: # 删除L2监听代码 @@ -111,6 +116,7 @@ PlaceOrderCountManager().clear() # 每日初始化 def everyday_init(): # 交易時間不能做初始化 third_data/third_blocks_manager.py
@@ -208,17 +208,62 @@ if blocks is None or len(blocks) == 0: return set() fbs = set() invalid_blocks = InvalidBlockManager().get_invalid_blocks() for block in blocks: if block.endswith("概念"): block = block[:-2] # b = self.get_map_blocks_cache(block) # if b: # fbs |= b if block in invalid_blocks: continue fbs.add(block) return fbs def get_all_blocks(self): return self.__block_map.keys() class InvalidBlockManager: """ 无效板块管理 """ __mysql = Mysqldb() __instance = None __block = set() def __new__(cls, *args, **kwargs): if not cls.__instance: cls.__instance = super(InvalidBlockManager, cls).__new__(cls, *args, **kwargs) cls.__load_data() return cls.__instance @classmethod def __load_data(cls): results = cls.__mysql.select_all("select _block from invalid_block") cls.__block.clear() for result in results: if result[0]: cls.__block.add(result[0]) def get_invalid_blocks(self): """ 获取无效的板块 @return: """ return self.__block def set_incalid_blocks(self, blocks): """ 设置无效的板块 @param blocks: @return: """ # 先删除所有,然后再添加 self.__mysql.execute("delete from invalid_block") for b in blocks: self.__mysql.execute(f"insert into invalid_block(_block) values('{b}')") self.__block = set(blocks) def load_if_less(codes): @@ -243,9 +288,16 @@ if __name__ == '__main__': code = "000761" try: blocks = middle_api_protocol.request(middle_api_protocol.get_third_blocks(code, 4)) print(blocks) except Exception as e: print(e) blocks_str = """ 昨日连板 昨日连板_含一字 昨日涨停 昨日涨停_含一字 """ blocks = set() for x in blocks_str.split("\n"): if x.strip(): blocks.add(x.strip()) print(len(blocks)) print(len(InvalidBlockManager().get_invalid_blocks())) trade/buy_money_count_setting.py
@@ -199,4 +199,4 @@ if __name__ == '__main__': pass print(RadicalBuyBlockCodeCountManager().get_block_code_count("测试")) trade/radical_buy_data_manager.py
@@ -68,9 +68,9 @@ if limit_up_reason: reasons.add(limit_up_reason) if not limit_up_reason: radical_buy_blocks = RadicalBuyDealCodesManager.radical_buy_blocks_dict.get(dc) if radical_buy_blocks: reasons |= radical_buy_blocks radical_buy_deal_blocks = RadicalBuyDealCodesManager.radical_buy_blocks_dict.get(dc) if radical_buy_deal_blocks: reasons |= radical_buy_deal_blocks for r in reasons: if r not in deal_reason_codes: deal_reason_codes[r] = set() @@ -81,7 +81,7 @@ for b in radical_buy_blocks: # 获取板块的最大买入个数 max_count = RadicalBuyBlockCodeCountManager().get_block_code_count(b) if b in deal_reason_codes and len(deal_reason_codes[b])>=max_count: if b in deal_reason_codes and len(deal_reason_codes[b]) >= max_count: continue f_buy_blocks.add(b) async_log_util.info(logger_l2_radical_buy, f"还可以买入的板块:{code}-{f_buy_blocks}")