Python统计某一只股票每天的开盘,收盘,最高,最低价格!
模块:Numpy
码字不易,转载请注明出处!十分感谢!
准备工作: 抓取某一只股票的信息,每30min为一组数据,可以参考上一篇:
Note: 只为演示如何统计,更精准的可以抓取每5min为一组数据
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
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 datetimedef 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')
欢迎大家一起讨论学习。
原文地址:python3.7 统计某一只股票每天的开盘,收盘,最高,最低价格
Python统计某一只股票每天的开盘,收盘,最高,最低价格!相关推荐
- python3.7 统计某一只股票每天的开盘,收盘,最高,最低价格
python3.7 统计某一只股票每天的开盘,收盘,最高,最低价格 模块:Numpy 码字不易,转载请注明出处!十分感谢! 准备工作: 抓取某一只股票的信息,每30min为一组数据,可以参考上一篇: ...
- python股票历史最低点_Python统计某一只股票每天的开盘,收盘,最高,最低价格!...
模块:Numpy 码字不易,转载请注明出处!十分感谢! 准备工作: 抓取某一只股票的信息,每30min为一组数据,可以参考上一篇: Note: 只为演示如何统计,更精准的可以抓取每5min为一组数据 ...
- python统计字母空格个数_python统计字母、空格、数字等字符个数的实例
如下所示: # -*- coding: utf-8 -*- # 要求:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. def count(s): count_a=count_z=c ...
- python统计元素个数_python怎么统计列表中元素的个数
python统计列表中元素的个数的方法:可以通过count()方法来实现.该方法可以统计字符串中某个字符出现的次数,并返回子字符串在字符串中出现的次数.具体用法如:[count=List.count( ...
- 怎么用python统计字数_使用Python 统计高频字数的方法
问题 (来自Udacity机器学习工程师纳米学位预览课程) 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一 ...
- python统计字符串数字个数_python统计字符串中数字个数_后端开发
python怎么随机生成奇数_后端开发 python随机生成奇数的方法:导入random模块,使用random模块生成随机数,然后判断生成的随机数是否为奇数,若是奇数就加入列表.使用此方法得到的列表包 ...
- Python统计在一个队列中有多少个正数,多少个负数
如题,使用python统计在一个列表中的数字,有多少个正数,多少个负数. 思路一:使用列表生成式,生成新的列表 思路二:传统判断思维,累加 以下是Demo(代码基于python3.6): #!/usr ...
- Python统计网站访问日志log中的IP信息,并排序。。
Python统计网站访问日志log中的IP信息,并排序,打印排名靠前的IP及访问量.示例代码如下: #!/usr/bin/env pythonipdict = {}file = open(" ...
- python英文高频句统计_使用Python 统计高频字数的方法
问题 (来自Udacity机器学习工程师纳米学位预览课程) 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一 ...
最新文章
- JavaScript强化教程-JS面向对象编程
- many-to-many
- 迎接 2019:软件开发新趋势预测
- 成功解决Error:invalid character in identifier
- LVS、Nginx、HAProxy工作环境中选择
- VC++制作DLL具体解释
- 【web开发学习笔记】Structs2 Action学习笔记(一个)
- python图像增强_Python图像的增强处理操作示例【基于ImageEnhance类】
- 浏览器卡怎么办_【十全十美】宽带断线、wifi连不上怎么办?自助排障帮到你!...
- fcpx插件:Beautiful Slideshow - 时尚简洁图片幻灯片开场
- Redis单机模式搭建
- 36岁青椒的“我”想对26岁读博的“你”说些话
- 超火的ipad procreate必备神仙笔刷资源打包下载
- python删除数据集中的空值_关于在python中如何使用pandas库读取excel表格后 删除含有空值的列...
- linux内核将新驱动添加到menuconfig菜单
- Autumn源码解读
- TensorFlow神经网络的激活函数
- mysql CONCAT函数 用于隐藏银行卡号码
- HeadFirst设计模式笔记——工厂模式
- Netty内置处理器整理
热门文章
- android sdl 插件,在Eclipse中配置SDL2.0 for Android
- 怎么加网上的精准引流?精准引流有没有小技巧?
- 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 dp
- 运维经理:如果连CentOS网络配置都不会,就收包袱走人吧
- 2014年AVAYA IP Office 合作伙伴大会在北京举行,协作成长,乐在德云
- c#键盘事件代码keychar
- 卢沟桥对于古代北京的作用
- CocosCreator Effect (Shader) - 斜条纹如何画
- 易经中的企业管理思想[转帖] 来源: 中大管理论坛 梁育民
- 2021年度训练联盟热身训练赛第五场