python股票历史最低点_Python统计某一只股票每天的开盘,收盘,最高,最低价格!...

模块:Numpy

码字不易,转载请注明出处!十分感谢!

准备工作:

抓取某一只股票的信息,每30min为一组数据,可以参考上一篇:

Note: 只为演示如何统计,更精准的可以抓取每5min为一组数据

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

目标:输出每天的开盘,收盘,最高,最低价格,以其中的某一周(5 days, 40组数据)为例

1, 从csv中导入数据,需要有 open, high, close 和low

#import numpy as np

open = np.loadtxt('30min.csv', dtype = float, skiprows = 1, usecols = 2, delimiter=',', encoding = 'utf-8')

high = np.loadtxt('30min.csv', dtype = float, skiprows = 1, usecols = 3, delimiter=',', encoding = 'utf-8')

close = np.loadtxt('30min.csv', dtype = float, skiprows = 1, usecols = 4, delimiter=',', encoding = 'utf-8')

low = np.loadtxt('30min.csv', dtype = float, skiprows = 1, usecols = 5, delimiter=',', encoding = 'utf-8')

打印测试可以得到如下数据,

2,从csv中导入date数据,需要将date转化输出成工作日的格式

from datetime import datetime

def datestr(s):

return datetime.strptime(s, '%Y/%m/%d').isoweekday()

#print(datestr('2020/12/7'))

dates = np.loadtxt('30min.csv',dtype = str, skiprows = 1, usecols = 0, converters = {0: datestr}, delimiter = ',', encoding = 'utf-8')

打印测试可以得到如下数据,

3, 找到某一周的40组数据,确认第一天的开盘时间和最后一天的收盘时间

close = close[0:40]

dates = dates[0:40]

first_monday = np.ravel(np.where(dates == 1))[-1] #根据csv中的排序找到某一周的第一天

last_friday = np.ravel(np.where(dates == 5))[0] #根据csv中的排序找到某一周的最后一天

打印测试得到如下某一周的40个时间

4, 创建一个数组,用于存储一周内每一天的索引值

day_indices = np.arange(last_friday, first_monday +1)[::-1]

weeks_indices = np.split(day_indices, 5)

打印测试得到如下输出,

5,编写summarize函数,返回一个元组包含这一周每天对应的open, close, high, low

def summarize(a, o, h, c, l):

monday_open = o[a[0]]  #monday open是最后一个价格

day_high = np.max( np.take(h, a) )  #每天的最高价格

day_low = np.min( np.take(l, a) )#每天的最低价格

friday_close = c[a[-1]]  #friday close是第一个价格

return('lux', monday_open, day_high, friday_close, day_low)

6,生成每周的数据

weeksummary = np.apply_along_axis(summarize, 1, weeks_indices, open, high, close, low)

print(' ****** open,  high,  close,  low \n', weeksummary)

对比一下表格中的数据信息,结果是匹配的

7, 如果有需要可以保存

np.savetxt('cw36_lux.csv', weeksummary, delimiter = ',', fmt = '%s') #同30min.csv在同一文件夹下

打开csv之后保存的数据如下

好了,完整的代码如下:

import numpy as np

from datetime import datetime

def datestr(s):

return datetime.strptime(s, '%Y/%m/%d').isoweekday()

dates, open, high, close, low = np.loadtxt('30min.csv', skiprows = 1, usecols = (0, 2, 3, 4, 5), converters = {0:datestr}, delimiter = ',', unpack = True, encoding = 'utf-8')

close = close[0:40]

dates = dates[0:40]

#print(dates)

first_monday = np.ravel(np.where(dates == 1))[-1]

#print(first_monday)

last_friday = np.ravel(np.where(dates == 5))[0]

#print(last_friday)

day_indices = np.arange(last_friday, first_monday +1)[::-1]

#print(day_indices)

weeks_indices = np.split(day_indices, 5)

#print(weeks_indices)

def summarize(a, o, h, c, l):

monday_open = o[a[0]]

day_high = np.max( np.take(h, a) )

day_low = np.min( np.take(l, a) )

friday_close = c[a[-1]]

return('lux', monday_open, day_high, friday_close, day_low)

weeksummary = np.apply_along_axis(summarize, 1, weeks_indices, open, high, close, low)

#print(' ****** open,  high,  close,  low \n', weeksummary)

np.savetxt('cw36_lux.csv', weeksummary, delimiter = ',', fmt = '%s')

欢迎大家一起讨论学习。

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

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

相关文章

操作系统是计算机的什么管理者,操作系统是计算机资源的管理者

由计算机提供的、因应用程序的存在和运行所消耗或占用的物质条件,叫做计算机的资 源,例如处理器的时间、内存空间、外部设各等。为了有效地利用计算机的各种资源,操作系统 必须为用户承担起对计算机资源的管理任务。例如,为了使应…

python文件流读取二进制_Python使用web.py从POST请求中提取二进制文件

I am developing an API that allows outside clients to send a binary file which will be processed. my web.data() is a string and the function I am calling requires a binary. How do I get it into the correct format? Maybe I have the incorrect Headers? how …

LeetCode 1828. 统计一个圆中点的数目

文章目录1. 题目2. 解题1. 题目 给你一个数组 points ,其中 points[i] [xi, yi] ,表示第 i 个点在二维平面上的坐标。多个点可能会有 相同 的坐标。 同时给你一个数组 queries ,其中 queries[j] [xj, yj, rj] ,表示一个圆心在…

elasticsearch threadpool

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-threadpool.html转载于:https://www.cnblogs.com/SamuelSun/p/4287218.html

python argument list too long_[已解决]Argument list too long如何处理?

Argument list too long 本质是需要处理的长度超过系统的长度,因此无法执行相关命令。经过搜索发现了两种方法,思想都是将参数切分成小的段落进行执行。法一:通过xargs传递参数 (数据量大了还是不太奏效)find . -name "*.log" | xa…

计算机专业内存容量8g,内存容量8g和16g区别

语音内容:大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。以计算机为例,内存容量8g和16g区别如下:1、16GB和8GB内存在同品牌、同芯片规格等情况下,仅存在容量大小区别,即1…

LeetCode 1829. 每个查询的最大异或值(前缀异或 + 位运算)

文章目录1. 题目2. 解题1. 题目 给你一个 有序 数组 nums &#xff0c;它由 n 个非负整数组成&#xff0c;同时给你一个整数 maximumBit 。你需要执行以下查询 n 次&#xff1a; 找到一个非负整数 k < 2^maximumBit &#xff0c;使得 nums[0] XOR nums[1] XOR ... XOR num…

python的运行环境_python-运行环境配置-1

Linux下安装Python3.6和第三方库 如果本机安装了python2&#xff0c;尽量不要管他&#xff0c;使用python3运行python脚本就好&#xff0c;因为可能有程序依赖目前的python2环境&#xff0c; 比如yum&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 不要动现有的…

[objective-c] 08 - 内存管理

OC语言中的内存管理机制为ARC(Automatic Reference Counting,自动引用计数)。于2011年中旬推出&#xff0c;替换陈旧且低效的手动内存管理&#xff0c;关于手动内存管理的内容&#xff0c;本章教程不再讲授。本章主要从以下几个方面对内存管理进行展开讲解。 内存管理原则对象引…

计算机主板最常见的问题,计算机主板功能 电脑实用技巧解决常见问题

电脑实用技巧解决常见问题1.解决问题 插电即开机问题现象&#xff1a;有些朋友有关机后断开电源板电源的习惯&#xff0c;可是却常常被一个问题困扰&#xff0c;就是电源板一通电&#xff0c;计算机就自动开机了&#xff0c;Power键形同虚设。解决问题&#xff1a;有些主板在BI…

zeal刷新不出来_饥荒:游戏中的这些事物都是无中生有,几乎可以无限制刷新!...

在饥荒这款经典的生存类游戏中&#xff0c;其事物的“刷新”和许多其他的生存游戏不太一样&#xff0c;有些生存游戏的事物刷新是定时定量的&#xff0c;而饥荒则不完全&#xff0c;就拿牛群来形容&#xff0c;他们必须要有多个成年的牛进行繁殖才会出现新的牛&#xff0c;而像…

数字逻辑基础与verilog设计_数字电路学习笔记(五):逻辑设计基础

马上就要正式进入电路设计了&#xff0c;再来看最后一个知识点&#xff1a;逻辑设计吧。之前我们花了两章&#xff0c;探讨了逻辑运算是什么&#xff0c;怎么算&#xff1b;但还有最后一个大问题&#xff0c;巧妇难为无米之炊&#xff0c;我们得先有一个逻辑式&#xff0c;才能…

完整的开发一个ContentProvider步骤

1、定义自己的ContentProvider类&#xff0c;该类需要继承Android提供的ContentProvider基类。2、向Android系统注册这个"网站"&#xff0c;也就是在AndroidManifest.xml文件中注册这个ContentProvider&#xff0c;就像注册Activity一样。注册ContentProvider时需要为…

河北省高校计算机大赛,河北省教育厅关于举办2016年华北五省(市、自治区)及港澳台大学生计算机应用大赛河北赛区竞赛的通知...

有关高等学校&#xff1a;为深入贯彻落实《国家中长期教育改革和发展规划纲要(2010-2020年)》和教育部《关于全面提高高等教育质量的若干意见》(教高﹝2012﹞4号)精神&#xff0c;推动区域高等教育合作发展、资源共享&#xff0c;培养大学生创新能力、实践能力和团队协作意识&a…

adhoc包无法安装_iOS 5.1.1 设备不能安装AdHoc问题版本号

之前苹果更新了审计规范&#xff0c;要求必须支持64通过苹果的审核权限位架构的应用。但运营商表示反馈。使用iOS5.1.1该系统无法安装我们的包Adhoc版本号。认为非常莫名。由于我们在Deployment Target上确实写着5.1.1&#xff0c;全公司也都没人用这个系统了。在运营纠结这个问…

c盘清理代码_拒接卡顿,从c盘减负、系统修复及网络加速做起!奥利~~~

你是否有过系统卡顿&#xff0c;C盘饱满&#xff1f;你是否有过蓝屏、闪退&#xff1f;你是否有过网络爆卡&#xff1f;今天&#xff0c;他来了&#xff0c;一篇文章教会你清理C盘、修复系统、网络加速&#xff01;&#xff01;&#xff01;首先&#xff0c;按下winr键&#xf…

LeetCode 1833. 雪糕的最大数量(贪心)

文章目录1. 题目2. 解题1. 题目 夏日炎炎&#xff0c;小男孩 Tony 想买一些雪糕消消暑。 商店中新到 n 支雪糕&#xff0c;用长度为 n 的数组 costs 表示雪糕的定价&#xff0c;其中 costs[i] 表示第 i 支雪糕的现金价格。 Tony 一共有 coins 现金可以用于消费&#xff0c;他…

HDU 3605Escape(缩点+网络流之最大流)

题目地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid3605 本来打算昨天写两道题的&#xff0c;结果这个题卡住了&#xff0c;最后才发现是最后的推断条件出错了&#xff0c;推断满流的条件应该是与n的比較&#xff0c;居然写成与全部星球总容量的比較了。&#xf…

为学好计算机 要采取什么措施,计算机概念教学的内容及对策

摘 要:介绍有关概念教学的重要性及在概念教学中重视培养学生的思维能力、概念教学过程中应注意的问题和概念教学中采取的包括淡化、浅化、深化、跨越,在概念教学中应注意的问题,关键词:概念教学;淡化;浅化;深化;跨越中图分类号:G434文献标识码:AAccording to Different Content…

用递归计算一个数字每一位相加的结果。_leetcode 2 两数相加(c++)

两种解法&#xff0c;第一种是在原有的两个链表中选择更长的那个作为结果返回&#xff0c;虽然节约了空间&#xff0c;但是增加了时间复杂度&#xff0c;而且没有用到如何设置链表的增加与删除&#xff0c;第二种看起来清爽很多&#xff0c;逻辑也清晰。### 题目给出两个非空的…