后见之明!错过6个涨停板之后的复盘

在今年1月2日和1月3日,旅游板块两支个股先后涨停,此后一支月内三倍,另一支连续6个涨停。事后复盘,我们如何在1月2日第一支个股涨停之后,通过量化分析,找出第二支股?

一个3倍,一个6连板

这是两支个股在2024年1月17日前60日收盘价图。图中红色虚线是个股启动时间。A大概是受董宇辉小作文、或者尔滨旅游热题材发酵带动,于1月2日率先启动。

尽管A在半个月内股价接近3倍,但从量化的角度,目前还难以精准地实现事件驱动上涨这种类型的建模。但是,如果我们在A启动之后,在1月2日收盘前买入B(就这次而言,B次日开盘仍有买入机会),连续收获6个涨停,也完全可以满意。

现在,我们就来复盘,如何从A涨停,到发现B。


首先,运行策略的时间应该放在14:30分之后,此时对市场进行扫描,找出首板涨停的个股。当日涨停数据在Akshare可以获得,印象中,它能区分首板涨停和连板。

对首板涨停的个股,我们先获取它所在的概念板块。然后对每个板块的成员股进行遍历,通过相关性分析,找到关联度较高的个股。
在这里插入图片描述

如果仅仅是和龙头同在一个板块是无法保证资金眷顾的。而且,一支个股往往身兼多个概念,在极短的时间里要弄清楚究竟是炒的它的哪一个概念也不容易。不过,通过数据挖掘,我们可以完全不去理会炒作背后的逻辑 – 何况很多逻辑,根本就是狗p不通。

我们用相关性检测来进行数据挖掘。


相关系数

在概率论和统计学中,相关性(Correlation)显示了两个或几个随机变量之间线性关系的强度和方向。

通常使用相关系数来计量这些随机变量协同变化的程度,当随机变量间呈现同一方向的变化趋势时称为正相关,反之则称为负相关。

我们通过以下公式来计算两个随机变量之间的相关性:

ρ X Y = c o v ( X , Y ) σ X σ Y \rho_{XY} = \frac{cov(X, Y)}{\sigma_X\sigma_Y} ρXY=σXσYcov(X,Y)

这样定义的相关系数称作皮尔逊相关系数。一般我们可以通过numpy中的corrcoef,或者scipy.stats.pearsonr来计算。

下面的代码演示了正相关、负相关和不相关的例子:

# x0与x1正相关, 与x2负相关, 与x3分别为不同的随机变量
x0 = np.random.normal(size=100)
x1 = 10* x0 + 1
x2 = -10 * x0 + 1
x3 = np.random.normal(size=100)x = np.vstack((x0, x1, x2, x3))
rho = np.corrcoef(x)fig, ax = plt.subplots(nrows=1, ncols=3, figsize=(12, 3))for i in [0,1,2]:ax[i].scatter(x[0,],x[1+i,])desc = "Pearson: {:.2f}".format(rho[0,i+1])ax[i].title.set_text(desc)ax[i].set(xlabel='x',ylabel='y')plt.show()

绘图时,我们以 x 0 x_0 x0为x轴,以 x i x_i xi为y轴,如果 x 0 x_0 x0 x 1 x_1 x1完全正相关,那么将绘制出一条 4 5 。 45^。 45向上的直线。这其实就是QQ-Plot的原理。

从左图过渡到右图,只需要在 x 0 x_0 x0中不断掺入噪声即可。读者可以自己尝试一下。

皮尔逊相关系数要求只有变量之间是线性相关时,它才能发现这种关联性。很多时候我们必须放宽条件为:标的A上涨,则B也跟着涨。但不管A涨多少,B跟涨又是多少,都不改变它们联系的强度。此时,就要用Spearman相关性。


在这里插入图片描述

上面的例子演示的是皮尔逊相关系数的求法,这里使用的是np.corrcoef。它的结果是一个矩阵,所以上例中的变量rho,其取值实际上是:

50%

在这个矩阵中,对角线上的值是自相关系数,显然它们都应该为1。实际上我们要得到时间序列 s 1 s_1 s1 s 2 s_2 s2之间的相关系数,应该取 ρ [ 0 ] [ 1 ] \rho[0][1] ρ[0][1],对 s 1 s_1 s1 s 3 s_3 s3之间的相关系数,应该取 ρ [ 0 ] [ 2 ] \rho[0][2] ρ[0][2],依次类推,这些可以在代码第13行看到。

我们通过scipy.stats.spearmanr来计算Spearman相关。我们将通过真实的例子来进行演示。


发现强相关个股

假设我们已经拿到了概念板块的个股名单。现在,我们两两计算它们与龙头个股之间的相关性,如果相关系数在0.75以上,我们就认为是强相关,纳入备选池。

相关系数是一个无量纲的数,取值在[-1,1]之间。因此,可以把0.75看成具有75分位的含义

async def qqplot(x, y, n=60, end):xbars = await Stock.get_bars(x, n, FrameType.DAY, end=end )ybars = await Stock.get_bars(y, n, FrameType.DAY, end=end)xclose = xbars["close"]yclose = ybars["close"]pearson = scipy.stats.pearsonr(xclose, yclose)[0]spearman = scipy.stats.spearmanr(xclose, yclose).statisticif pearson < 0.75:returna, b = np.polyfit(xclose, yclose, 1)ax = plt.subplot(1,1,1)ax.scatter(xclose, yclose)ax.plot(xclose, a * xclose + b)namex = await Security.alias(x)namey = await Security.alias(y)ax.title.set_text(f'{namex} <=> {namey} pearson: {pearson:.2f} spearman: {spearman:.2f}')plt.show()

假设现在是1月2日的下午2时,已经能确认标的A不会开板。现在,我们就拿它与板块内的其它个股逐一计算相关性,排除掉弱相关的个股,因为,既然是弱相关,那么它们就不会跟涨,也不怎么跟跌(在我A,跟跌是必须的)。

当我们使用 pearson > 0.75的判断条件时,在该板块的22支个股中,筛选出5支个股。如果使用spearman > 0.75来判断,则只会选出4支,并且这4支都在pearson筛选出的范围内。这里为排版美观起见,只给出共同的4支:

在这里插入图片描述

很幸运,我们要找的标的正在其中。

你肯定想知道另外三支的结果如何。它们有连板吗?有大幅下跌吗?

没有下跌。别忘了,我们是通过相关系数选出来的标的,只要这种关联还存在,即使不跟随上涨,也不应该大幅下跌,不是吗?

实际上,有一支在我们讨论的区间里持平,一支上涨5%,另一支最高上涨16.9%。但如果你有更高的期望,在这个case中,一点点看盘经验可以帮助我们过滤掉另外两只,最终,我们会买入上涨16.9%和6连板的股票。

这个看盘经验是,不要买上方有均线,特别是中长均线的股。这种股在上攻过程中,将会遇到较大的抛压。如果一个很小的板块,资金已经有了一到两个进攻的标的了,是不会有多余的钱来关照这些个股的。

这个策略还有一个很好的卖出条件。如果龙头股一直保持上涨,而个股的关联系数掉出0.75,显然,我们可以考虑卖出。如果龙头股出现滞涨(开盘半小时内不能封住),则也是离场时机。

这一篇我们讨论的是同一板块个股的相关性。如果是处在上下游的两个板块,它们也可能存在相关性,但会有延时。这种情况称作cross correlation。它应该如何计算,又如何使用,也许后面我们会继续探索。

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

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

相关文章

Java 包和 API 深度解析:组织代码,避免命名冲突

Java 包和 API Java 中的包 用于将相关的类分组在一起。可以将其视为文件目录中的一个文件夹。我们使用包来避免名称冲突&#xff0c;并编写更易于维护的代码。 包分为两类: 内置包&#xff08;来自 Java API 的包&#xff09;用户定义的包&#xff08;创建自己的包&#xf…

维修ESA 数控折弯机CNC S 530 系统工控屏 S525 工业电脑显示屏

了解数控机床的组件可以帮助您充分利用该设备。 了解各种机器零件是有意义的&#xff0c;因为制造业的这些主力随处可见。 CNC 系统只会越来越受欢迎。 到2030年&#xff0c;美国数控机床市场规模将达到40亿美元。 我们首先回顾一下数控机床的定义及其优点。 然后我们将识别每…

根据全量知识系统内容规划-百度文库AI应用中心给出的答复

以下是就前面的文章&#xff08;全量知识系统的完整设计考虑和规划 之序 内容规划&#xff09;&#xff0c;和百度文库AI应用中心的答问。 全量知识系统的完整设计考虑和规划 之序 内容规划-CSDN博客 答问 Q1~6. 请对我以上设计规划&#xff0c;作出分析和完善&#xff0c;并…

M1电脑 Xcode15升级遇到的问题

遇到四个问题 一、模拟器下载经常报错。 二、Xcode15报错: SDK does not contain libarclite 三、报错coreAudioTypes not found 四、xcode模拟器运行一次下次必定死机 一、模拟器下载经常报错。 可以https://developer.apple.com/download/all/?qios 下载最新的模拟器&…

线程使用Runnable还是Callable

Callable接口 Runnable的缺陷 在创建线程的时候不管是继承Thread类(Thread本身也是实现的Runnable接口)还是实现Runnable接口&#xff0c;所实现的run()方法都没有返回值&#xff0c;使得需要将返回值写到map中&#xff0c;等到线程结束再去从map中取数据&#xff0c;特别的不方…

网站被插入虚假恶意链接怎么办?

在当前的电信和网络环境中&#xff0c;诈骗案件频发&#xff0c;许多受害者不幸上当&#xff0c;主要原因是他们点击了诈骗者发送的假链接。这些诈骗网站经常模仿真实网站的外观&#xff0c;使人难以分辨真伪。那么&#xff0c;我们应如何鉴别这些诈骗链接呢&#xff1f; 下面…

多个数据库驱动并存情况下无法找到数据库驱动问题解决

最近在打fat-jar包时&#xff0c;出现一个问题&#xff0c;运行fat-jar时报错&#xff1a; 2024-03-08 10:08:08.772 WARN [Thread-5] c.k.s.f.ExternalFuncClassLoader : 创建了未包含任何路径的自定义类加载器实例 2024-03-08 10:08:08.781 INFO [Thread-5] c.k.…

leetcode 2834.找出美丽数组的最小和

这道题作者一开始用的暴力解法&#xff0c;效果还不错&#xff0c;但是对于特别大的数据是过不去的。 先讲一下我暴力的思路&#xff1a;作者用了双指针的解法&#xff0c;我们可以先定义一个数组&#xff0c;就是把数组从1开始考虑&#xff0c;n个连续整数输入到里面去。 然…

工业制氧机的使用与维护管理指南

工业制氧机是工业生产中不可或缺的重要设备&#xff0c;其高效稳定的供氧功能对于保障生产过程的顺利进行至关重要。为了确保工业制氧机能够持续高效地提供氧气&#xff0c;正确的使用方法和维护措施是必不可少的。 在使用工业制氧机时&#xff0c;我们首先要确保设备放置在通风…

网络聊天室的UDP实现以及数据库

网络聊天室UDP实现 服务器端&#xff1a; 头文件&#xff1a; #include <myhead.h>//定义客户信息结构体 typedef struct magtye {char type; //消息类型char name[100]; //客户姓名char text[1024]; //客户发送聊天信息 }msg_t;//定义结构体存储…

mysql的语法总结2

命令&#xff1a; mysql -u 用户名 -p mysql登录 命令&#xff1a;create database u1 创建数据库u1 查询数据库 使用数据库u1 创建表department 查询表department ALTER TABLE 表名 操作类型&#xff1b; 操作类型可以有以下的操作&#xff1a; 添加列&#x…

ZCC3808 低静态电流、可编程延迟监控电路 替代TPS3808

1 特性 • 上电复位发生器具有可调节延迟时间&#xff1a;1.25ms 至10s • 超低静态电流&#xff1a;2.4μA&#xff08;典型值&#xff09; • 高阈值精度&#xff1a;0.5% 典型值 • 提供适用于标准电压轨的 0.9V 至 5V 固定阈值电压且可调节电压低至 0.4V • 手动复位 …

CubeMX使用教程(2)——点亮LED

在上一章&#xff0c;我们完成了CubeMX的环境配置&#xff0c;这一章我们通过CubeMX来完成点亮LED的工作。 通过LED原理图可知&#xff0c;如果我们要点亮LD1&#xff08;第一个灯&#xff09;&#xff0c;它对应开发板的PC8端口&#xff0c;因此我们应该在CubeMX中将PC8配置为…

【并查集】一种简单而强大高效的数据结构

目录 一、并查集原理 二、并查集实现 三、并查集应用 1. LeetCode并查集相关OJ题 2. 并查集的其他应用及总结 一、并查集原理 并查集&#xff08;Disjoint Set&#xff09;是一种用来管理元素分组和查找元素所属组别的数据结构。它主要支持两种操作&#xff1a;查找&…

公司内部的手机拍照管理办法建议

公司内部的手机拍照管理是一项重要的工作&#xff0c;因为它涉及到公司的信息安全、知识产权保护和隐私保护等方面。以下是一些建议的公司内部手机拍照管理办法&#xff1a; 明确拍照目的和范围&#xff1a;首先&#xff0c;公司应明确员工使用手机拍照的目的和范围。例如&…

JavaScript进阶 (1)

封装 构造函数存在问题 js可以通过构造函数进行封装&#xff0c;但存在浪费内存问题 每创建新的对象引用数据类型就开辟新的空间 原型 构造函数通过原型分配函数是所有对象所共享的 每一个构造函数都有一个prototype属性&#xff0c;指向另一个对象&#xff0c;也称为原型…

小型内衣裤洗衣机哪个牌子好?四款高热度内衣洗衣机力荐

相信很多用户从小就有个观念&#xff0c;内衣裤不能跟其他衣物一起混合洗&#xff0c;否则会感染细菌&#xff0c;所以不少人的内衣裤一直都是自己手洗的&#xff0c;清洗内衣裤不算麻烦&#xff0c;但日常都要换洗&#xff0c;对一个白天上班已经很累的人来说&#xff0c;真是…

COM(Component Object Model)通信技术

COM&#xff08;Component Object Model&#xff09;通信技术是一种用于组件之间通信的二进制接口标准&#xff0c;它允许在不同进程或计算机上的组件进行交互。以下是 COM 通信技术的一些基本原理&#xff1a; 1. 二进制接口&#xff08;Binary Interface&#xff09;&#x…

如何 借助 AI + bat,1分钟内建立100个自定义文件和文件夹?

01 你好&#xff0c;我是云桃桃。 最近&#xff0c;我在写web系列的知识&#xff0c;做的过程中遇到过不少问题。今天&#xff0c;就来说说&#xff0c;我解决的一个批量新建文件/文件夹的问题。 事情是这样的。首先&#xff0c;我的大纲基本在幕布里已经弄好了&#xff0c;…

简析内部审计数字化转型的方法和路径【小落送书(第6期)】

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…