NHNL因子如何刻画行业强弱

根据华福证券-市场情绪指标专题(五),进行了提炼和改写,特此致谢!

( N H N L ) % = ( c o u n t ( H H V ) − c o u n t ( L L V ) ) / N (NHNL)\% = (count(HHV) - count(LLV))/N (NHNL)%=(count(HHV)count(LLV))/N

个股的顶底强弱比较难以把握,它们的偶然性太强。董事长有可能跑路,个股也可能遇到突发利好(比如竞争对手仓库失火)。在个股的顶底处,情绪占据主导地位,理性退避次席,技术指标出现钝化,进入现状不可描述,一切皆有可能的状态。

但是,行业指数作为多个随机变量的叠加,就会出现一定的规律性(受A4系统性影响的偶然性我们先排除在外,毕竟也不是天天有A4)。这是因子分析和技术分析可以一展身手的地方。

今天要介绍的净新高占比因子,可以用来捕捉行业强弱趋势以及反转,以此因子为基础,我们可以构建指数增强策略。

因子定义

净新高占比指标是指行业指数中,创年度新高与年度新低之差的个股数占全行业个股数的百分比:

( N H N L ) % = ( c o u n t ( H H V ) − c o u n t ( L L V ) ) / N (NHNL)\% = (count(HHV) - count(LLV))/N (NHNL)%=(count(HHV)count(LLV))/N

因子背后的逻辑

该因子的主要金融原理是锚定效应。行为金融学告诉我们,绝大多数投资者都有很强的锚定效应。投资者始终会以自己买入股票/基金时的价格(即锚定成本)为基准,视自己的账户是处于浮盈还是浮亏状态,来确定自己的操作。

创年度新高的个股,其股票持有者均为浮盈状态,即使其计划卖出,也希望等行情再上涨一段时间,因此其抛压相对较小;而创年度新低的个股,因其股票持有者均为浮亏状态,因此只要行情反弹便有投资者卖出,抛压反而较大。这样就出现了熊市不言底,牛市不言顶的规律,或者说新高之后还有新高,新低之后还有新低的股谚。

基于这一原理,显然,净新高因子能较好地刻画行业指数的强弱。

信号构建

华福证券以中信一级行业指数为例,给出了以下参考指标:

N H N L = { x ≥ 30 % 贪婪 20 % ≤ x < 30 % 乐观 − 20 % < x < 20 % 正常区间 − 30 % < x ≤ − 20 % 悲观 x ≤ − 30 % 恐惧 NHNL = \begin{cases} x \geq 30\% \ 贪婪\\\ 20\% \leq x \lt 30\% \ 乐观\\\ -20\% \lt x \lt 20\% \ 正常区间\\\ -30\% \lt x \leq -20\% \ 悲观\\\ x \leq -30\% \ 恐惧 \end{cases} NHNL= x30% 贪婪 20%x<30% 乐观 20%<x<20% 正常区间 30%<x20% 悲观 x30% 恐惧

为了防止一级行业指数个股数太少引发的过大波动,他们建议当一级行业指数上市超过 1 年的个股数小于 40 时,将阈值放宽为±30%/40%。

建议该指标这样使用(以单边做多为例):

  1. 当NHNL进行乐观区间时,开始建仓,此时是动量策略
  2. 当NHNL进入贪婪区间时,注意可能到来的反转。首次从贪婪区间跌回乐观区间时,做空信号出现,下一交易日开盘卖出。
  3. 当NHNL进行恐慌区间时,注意可能到来的反转。首次从恐慌区间涨回悲观区间时,下一交易日开盘买入。此时注意设置好止损位,反弹延续才能继续持有。

代码

代码的关键是要获取行业指数及成份股行情,因为计算一年内的新高和新低非常容易。

我们以XtQuant为例进行演示。XtQuant是迅投研发的行情数据及实盘接口,开通量化权限的话,可以免费获得行情数据,因此它是又一个优秀的免费数据源。我们在第24课有详细介绍它的使用。

sectors = set()for item in get_sector_list():for i in range(6, 1, -1):key = item[:i]if key.startswith("SW1"):sectors.add(key)break
print(sectors)# 显示:
'SW1煤炭', 'SW1交通运', 'SW1综合', 'SW1通信' ...

我们大约拿到40个申万一级板块名。接下来我们就需要获取板块内的每支成分股的证券代码:

xt.get_stock_list_in_sector("SW1煤炭")# 显示:['600121.SH','600123.SH','600157.SH','600188.SH','600348.SH','600395.SH',...
]

获取个股行情数据的方法在最近的笔记中有详细介绍,这里不再重复。

更多的代码不便一一演示。我们有示例notebook可以提供。最终我们能得到这样一个效果:

Quiz

请说说为什么净新高占比因子不是在[-1,1]区间内均匀分布的。为了得出结论,你用了几秒?

本文由mdnice多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/295908.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器人创新实验室任务三参考文档

一、JAVA环境配置 需要在Linux里面下载并且安装java。 sudo apt-get install openjdk-17-jre-headless 打开终端并且运行指令&#xff0c;用apt下载安装java。官方用的好像是java11&#xff0c;我安装的是java17。 如果无法定位软件安装包&#xff0c;可以试试更新一下 sudo …

【数据结构入门精讲 | 第六篇】队列知识点及考研408、企业面试练习

在上一篇文章中我们介绍了栈的知识点及相关练习&#xff0c;在这一篇文章中我们将介绍队列的知识点并通过练习来巩固。 目录 队列队列的数组实现基础概念伪代码 队列的循环数组实现基础概念伪代码 队列的链表实现基础概念伪代码 判断题选择题函数题R6-1 双端队列 编程题R7-1 列…

互联网+建筑工地源码,基于微服务+Java+Spring Cloud +Vue+UniApp开发

一、智慧工地概念 智慧工地就是互联网建筑工地&#xff0c;是将互联网的理念和技术引入建筑工地&#xff0c;然后以物联网、移动互联网技术为基础&#xff0c;充分应用BIM、大数据、人工智能、移动通讯、云计算、物联网等信息技术&#xff0c;通过人机交互、感知、决策、执行和…

SpringMVC:整合 SSM 中篇

文章目录 SpringMVC - 04整合 SSM 中篇一、优化二、总结三、说明注意&#xff1a; SpringMVC - 04 整合 SSM 中篇 一、优化 在 spring-dao.xml 中配置 dao 接口扫描&#xff0c;可以动态地实现 dao 接口注入到 Spring 容器中。 优化前&#xff1a;手动创建 SqlSessionTempl…

【量化金融】证券投资学

韭菜的自我修养 第一章&#xff1a; 基本框架和概念1.1 大盘底部形成的技术条件1.2 牛市与熊市1.3 交易系统1.3.1 树懒型交易系统1.3.2 止损止损的4个技术 第二章&#xff1a;证券家族4兄弟2.1 债券&#xff08;1&#xff09;债券&#xff0c;是伟大的创新&#xff08;2&#x…

Python 爬虫之下载视频(四)

爬取某投币视频平台的小视频 文章目录 爬取某投币视频平台的小视频前言一、基本内容二、基本思路三、代码编写1.引入库2.设置手机模式3.跳过手动点击等操作4.获取视频下载地址5.获取视频标题6.下载保存 总结 前言 这篇用来记录一下如何爬取这个平台的视频&#xff0c;比如一些…

Unity矩阵平移旋转缩放Matrix4x4

Unity矩阵平移旋转缩放Matrix4x4 Unity中的矩阵&#xff08;Matrix4x4&#xff09;创建自定义模型平移矩阵缩放矩阵旋转矩阵 Unity中的矩阵&#xff08;Matrix4x4&#xff09; 最近在研究帧同步定点数物理系统中需要自定义定点数矩阵&#xff0c;所以在这里分享下基础的矩阵案…

每日一题——LeetCode860

个人方法&#xff1a; 用change数组保存我们拥有的零钱的数量&#xff0c;change数组只有change[5]、change[10]、change[20]是有效的&#xff0c;其值代表了不同面值的零钱拥有多少张 顾客付了多少钱&#xff0c;先把钱存入零钱数组&#xff0c;然后计算需要找零的金额&…

Pytest+Requests+Allure实现接口自动化测试

一、整体结构 框架组成&#xff1a;pytestrequestsallure设计模式&#xff1a; 关键字驱动项目结构&#xff1a; 工具层&#xff1a;api_keyword/参数层&#xff1a;params/用例层&#xff1a;case/数据驱动&#xff1a;data_driver/数据层&#xff1a;data/逻辑层&#xff1a…

消息队列之关于如何实现延时队列

一、延时队列的应用 1.1 什么是延时队列&#xff1f; 顾名思义&#xff1a;首先它要具有队列的特性&#xff0c;再给它附加一个延迟消费队列消息的功能&#xff0c;也就是说可以指定队列中的消息在哪个时间点被消费。 延时队列在项目中的应用还是比较多的&#xff0c;尤其像…

手写题 - 实现一个带并发限制的异步调度器

题目 实现一个带并发限制的异步调度器 Scheduler&#xff0c;保证同时运行的任务最多有N个。 完善下面代码中的 Scheduler 类&#xff0c;使得以下程序能正确输出&#xff1a;class Scheduler {add(promiseCreator) { ... }// ... }const timeout (time) > new Promise(re…

Quartz.NET 事件监听器

1、调度器监听器 调度器本身收到的一些事件通知&#xff0c;接口ISchedulerListener&#xff0c;如作业的添加、删除、停止、挂起等事件通知&#xff0c;调度器的启动、关闭、出错等事件通知&#xff0c;触发器的暂停、挂起等事件通知&#xff0c;接口部分定义如下&#xff1a…