【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. 免责声明

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

相关推荐
大可不必了26 分钟前
03 函数定义和调用
开发语言·python
承渊政道1 小时前
【Python编程—从入门到实践】(记分与闯关:用Python+Pygame,打造越战越精彩的太空大战!)
开发语言·python·pycharm·游戏程序·pygame
爱学习的程序媛1 小时前
Python常用框架梳理
开发语言·后端·python·ai·web·后端框架·python框架
imgsq2 小时前
GESP Python 一到四级:备考路线与真题特点
python·青少年编程
eggwyw3 小时前
Anaconda安装卸载的详细流程指南
开发语言·python
2601_967979123 小时前
纯手写:Python安装pip完整教程,搞了几小时,终于成功
python·教程·pip·安装·包管理
Norna4 小时前
缓存文件从没写出来:一个 .json 被当成目录用了
python
aifannihao6 小时前
AI 学习第 14 课:CNN 训 6 轮卡在 0.5352,数据没打乱
pytorch·python·深度学习·cnn·学习路线
yuyuxun17 小时前
协同过滤的校园二手物品智能推荐系统的设计与实现 毕业设计-附源码40082
javascript·vue.js·spring boot·python·数据分析·django·课程设计
如夏倾城7 小时前
百度文心(容易被忽略的好用AI)使用方式
人工智能·python·百度·语言模型·dubbo