admin
2025-03-28 6f3c0956667cb4383151bdc1d3a7f31f2d048bda
bug修改
4个文件已修改
21 ■■■■ 已修改文件
strategy/data_cache.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
strategy/instant_time_market.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
strategy/kpl_api.py 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
strategy/kpl_data_manager.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
strategy/data_cache.py
@@ -75,9 +75,7 @@
        # self.filtered_stocks = [stock for stock in self.all_stocks if
        #                         stock.startswith('SHSE.60') or (stock.startswith('SZSE.00'))]
        self.filtered_stocks = [stock['symbol'] for stock in self.all_stocks if
                                isinstance(stock.get('symbol'), str) and (
                                        stock['symbol'].startswith('SHSE.60') or stock['symbol'].startswith(
                                    'SZSE.00'))]
                                isinstance(stock.get('symbol'), str) and (stock['symbol'].startswith('SHSE.60') or stock['symbol'].startswith('SZSE.00'))]
        # self.filtered_stocks =  self.filtered_stocks[:10]
        print(f"过滤后上证A股和深证A股数量filtered_stocks:{len(self.filtered_stocks)}")
        # 声明一下需要拉取K线的列表
strategy/instant_time_market.py
@@ -267,6 +267,7 @@
    else:
        return None
# 获取当前L1行情数据
def get_current_info():
    logging.info(f"get_current_info进入")
@@ -300,8 +301,7 @@
            time.sleep(0.5)
# 把current_infos灌入相应的线程
def set_current_info(current_infos):
    logging.info(f"set_current_info进入")
    try:
strategy/kpl_api.py
@@ -770,24 +770,27 @@
                    data_cache.index_trend_expectation_score = index_trend_expectation()
                    logger.info(f"大盘指数情绪预期分数==={data_cache.index_trend_expectation_score}分")
                    # 目前大盘指数情绪预期分数 尚不科学 强制设置为初始0值
                    index_trend_expectation_score = 0
                    # # 目前大盘指数情绪预期分数 尚不科学 强制设置为初始0值
                    # index_trend_expectation_score = 0
                    # 获取计算今天新增的持仓数量
                    addition_position_number = len(data_cache.addition_position_symbols_set)
                    # 定义一个今日的剩余新增持仓数量的变量
                    Unfinished_opening_plan_number = 3 - addition_position_number
                    logger.info(f"今日的剩余新增持仓数量==={Unfinished_opening_plan_number}")
                    if Unfinished_opening_plan_number != 0:
                        # 如果GUI看盘上没有手动设置具体的下单金额,就按照评分策略的金额下单,否则就按照GUI设置的金额下单。
                        if data_cache.BUY_MONEY_PER_CODE < 0:
                            # 根据账户可用金额 计算今日计划下单金额
                            # 账户可用金额 默认乘以0.9,永远留一点钱,一方面也冗余一些计算误差
                            #  ((大盘综合强度分数 + 大盘指数情绪预期分数) * 0.01) * (账户可用金额 * 0.9 * 极端低迷情绪比例 / 今日最大新增持仓票数)
                            # data_cache.today_planned_order_amount = ((data_cache.real_time_market_strong + index_trend_expectation_score) * 0.01) * (
                            # data_cache.today_planned_order_amount = ((data_cache.real_time_market_strong + data_cache.index_trend_expectation_score) * 0.01) * (
                            #                                                 usefulMoney * 0.9 * low_emotion_mood_ratio / Unfinished_opening_plan_number)
                            data_cache.today_planned_order_amount = (index_trend_expectation_score * 0.01) * (usefulMoney * 0.95 * low_emotion_mood_ratio / Unfinished_opening_plan_number)
                            data_cache.today_planned_order_amount = (data_cache.index_trend_expectation_score * 0.01) * (usefulMoney * 0.95 * low_emotion_mood_ratio / Unfinished_opening_plan_number)
                            logger.info(f"采用开仓策略计算方式=》今日计划下单金额:{data_cache.today_planned_order_amount},")
                        else:
                            data_cache.today_planned_order_amount = data_cache.BUY_MONEY_PER_CODE
                            logger.info(f"采用GUI设置方式=》今日计划下单金额:{data_cache.today_planned_order_amount}")
        except Exception as error:
            logger.error(f"获取实时大盘行情情绪综合强度[分数] 函数报错: {error}")
strategy/kpl_data_manager.py
@@ -27,7 +27,7 @@
    def __filter_origin_data(self, data):
        return (data[0], [x[1] for x in data[1][0]],
                {p: [(xx[0], xx[1], xx[6]) for xx in data[1][1][p]] for p in data[1][1]})
                {p: [xx for xx in data[1][1][p]] for p in data[1][1]})
    def add_log(self, in_plates_info, plate_codes_info):
        oringin_data = (tool.get_now_time_str(), in_plates_info, plate_codes_info)