Numpy应用-股价分析实战

股价统计分析

数据样本
image.png
股价常用指标
极差
越高说明波动越明显
股价近期最高价的最大值和最小值的差价
成交量加权平均价格
英文名VWAP(Volume-Weighted Average Price,成交量加权平均价格)是一个非常重要的经济学量,代表着金融资产的“平均”价格
收益率
简单收益率,相邻两个价格之间的变化率
对数收益率,指所有价格取对数后两两之间的差值
波动率
越高说明波动越明显
波动率是对价格变动的一种衡量
年波动率
对数波动率的标准差除以其均值,再除以交易日倒数的平方根,通常交易日取250天
月波动率
对数收益率的标准差除以其均值,再乘以交易月的平方根通常交易月取12月

读取指定列

""" 读取指定列numpy.loadtxt需要传入4个关键字参数:1.fname是文件名,数据类型为字符串str;2.delimiter是分隔符,数据类型为字符串str;3.usecols是读取的列数,数据类型为元组tuple, 其中元素个数有多少个,则选出多少列;4.unpack是是否解包,数据类型为布尔bool。#"""def testReadFile(self):file_name = r"D:\lhjytest\demo.csv"end_price,volumn = np.loadtxt(fname=file_name,delimiter=',',usecols=(2,6),unpack=True)print(end_price)print(volumn)

image.png
#计算最大值与最小值

def testMaxAndMin(self):file_name = r"D:\lhjytest\demo.csv"high_price,low_price = np.loadtxt(fname=file_name,delimiter=',',usecols=(4,5),unpack=True)print("max_price = {}".format(high_price.max()))print("min_price = {}".format(low_price.min()))

image.png
计算极差

# 计算股价近期最高价的最大值和最小值的差值 和 计算股价近期最低价的最大值和最小值的差值
def testPtp(self):file_name = r"D:\lhjytest\demo.csv"high_price, low_price = np.loadtxt(fname=file_name,delimiter=',',usecols=(4, 5),unpack=True)print("max - min of high price : {}".format(np.ptp(high_price)))print("max - min of low price : {}".format(np.ptp(low_price)))

image.png
计算成交量加权平均价格

    # 成交量加权平均价格,英文名VWAP(Volume-Weighted Average Price,成交量加权平均价格)是一个非常重要的经济学量,代表着金融资产的“平均”价格def testAVG(self):file_name = r"D:\lhjytest\demo.csv"end_price, volumn = np.loadtxt(fname=file_name,delimiter=',',usecols=(2, 6),unpack=True)print("avg_price = {}".format(np.average(end_price)))print("VWAP = {}".format(np.average(end_price,weights=volumn)))

image.png
计算中位数

    # 收盘价的中位数def testMedian(self):file_name = r"D:\lhjytest\demo.csv"end_price, volumn = np.loadtxt(fname=file_name,delimiter=',',usecols=(2, 6),unpack=True)print("median = {}".format(np.median(end_price)))

image.png
计算方差

    # 收盘价的方差def testVar(self):file_name = r"D:\lhjytest\demo.csv"end_price, volumn = np.loadtxt(fname=file_name,delimiter=',',usecols=(2, 6),unpack=True)print("var = {}".format(np.var(end_price)))print("var = {}".format(end_price.var()))

image.png
计算股票收益率、年波动率及月波动率

# 波动率是对价格变动的一种度量,历史波动率可以根据历史价格数据计算得出。计算历史波动率时,需要用到对数收益率# 年波动率等于对数收益率的标准差除以其均值,再乘以交易日的平方根,通常交易日取250天# 月波动率等于对数收益率的标准差除以其均值,再乘以交易月的平方根。通常交易月取12月def testVolatility (self):file_name = r"D:\lhjytest\demo.csv"end_price, volumn = np.loadtxt(fname=file_name,delimiter=',',usecols=(2, 6),unpack=True)log_return = np.diff(np.log(end_price))annual_volatility = log_return.std() / log_return.mean() * np.sqrt(250)monthly_volatility = log_return.std() / log_return.mean() * np.sqrt(12)print("log_return = {}".format(log_return))print("annual_volatility = {}".format(annual_volatility))print("monthly_volatility = {}".format(monthly_volatility))

image.png

股价均线

卷积
卷积可用于描述过去作用对当前的影响。卷积是时空响应的叠加,可用作计算“滑动平均”

简单移动均线

一般用于分析时间序列上的股价趋势计算股价与等权重的指示函数的卷积
生成权重-卷积运算-均线可视化

指数移动均线

历史数据的权重以指数速度衰减计算股价与权重衰减的指示函数的卷积
权重初始化-权重衰减-卷积运算-均线可视化

class TestNumpyMA(TestCase):
# 简单移动均线def testSMA(self):file_name = r"D:\lhjytest\demo.csv"end_price = np.loadtxt(fname=file_name,delimiter=',',usecols=(2),unpack=True)print(end_price)# 生成权重N = 5weights = np.ones(N) / Nprint(weights)# 卷积运算sma = np.convolve(weights,end_price)[N-1:-N+1]print(sma)# 均线可视化plt.plot(sma,linewidth=5)plt.show()def testEXP(self):x = np.arange(5)y = np.arange(10)print("x", x)  # exp 函数可以计算出每个数组元素的指数print("y", y)# 指数衰减print("""Exp x : {}""".format(np.exp(x)))print("""Exp y : {}""".format(np.exp(y)))print("""Linespace : {}""".format(np.linspace(-1,0,5)))def testEMA(self):file_name = r"D:\lhjytest\demo.csv"end_price = np.loadtxt(fname=file_name,delimiter=',',usecols=(2),unpack=True)print(end_price)N = 5# 权重衰减weighs = np.exp(np.linspace(-1,0,N))# 归一化weighs /= weighs.sum()print(weighs)# 卷积运算ema = np.convolve(weighs,end_price)[N-1:-N+1]print(ema)# 均线可视化t = np.arange(N-1,len(end_price))plt.plot(t,end_price[N-1:],lw=1.0)plt.plot(t,ema,lw=2.0)plt.show()

image.png
image.png
image.png

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

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

相关文章

苹果Find My市场需求火爆,伦茨科技ST17H6x芯片助力客户量产

苹果发布AirTag发布以来,大家都更加注重物品的防丢,苹果的 Find My 就可以查找 iPhone、Mac、AirPods、Apple Watch,如今的Find My已经不单单可以查找苹果的设备,随着第三方设备的加入,将丰富Find My Network的版图。产…

Google Chrome RCE漏洞 CVE-2020-6507 和 CVE-2024-0517 流程分析

本文深入研究了两个在 Google Chrome 的 V8 JavaScript 引擎中发现的漏洞,分别是 CVE-2020-6507 和 CVE-2024-0517。这两个漏洞都涉及 V8 引擎的堆损坏问题,允许远程代码执行。通过EXP HTML部分的内存操作、垃圾回收等流程方式实施利用攻击。 CVE-2020-…

操作符详解(上)

目录 操作符的分类 二进制和进制转换 2进制转10进制 10进制转2进制数字 2进制转8进制 2进制转16进制 原码、反码、补码 移位操作符 左移操作符 右移操作符 位操作符:&、|、^、~ 单目操作符 逗号表达式 操作符的分类 • 算术操作符: …

【C++干货铺】 RAII实现智能指针

个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 为什么需要智能指针? 内存泄漏 什么是内存泄漏,内存泄露的危害 内存泄漏的分类 堆内存泄漏(Heap leak) 系统资…

CMG GPP 0.05°全球区域2000~2019年月数据分享

各位同学们好,今天分享的是CMG GPP 0.05全球区域2000~2019年月数据。您可以私信或评论。 一、数据简介 准确估算陆地植被的初级生产总值(GPP)对于了解全球碳循环和预测未来气候变化至关重要。目前有多种基于不同方法的 GPP 产品&#xff0c…

ORM-08-EclipseLink 入门介绍

拓展阅读 The jdbc pool for java.(java 手写 jdbc 数据库连接池实现) The simple mybatis.(手写简易版 mybatis) 1. EclipseLink概述 本章介绍了EclipseLink及其关键特性:包括在EclipseLink中的组件、元数据、应用程序架构、映射和API。 本…

Leetcode—29. 两数相除【中等】

2023每日刷题(九十四) Leetcode—29. 两数相除 叛逆期实现代码 class Solution { public:int divide(int dividend, int divisor) {if(dividend INT_MIN && divisor -1) {return INT_MAX;} return dividend / divisor;} };运行结果 倍增算法…

第14章_数据结构与集合源码(一维数组,链表,栈,队列,树与二叉树,List接口分析,Map接口分析,Set接口分析,HashMap的相关问题)

文章目录 第14章_数据结构与集合源码本章专题与脉络1. 数据结构剖析1.1 研究对象一:数据间逻辑关系1.2 研究对象二:数据的存储结构(或物理结构)1.3 研究对象三:运算结构1.4 小结 2. 一维数组2.1 数组的特点2.2 自定义数…

何恺明 ResNet 引用量正式破20万!!!

注: 本文转自微信公众号 BravoAI (专注AI资讯和技术分享), 原文网址: 何恺明 ResNet 引用量正式破20万!!!, 扫码关注公众号 谷歌学术显示, 截止到 2024年1月26日, 何凯明 ResNet 一文引用量正式突破 20W!!! 更为惊人的是, 从论文发表到今天, 不过7年!!!‍‍‍‍‍‍‍‍‍‍‍‍…

springboot347基于web的铁路订票管理系统

获取源码——》公主号:计算机专业毕设大全

预处理详解1❤

一:预定义符号 C语言中设置了一些预定义符号,它们可以直接使用,同时预定义符号是在预处理期间处理的。 以下就是相关的预处理符号的作用。 二:#define定义常量 首先基本的语法是 #define name stuff 相对比较简单&#xff…

Ultraleap 3Di配置以及在 Unity 中使用 Ultraleap 3Di手部跟踪

0 开发需求 1、硬件:Ultraleap 手部追踪相机(Ultraleap 3Di) 2、软件:在计算机上安装Ultraleap Gemini (V5.2) 手部跟踪软件。 3、版本:Unity 2021 LTS 或更高版本 4、Unity XR插件管理:可从软件包管理器窗…

Bagging方法的基本思想

Bagging方法的基本思想实现 在Bagging集成当中,我们并行建立多个弱评估器(通常是决策树,也可以是其他非线性算法),并综合多个弱评估器的结果进行输出。当集成算法目标是回归任务时,集成算法的输出结果是弱…

乖乖,咱不用BeanUtil.copy了,咱试试这款神级工具(超详细)

引言 在现代Java应用程序开发中,处理对象之间的映射是一个常见而且必不可少的任务。随着项目规模的增长,手动编写繁琐的映射代码不仅耗时且容易出错,因此开发者们一直在寻找更高效的解决方案。比如基于Dozer封装的或者Spring自带的BeanUtil.…

AI Infra论文阅读之通过打表得到训练大模型的最佳并行配置

目录 0x0. 前言0x1. 摘要0x2. 介绍0x3. 背景0x4. 实验设置0x5. 高效的LLM训练分析0x5.1 Fused Kernels 和 Flash Attention0x5.1.1 Attention0x5.1.2 RMSNorm Kernel 0x5.2 Activation Checkpointing0x5.3 Micro-Batch 大小0x5.4 Tensor Parallelism和Pipline Parallelism0x5.5…

幻兽帕鲁服务器一键搭建脚本

前言 幻兽帕鲁刚上线就百万在线人数。官方服务器的又经常不稳定。所以这里给大家带来最快捷的搭建教程。废话不多说直接开始。 服务器配置要求 这里推荐腾讯云的轻量云服务器 测试环境: CPU : 2核 内存:4GB 系统:Debian 12 64…

leetcode:二叉树的中序遍历(外加先序,后序遍历)

题外:另外三种遍历可以看这: 层序遍历: Leetcode:二分搜索树层次遍历-CSDN博客 先序遍历: 二叉树的先序,中序,后序遍历-CSDN博客 后序遍历: 二叉树的先序,中序,后序…

鸿蒙开发(Harmonyos兼容与Harmonyos适配)

布局的实现 Layout_ability_main.xml布局&#xff1a; <?xml version"1.0" encoding"utf-8"?> <DirectionalLayoutxmlns:ohos"http://schemas.huawei.com/res/ohos"ohos:height"match_parent"ohos:width"match_pare…

测试人员为什么要编写测试用例?好的测试用例应该具备那些特点?

设计测试用例可以说是测试人员的一项最基本技能 。很多时候当我们接到设计测试用例的任务时 &#xff0c;往往都是想的该如何更快的完成这项任务 &#xff1f;而很少去想为什么要完成这项任务? 对于测试用例也是如此&#xff0c;为什么要设计测试用例呢(目的)&#xff1f;其实…

Jellyfin影音服务本地部署并结合内网穿透实现公网访问本地资源

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…