量化交易可视化(9)-热力图

news2024/10/7 12:23:48

热力图的含义

热力图是一种用颜色编码数据密度的二维图表。它的含义是通过不同颜色的渐变来显示数据的相对密度或值的大小。
热力图通常用于可视化矩阵或二维表格数据,其中每个单元格的值被映射到一个颜色,从而形成一个色阶。较小的值通常用较浅的颜色表示,较大的值用较深的颜色表示,以此来显示数据的相对大小。

热力图的绘制方法

在Matplotlib中,可以使用imshow()函数来绘制热力图

参数说明:

X:要绘制的数据,可以是二维数组或类似数组的对象。

cmap:颜色映射,用于指定热力图的颜色主题,默认为"viridis"。

aspect:热力图的宽高比,默认为"auto"。

interpolation:插值方法,用于确定如何在像素之间进行插值,默认为"nearest"。

norm:用于对数据进行归一化的归一化器,默认为None。

vmin、vmax:用于设置颜色映射的最小值和最大值,用于控制颜色的范围。

alpha:透明度,范围在0到1之间,默认为1。

origin:确定热力图的原点位置,默认为"upper"。

extent:用于指定热力图的数据范围,以[xmin, xmax, ymin, ymax]的形式指定。

ax:要绘制热力图的坐标轴对象,默认为当前活动的坐标轴。

热力图在量化交易中的应用

热力图在量化交易中的应用包括:

  1. 相关性分析:热力图可以用于分析不同证券之间的相关性。通过将不同证券的收益率或价格变动数据构成矩阵,可以使用热力图来可视化不同证券之间的相关性。这有助于量化交易者识别相关证券之间的关联关系,以便进行投资组合优化和风险管理。
  2. 聚类分析:热力图可以帮助量化交易者对证券进行聚类分析。通过将不同证券的特征(如基本面数据、技术指标等)构成矩阵,可以使用热力图来展示不同证券之间的相似性。这有助于量化交易者发现具有相似特征的证券,以便构建投资组合或制定交易策略。
  3. 时序分析:热力图可以用于分析不同时间段内的证券表现。通过将不同时间段的收益率或价格变动数据构成矩阵,可以使用热力图来展示不同时间段内证券的相对强弱。这有助于量化交易者发现市场的热点板块或证券,以便进行时机把握和交易决策。
  4. 交易信号生成:热力图可以用于生成交易信号。通过计算不同证券之间的相关性或相对强弱,可以使用热力图来识别交易机会。例如,当两个高度相关的证券之间的价格差异达到一定的阈值时,可以生成交易信号执行配对交易策略。

总的来说,热力图在量化交易中可以帮助量化交易者发现市场的相关性、相似性和相对强弱,从而辅助投资决策和交易策略的制定。它提供了一种直观且可视化的方式来分析和理解市场数据。

热力图在量化交易中的应用案例

在下面这个案例中,我们将展示银行和IT设备制造这两个版块的股票在2023年1季度中每周的交易量情况。如果交易量越大,则热力图越鲜明,说明版块交易活动频繁,投资者的关注度上升,导致交易机会出现的概率增加;反之亦然。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
# 设置为默认字体
plt.rcParams['font.family'] = 'SimHei'
# 显示负数
plt.rcParams['axes.unicode_minus'] = False

# 导入数据
df = pd.read_excel("2023年一季度A股日线行情.xlsx")

# 将日期列转化为日期格式
df["trade_date"] = df["trade_date"].astype("str").apply(lambda x:x[:4]+"-"+x[4:6]+"-"+x[6:])
# 将日期列转换为日期类型,并设置为索引列
df['trade_date'] = pd.to_datetime(df['trade_date'])
df.set_index('trade_date', inplace=True)

# 筛选2023年1-3月的行情数据
start_date = '2023-01-03'
end_date = '2023-03-31'
df = df.loc[start_date:end_date]

# 创建股票池列表-深圳交易所银行类版块股票池,共9支
stock_list1 = ['000001.SZ','001227.SZ','002142.SZ','002807.SZ','002839.SZ',
               '002936.SZ','002948.SZ','002958.SZ','002966.SZ']
# 创建股票池列表-深圳交易所IT设备制造类版块股票池,共9支
stock_list2 = ['000066.SZ','000977.SZ','002180.SZ','002197.SZ','002236.SZ',
               '002351.SZ','002415.SZ','002528.SZ','002866.SZ']

# 从DataFrame中将股票池中的交易数据筛选出来
stock_1 = df[df['ts_code'].isin(stock_list1)]
stock_2 = df[df['ts_code'].isin(stock_list2)]

# 相比交易量,交易额更能反映出某个版块当前的交易热度
# 按周统计银行类版块的每只股票每周的交易额
stock1_amout_weekly = []
for i in range(len(stock_list1)):
    df_temp = stock_1[stock_1['ts_code']==stock_list1[i]]
    temp_a = df_temp.resample('W').sum()
    temp_b = temp_a['amount'].to_list()
    stock1_amout_weekly.append(temp_b)
# 同理
stock2_amout_weekly = []
for i in range(len(stock_list2)):
    df_temp = stock_2[stock_2['ts_code']==stock_list2[i]]
    temp_a = df_temp.resample('W').sum()
    temp_b = temp_a['amount'].to_list()
    stock2_amout_weekly.append(temp_b)

# 现在得到两个9*13的列表,行代表某银行或某车企,列代表每周的交易额总量

# 创建一个1x2的子图布局
fig, ax = plt.subplots(1, 2, figsize=(20, 20))

# 绘制热力图
im1 = ax[0].imshow(stock1_amout_weekly, cmap='hot')
# 设置图表标题和标签
ax[0].set_title('Stock Trading Amount Heatmap')
# 横坐标设置为周数,纵坐标为各银行
ax[0].set_xlabel("Weeks")
ax[0].set_ylabel("Banks")
# 添加颜色条
#cbar = ax[0].figure.colorbar(im1, ax=ax)
ax[0].figure.colorbar(im1, ax=ax[0],shrink =0.28)
# 同理
im2 = ax[1].imshow(stock2_amout_weekly, cmap='hot')
ax[1].set_xlabel("Weeks")
ax[1].set_ylabel("Banks")
ax[1].figure.colorbar(im2, ax=ax[1], shrink =0.28)
# 显示图表
plt.show()

最终效果图如下:
在这里插入图片描述
如图所示,左图是银行类股票的交易热力图,右图是IT设备制造类股票的交易热力图,相比而言,银行股中除了两只股票交易比较活跃之外,其余的股票交易热度不高;相比IT设备制造类股票,在1月份整体沉默之后,在2-3月,交易量明显上升,说明市场情绪逐渐高涨,此时此类个股容易出现涨停机会。

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

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

相关文章

许多智能算法并不智能(续)

许多智能算法被认为并不智能,主要是因为它们在某些方面仍然存在一些限制。以下是一些常见的原因: 缺乏常识和理解能力:当前的智能算法主要依赖于大量的数据和模式识别来做出决策,但它们通常缺乏对世界的常识和深层理解。这意味着它…

视觉大模型的全面解析

前言 本文主要围绕Foundational Models,即基础模型(通过自监督或半监督方式在大规模数据上训练的模型,可以适应其它多个下游任务。)这个概念,向大家全面阐述一个崭新的视觉系统。例如,通过 SAM,…

nbcio-boot因升级mybatis-plus到3.5.3.1和JSQLParser 到4.6引起的online表单开发的数据库导入出错解决

更多功能看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5) : http://122.227.135.243:9888 nbcio-boot因升级…

【雕爷学编程】Arduino动手做(01)---干簧管传感器模块2

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

接龙序列(14届)

对于一个长度为 K 的整数数列:A1,A2,...,AK,我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1的末位数字 (2≤i≤K2≤i≤K)。 例如 12,23,35,56,61,11 是接龙数列;12,23,34,56 不是接龙数列,因为 56 的首位数字不等于 34…

matplotlib 笔记:plot 折线图

1 基本用法 import numpy as np import matplotlib.pyplot as plt x np.linspace(0,10,50) y np.tan(x)**2 np.cos(x)plt.plot(x, y) plt.show() 2 linestyle 折线图类型 import numpy as np import matplotlib.pyplot as pltx np.linspace(0,10,50) y np.tan(x)**2 np…

node配置Web 服务器

1、什么是 Web 服务器 Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务。 它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。 大多数 web 服务器都支持服…

如何优化测试用例?

在我们日常测试工作中,编写测试用例往往花费较多时间,而且设计的测试用例冗杂和不完整,从而造成用例执行检查不完整,效率低下,不能及时发现项目缺陷。 因此提高测试用例编写和执行效率迫在眉睫,一般来说&am…

Dubbo3.0 Demo

将SpringBoot工程集成Dubbo 1.创建父工程 2.创建子工程consumer&#xff0c;provider 3.初始化工程 4.引入依赖 在provider和consumer中引入dubbo依赖 <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</a…

文心一言 VS 讯飞星火 VS chatgpt (73)-- 算法导论7.1 4题

四、如何修改 QUICKSORT&#xff0c;使得它能够以非递增序进行排序? 文心一言&#xff1a; 快速排序&#xff08;Quicksort&#xff09;是一种常用的排序算法&#xff0c;基于分治策略进行设计。默认情况下&#xff0c;快速排序会以递增序进行排序。若想修改快速排序以实现非…

基于星火和Gradio的聊天机器人

星火大模型官网&#xff1a;https://xinghuo.xfyun.cn/ 1 创建虚拟环境&#xff08;windows&#xff09; conda create -n Gradio python3.8 pip install gradio 中间遇到os报错&#xff0c;解决方案&#xff1a; pip install aiofiles23.2.1 2 代码 SparkDesk.py&#xff1a…

Android Studio跳过Haxm打开模拟器

由于公司权限限制无法安装Haxm&#xff0c;这个时候我们可以试试Arm相关的镜像去跳过Haxm运行模拟器。解决方案&#xff1a;安装API27以下的Arm Image. #ifdef __x86_64__if (sarch "arm64" && apiLevel >28) {APANIC("Avds CPU Architecture %s i…

linux_常用命令

一、日常使用命令/常用快捷键命令 开关机命令 1、shutdown –h now&#xff1a;立刻进行关机 2、shutdown –r now&#xff1a;现在重新启动计算机 3、reboot&#xff1a;现在重新启动计算机 4、su -&#xff1a;切换用户&#xff1b;passwd&#xff1a;修改用户密码 5、logou…

使用IIS服务器部署Flask python Web项目

参考文章 ""D:\Program Files (x86)\Python310\python310.exe"|"D:\Program Files (x86)\Python310\lib\site-packages\wfastcgi.py"" can now be used as a FastCGI script processor参考文章 请求路径填写*&#xff0c;模块选择FastCgiModule&…

web-xss-dvwa

目录 xss&#xff08;reflected&#xff09; low medium high xss(store) low medium high xss(dom) low medium high xss&#xff08;reflected&#xff09; low 没有什么过滤&#xff0c;直接用最普通的标签就可以了 http://127.0.0.1/DVWA-master/vulnerabili…

【神经网络手写数字识别-最全源码(pytorch)】

Torch安装的方法 学习方法 1.边用边学&#xff0c;torch只是一个工具&#xff0c;真正用&#xff0c;查的过程才是学习的过程2.直接就上案例就行&#xff0c;先来跑&#xff0c;遇到什么来解决什么 Mnist分类任务&#xff1a; 网络基本构建与训练方法&#xff0c;常用函数解析…

【C语言】数据在内存中的存储详解

文章目录 一、什么是数据类型二、类型的基本归类三、 整型在内存中的存储1.原码、反码、补码2.大小端(1)什么是大小端(2)为什么会有大小端 四、浮点型在内存中的存储1. 浮点数存储规则 五、练习1.2.3.4.5.6.7. 一、什么是数据类型 我们可以把数据类型想象为一个矩形盒子&#x…

DCMM数据管理成熟度之数据战略-数据战略规划

需要咨询加 &#xff1a;shuirunjj 标准原文 1概述 数据战略规划是在所有利益相关者之间达成共识的结果。从宏观及微观两个层面确定开展数据管理及应用的动因,并综合反映数据提供方和消费方的需求。 2 过程描述 过程描述如下: a) 识别利益相关者,明确利益相关者的需求; …

人机融合智能可化简为遥控+预先规划+重新规划过程

人机融合智能可以被简单描述为人类的遥控、机器的预先规划以及人-机器共同的动态重新规划的过程。 首先&#xff0c;人类的遥控是指人类通过指令、控制和操作来操纵机器的行为和功能。人类可以利用各种界面和输入设备&#xff0c;如键盘、鼠标、触摸屏等&#xff0c;将自己的意…

Python做一个绘图系统3:从文本文件导入数据并绘图

文章目录 导入数据文件对话框修改绘图逻辑源代码 Python绘图系统系列&#xff1a;将matplotlib嵌入到tkinter 简单的绘图系统 导入数据 单纯从作图的角度来说&#xff0c;更多情况是已经有了一组数据&#xff0c;然后需要将其绘制。这组数据可能是txt格式的&#xff0c;也可能…