量化交易可视化(7)-散点图

news2024/9/20 0:56:29

散点图的含义

散点图是一种用于观察两个变量之间关系的图表类型。它通过在坐标轴上绘制数据点来展示变量之间的关联程度。每个数据点代表一个观测值,其中横轴表示一个变量的值,纵轴表示另一个变量的值。

散点图的绘制方法

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)

参数解释:

x:表示x轴的数据,可以是一个列表或数组。
y:表示y轴的数据,可以是一个列表或数组。
s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。
c:点的颜色,默认蓝色 ‘b’,也可以是个 RGB 或 RGBA 二维行数组。
marker:点的样式,默认为 ‘o’,即圆形。其他常用的标记样式有’s’(正方形)、‘^’(三角形)等。。
cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。
norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。
vmin,vmax::亮度设置,在 norm 参数存在时会忽略。
alpha::透明度设置,0-1 之间,默认 None,即不透明。
linewidths::标记点的长度。
edgecolors::颜色或颜色序列,默认为 ‘face’,可选值有 ‘face’, ‘none’, None。
plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。
**kwargs::其他参数。
s:表示散点的大小,默认为20。可以设置为一个标量值或与x、y相同大小的数组,用于指定每个散点的大小。
c:表示散点的颜色,默认为’blue’。可以使用颜色的名称(如’red’、‘green’等)或十六进制颜色码(如’#FF0000’表示红色)。
marker:表示散点的标记样式,默认为’o’,alpha:表示散点的透明度,默认为1.0,完全不透明。取值范围为[0, 1],其中0表示完全透明,1表示完全不透明。

散点图在量化交易中的应用

散点图在量化交易中有多种应用,以下是其中一些常见的应用:

  1. 相关性分析:散点图可以用于分析不同证券或指数之间的相关性。通过绘制两个或多个证券的收益率或价格的散点图,可以直观地观察它们之间的关系。相关性分析对于构建投资组合、评估对冲策略等都很重要。
  2. 风险与收益关系:散点图可以用于展示不同投资组合的风险与收益之间的关系。通过绘制不同投资组合的预期收益率与风险(如标准差)的散点图,可以帮助投资者比较不同投资组合的风险收益特征,从而做出更明智的投资决策。
  3. 套利机会识别:散点图可以用于识别套利机会。通过绘制两个或多个相关证券之间的价格差或价差变化的散点图,可以发现价格偏离正常范围的情况,从而识别出套利机会。
  4. 交易信号生成:散点图可以用于生成交易信号。例如,通过绘制某种技术指标(如移动平均线)与证券价格之间的散点图,可以观察到价格与指标之间的交叉点,从而生成买入或卖出信号。
  5. 市场情绪分析:散点图可以用于分析市场情绪。通过绘制市场指数与投资者情绪指标之间的散点图,可以观察到市场情绪与指数之间的关系,帮助投资者判断市场的热度和情绪波动。
  6. 量化策略评估:散点图可以用于评估量化交易策略的表现。通过绘制策略的收益率与某个基准指数之间的散点图,可以观察到策略与基准之间的相对表现,评估策略的优劣和稳定性。

总而言之,散点图在量化交易中是一种直观、可视化的工具,可以帮助投资者分析数据、发现模式、识别机会,从而做出更好的交易决策。

散点图在量化交易中的应用案例

在下面的案例中,通过观察股价与交易额的分布情况,判断股票的大致类型。
数据准备:[2023年一季度A股日线行情.xlsx]

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)

# 从股票池中选择几只股票
# 筛选出股票代码是"000001.SZ"的股票
stock_1 = df[df['ts_code'] == '000001.SZ']
# 筛选出股票代码是"000002.SZ"的股票
stock_2 = df[df['ts_code'] == '000002.SZ']

# 汇总各个股票的收盘价与当日成交额,探索价格与成交额的分布关系
price_1 = stock_1['close']
amount_1 = stock_1['amount']
price_2 = stock_2['close']
amount_2 = stock_2['amount']

# 绘制散点图,试图通过成交价格与成交额的分布关系区分股票的类型
plt.scatter(price_1, amount_1, c='red', label = '平安银行')
plt.scatter(price_2, amount_2, c='blue', label = '万科A')
# 添加标题和坐标轴标签
plt.title('Scatter Plot: Price vs Amount')
plt.xlabel('Price')
plt.ylabel('Amount')
plt.legend()
# 显示图形
plt.show()

最终效果图如下:
在这里插入图片描述
可以看出,平安银行的股价要低于万科,大部分日成交额在200万以下;而万科的股价虽然较高,但是日成交额反而在150万以下,说明该股票的交易活跃度小于平安银行,因此,交易机会也就小于上一支股票。

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

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

相关文章

Java:企业级java后端开发,需要掌握哪些内容

一、什么是后端开发 后端开发是指开发基于服务器端的软件应用程序,也称为系统的后台或服务器端编程。 后端程序员负责处理网站或应用程序后台的逻辑和功能,包括数据库管理、服务器端脚本编写、API设计、数据安全性、网站性能优化等。 后端开发技术通常包…

position 属性有哪些值,分别表示什么意思?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ static(静态定位)⭐ relative(相对定位)⭐ absolute(绝对定位)⭐ fixed(固定定位)⭐ sticky(粘性定位)⭐ initial⭐ i…

机器视觉、图像处理和计算机视觉:概念和区别

机器视觉、图像处理和计算机视觉是相关但有区别的概念。 机器视觉主要应用于工业领域,涉及图像感知、图像处理、控制理论和软硬件的结合,旨在实现高效的运动控制或实时操作。 图像处理是指利用计算机对图像进行复原、校正、增强、统计分析、分类和识别…

【在一个升序数组中插入一个数仍升序输出】

在一个升序数组中插入一个数仍升序输出 题目举例: 有一个升序数组nums,给一个数字data,将data插入数组nums中仍旧保证nums升序,返回数组中有效元素个数。 比如:nums[100] {1, 2, 3, 5, 6, 7, 8, 9} size 8 data 4 …

【雕爷学编程】Arduino动手做(201)---DFRobot 行空板05

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

【雕爷学编程】Arduino动手做(199)---8x32位WS2812B全彩屏模块7

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

Shopify平台Fulfillment业务模块升级

上图是销售订单、发货单与配送之间的关系图,销售订单可以创建多个发货单,多个发货单(不同销售订单)可以合并在一个配送订单进行发货 接口请求错误记录: 1. The api_client does not have the required permission(s). 2. Required parameter missing or…

dirsearch_暴力扫描网页结构

python3 dirsearch 暴力扫描网页结构(包括网页中的目录和文件) 下载地址:https://gitee.com/xiaozhu2022/dirsearch/repository/archive/master.zip 下载解压后,在dirsearch.py文件窗口,打开终端(任务栏…

FPGA外部触发信号毛刺产生及滤波

1、背景 最近在某个项目中,遇到输入给FPGA管脚的外部触发信号因为有毛刺产生,导致FPGA接收到的外部触发信号数量多于实际值。比如:用某个信号源产生1000个外部触发信号(上升沿触发方式)给到FPGA输入IO,实际…

使用node-red实现一个物体地图巡航的案例

背景 随着物联网技术的快速发展,物体地图巡航已经成为了一种常见的应用场景。本文将介绍如何使用Node-RED实现一个物体地图巡航的案例。Node-RED是一个基于Node.js的可视化编程工具,它可以帮助用户快速构建流程和数据流。通过Node-RED,我们可以轻松地实现物体地图巡航的功能…

基于IP地址的目的地址转换

基本需求 由于来自INTERNET的对政府、企业的网络攻击日益频繁,因此需要对内网中向外网提供访问服务的关键设备进行有效保护。采用目的地址NAT可以有效地将内部网络地址对外隐藏。 图中:公网Internet用户需要通过防火墙访问WEB服务器,为了隐藏…

matplotlib 笔记:基本用法

1 axis 1.0 对比原始图像 import numpy as np import matplotlib.pyplot as plt xrange(5) yrange(10,20,2) plt.plot(x,y) 1.1 plt.axis(equal) x轴和y轴单位长度相同 import numpy as np import matplotlib.pyplot as plt plt.axis(equal) xrange(5) yrange(10,20,2) pl…

数据结构:各种结构函数参数辨析

(一)顺序表 1)结构 typedef int SLDateType;typedef struct SeqList {SLDateType* data;int size;int capacity; }SeqList;SeqList ps { 0 }; 2)函数参数 // 对数据的管理:增删查改 void SeqListInit(SeqList* ps); void Seq…

谷歌推出AI模型机器人RT2 将文本和图像输出为机器人动作

去年年底,ChatGPT火遍全球,全世界都见识了大语言模型的强大力量。人们对大模型不再陌生,开始使用基于大模型的应用绘画、作图、搜索资料、设计剧情等,而妙用不止于此。谷歌推出了Robotics Transformer 2(RT2),这是一个…

2023牛客暑期多校训练营6-C-idol!!

奇数的双阶乘等于小于等于本身的奇数的乘积,偶数的双阶乘等于小于等于本身的非零偶数的乘积。 思路:考虑末位0的个数,我们能想到的最小两数相乘有零的就是2*5,所以本题我们思路就是去找因子2的个数以及因子5的个数,2的…

VR全景乡村旅游浇灭乡愁,近距离体验自然之美

说起乡愁,可能每位漂泊的游子都有所感受,在外漂泊数十载,每到佳节倍思亲,家乡的一草一木都浮现在脑海中,满载着儿时的回忆。为了留住那抹儿时回忆,VR全景助力数字化乡村建设。 乡村振兴是国家的重大战略&am…

flutter开发实战-just_audio实现播放音频暂停音频设置音量等

flutter开发实战-just_audio实现播放音频暂停音频设置音量等 最近开发过程中遇到需要播放背景音等音频播放,这里使用just_audio来实现播放音频暂停音频设置音量等 一、引入just_audio 在pubspec.yaml引入just_audio just_audio: ^2.7.0在iOS上,video_p…

华为OD机试真题 Java 实现【欢快的周末】【2023 B卷 100分】,深度优先搜索dfs算法

目录 专栏导读一、题目描述二、输入描述三、输出描述四、深度优先搜索dfs五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明4、如果修改一下呢?5、来,TFBOYS,试一下? 华为OD机试 2023B卷题库疯狂收录中,…

Ubuntu类IOS主题设置

1.依次执行下面三条命令&#xff1a; sudo apt install gnome-shell-extensions sudo apt install gnome-tweak-tool sudo apt install chrome-gnome-shell2.下载主题&#xff0c;也是命令&#xff1a; git clone <https://github.com/qingchendelaike/GNOME-OSX-II-Theme…