【Python量化实战宝典 #22】涨跌停、连板情绪手册:情绪指标构建(Python 可跑)

【Python量化实战宝典 #22】涨跌停、连板情绪手册:情绪指标构建(Python 可跑)

手册定位:模块三第 6 篇。市场情绪是择时的「温度表」------涨停数量多、连板高度高代表风险偏好强;反之恐慌。本篇讲用涨跌停/连板数据构建情绪指标。

数据来源复用 #01 涨跌股池(/hs/pool/ztgc/{date}、/hs/pool/dtgc/{date})+ #02 历史K线。

1. 你将得到什么

  • 每日涨停数、跌停数、连板高度的取数(涨跌停股池端点);
  • 情绪温度指数(涨停/跌停比 + 连板高度归一)的构建;
  • 用情绪指标做「冰点买入、沸点减仓」的反向择时;
  • 情绪指标的 4 个坑(牛熊基准不同、一字板、新股、样本偏差)。

2. 取数约定(复用)

信号 来源端点 见
涨停股池 /hs/pool/ztgc/{日期} #01
跌停股池 /hs/pool/dtgc/{日期} #01
连板需逐日追踪 涨停股池 + 历史 #01/#02

3. 数据来源(复用,不重复罗列)

详见 #01 实时行情接口手册(涨跌股池 /hs/pool/*)。

4. 核心模板函数(自包含可跑)

python 复制代码
import pandas as pd
import numpy as np

_MOCK = True


def sentiment_index(zt_count, dt_count, max_board, window=20):
    """情绪温度:涨停/跌停比 与 连板高度 归一后合成 0~1。"""
    ratio = zt_count / max(dt_count, 1)              # 涨停/跌停比
    # 比例取 log 压缩,连板高度直接归一
    r_norm = np.log1p(ratio) / (np.log1p(ratio) + 1)
    b_norm = min(max_board / 10.0, 1.0)              # 连板以10板为满
    return 0.6 * r_norm + 0.4 * b_norm


def board_height_today(stocks_with_board):
    """stocks_with_board: 当日涨停股 [(代码, 连板天数)]。返回最高连板。"""
    return max((b for _, b in stocks_with_board), default=0)


def run_check():
    # 演示:某日 涨停80 跌停10 最高连板7板
    temp = sentiment_index(80, 10, 7)
    h = board_height_today([("600519", 1), ("000001", 7), ("600036", 3)])
    assert 0 <= temp <= 1 and h == 7
    print("校验通过 | 情绪温度=%.2f 最高连板=%d板" % (temp, h))
    return temp


if __name__ == "__main__":
    run_check()

5. 跑通示例

python 复制代码
temp = run_check()
# 情绪冰点(temp<0.2) 反向买入,沸点(temp>0.8) 减仓
print("当前情绪:", "冰点-可考虑" if temp < 0.2 else ("沸点-注意风险" if temp > 0.8 else "中性"))

6. 坑与注意事项

  1. 牛熊基准不同:牛市涨停数天然多,用绝对值比历史会误判,要做滚动分位(见 window 思想)。
  2. 一字板:一字涨停无法买入,算情绪要区分「可参与涨停」与「一字板」。
  3. 新股/ST:新股上市连板、ST 涨跌幅不同,计入情绪要剔除或单独处理。
  4. 样本偏差:情绪指标只在有涨跌停制度的 A 股有效,港股/美股不适用。

7. 小结与下一篇预告

情绪指标补上「市场温度」维度。下一篇讲多信号综合择时打分------把 #17--#22 所有择时信号加权合成一个总决策。

下一篇预告:《【Python量化实战宝典 #23】多信号综合择时打分手册:加权合成(Python 可跑)》

8. 免责声明

本文为择时方法示例,演示数据为虚构,不构成投资建议。

相关推荐
AI你一生一世1 小时前
当推理遇上晶圆级引擎:拆解 GPT-5.6 Sol 超快推理背后的系统权衡
系统优化·1024程序员节·大模型推理·晶圆级引擎·延迟与吞吐·内存带宽·gpt-5.6 sol
gCode Teacher 格码致知1 小时前
Pandas教学-21:subplots的使用
python·pandas·1024程序员节
device_Any1 小时前
容量评估:峰值、均值,还有被漏掉的余量
1024程序员节
码士集团小青1 小时前
面霸篇:高频 Java 基础问题(核心卷一)
linux·服务器·数据库·redis·缓存·1024程序员节
2601_967980111 小时前
Python开发的顶级开源项目全景图:2025-2026年生态概览
python·机器学习·开源项目·数据科学·生态概览
一级新生1 小时前
提示词工程:跟 AI 打交道的手艺
人工智能·大模型·dify·1024程序员节·提示词工程
无所谓จุ๊บ1 小时前
02_折扣机制与选型建议
1024程序员节
程序猿乐锅1 小时前
Python 面向对象案例:学生成绩管理系统
1024程序员节
slacker-kian1 小时前
[工程]:智能招聘--一个可组装的人才智能推荐系统
ai·ai编程·向量数据库·1024程序员节·相似性搜索·人力推荐系统