admin
2025-04-17 c80d49a41aefac79c2f4dc8a471e5bc584b4698d
涨跌统计生成信号
1个文件已修改
32 ■■■■■ 已修改文件
strategy/market_sentiment_analysis.py 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
strategy/market_sentiment_analysis.py
@@ -411,12 +411,10 @@
# 计算市场分布形态因子 函数
# ====================== 输入数据 ======================
data = {'-1': '284', '-10': '2', '-2': '80', '-3': '32', '-4': '11', '-5': '6', '-6': '6', '-7': '2', '-8': '0',
        '-9': '1', '0': '101', '1': '1376', '10': '8', '2': '1760', '3': '964', '4': '285', '5': '108', '6': '49',
        '7': '17', '8': '9', '9': '2', 'DT': 3, 'SJDT': '2', 'SJZT': '15', 'STDT': '1', 'STZT': '7', 'SZJS': 4600,
        'XDJS': 427, 'ZSZDFB': '1939,238,57,446,45,8,271,19,2,42,7,1,26,19,5,217,71,12,', 'ZT': 22,
        'sign': '市场人气较好', 'szln': 1113353, 'qscln': 3725698, 's_zrcs': 2185592, 'q_zrcs': 5573160,
        's_zrtj': 58079140, 'q_zrtj': 134866542}
data = {'-1': '2704', '-10': '2', '-2': '487', '-3': '81', '-4': '38', '-5': '15', '-6': '5', '-7': '4', '-8': '4', '-9': '2', '0': '743', '1': '773', '10': '6',
        '2': '144', '3': '35', '4': '29', '5': '11', '6': '10', '7': '10', '8': '3', '9': '1', 'DT': 7, 'SJDT': '3', 'SJZT': '10', 'STDT': '4', 'STZT': '6',
        'SZJS': 1038, 'XDJS': 3349, 'ZSZDFB': '475,1353,405,62,395,43,34,222,37,22,23,5,17,22,11,71,183,46,', 'ZT': 16, 'sign': '市场人气一般', 'szln': 473159,
        'qscln': 1099671, 's_zrcs': 1607250, 'q_zrcs': 4298869, 's_zrtj': 45633261, 'q_zrtj': 107719382}
# ====================== 数据预处理 ======================
@@ -653,6 +651,20 @@
                            f"上涨家数:{rise_numbers},下跌家数:{fall_numbers},实际涨停家数:{actual_limit_up_numbers},实际跌停家数:{actual_limit_down_numbers}")
                        logger.info(f"涨跌统计字典{data_cache.rise_and_fall_statistics_dirt}")
                        logger.info(f"涨跌统计因子的计算={factors}")
                        logger.info(f"涨跌统计生成信号={signals}")
                        logger.info("\n========== 关键指标 ==========")
                        logger.info(f"总股票数: {factors['total_stocks']}\n"
                                    f"涨跌比(BDR): {factors['rise_vs_fall']['rise_vs_fall_ratio']:.2f}"
                                    f"极端波动比例: {factors['sentiment']['extreme_ratio']:.2%}"
                                    f"资金净流入(元): {round(factors['capital_flow']['net'] / 10000, 2)}万"
                                    f"涨停股占比: {factors['sentiment']['zt_ratio']:.2%}"
                                    f"市场情绪量化: {'积极' if factors['sentiment']['sign'] else '谨慎'}"
                                    f"聚集区域:{factors['rise_vs_fall']['rise_gather_area']},聚集区域的比例值:{factors['rise_vs_fall']['percentages'].get(factors['rise_vs_fall']['rise_gather_area'])}%"
                                    f"零散区域:{factors['rise_vs_fall']['rise_scattered_area']},聚集区域的比例值:{factors['rise_vs_fall']['percentages'].get(factors['rise_vs_fall']['rise_scattered_area'])}%"
                                    f"涨跌因子字典={factors['rise_vs_fall']}")
                        logger.info("\n========== 策略信号 ==========")
                        for i, signal in enumerate(signals, 1):
                            logger.info(f"信号{i}: {signal}")
                    # 理想交易行情分数【评估当前行情是否有利于低吸策略取得更高抓板率的分数(是否是理想的交易行情)】
                    ideal_trading_market_score = 1
@@ -679,7 +691,7 @@
                    # 开仓策略计算结果
                    # 根据账户可用金额 计算今日计划下单金额
                    # 账户可用金额 默认乘以0.95,永远留一点钱,一方面也冗余一些计算误差
                    #  ((大盘综合强度分数 + 大盘指数情绪预期分数) * 0.01) * (账户可用金额 * 0.9 * 极端低迷情绪比例 / 今日最大新增持仓票数)
                    #  ((大盘综合强度分数 + 大盘指数情绪预期分数) * 0.01) * (账户可用金额 * 0.9 * 极端低迷情绪比例 / 今日最大新增持仓票数(常量:3))
                    # 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)
                    # 除以3应该是一个常量,如果以Unfinished_opening_plan_number,会出现float division by zero 错误
@@ -734,11 +746,11 @@
    print(f"总股票数: {factors['total_stocks']}")
    print(f"涨跌比(BDR): {factors['rise_vs_fall']['rise_vs_fall_ratio']:.2f}")
    print(f"极端波动比例: {factors['sentiment']['extreme_ratio']:.2%}")
    print(f"资金净流入(元): {factors['capital_flow']['net']:,}")
    print(f"资金净流入(元): {round(factors['capital_flow']['net']/10000, 2)}万")
    print(f"涨停股占比: {factors['sentiment']['zt_ratio']:.2%}")
    print(f"聚集区域:{factors['rise_vs_fall']['rise_gather_area']},聚集区域的比例值:{factors['rise_vs_fall']['percentages'].get(factors['rise_vs_fall']['rise_gather_area'])}%")
    print(f"零散区域:{factors['rise_vs_fall']['rise_scattered_area']},聚集区域的比例值:{factors['rise_vs_fall']['percentages'].get(factors['rise_vs_fall']['rise_scattered_area'])}%")
    print(f"市场情绪量化: {'积极' if factors['sentiment']['sign'] else '谨慎'}")
    print(f"聚集区域:{factors['rise_vs_fall']['rise_gather_area']}")
    print(f"零散区域:{factors['rise_vs_fall']['rise_scattered_area']}")
    print(f"涨跌因子字典={factors['rise_vs_fall']}")
    print("\n========== 策略信号 ==========")