Administrator
2024-10-12 0bca60accd9c3bb4d2fe6123d41db6be6ab2273d
bug修复
5个文件已修改
82 ■■■■ 已修改文件
constant.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inited_data.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/third_blocks_manager.py 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/buy_money_count_setting.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/radical_buy_data_manager.py 8 ●●●● 补丁 | 查看 | 原始文档 | 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}")