① 如何用python代码判断一段范围内股票最高点
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
登录
python+聚宽 统计A股市场个股在某时间段的最高价、最低价及其时间 原创
2019-10-12 09:20:50
开拖拉机的大宝
码龄4年
关注
使用工具pycharm + 聚宽数据源,统计A股市场个股在某时间段的最高价、最低价及其时间,并打印excel表格输出
from jqdatasdk import *
import pandas as pd
import logging
import sys
logger = logging.getLogger("logger")
logger.setLevel(logging.INFO)
# 聚宽数据账户名和密码设置
auth('username','password')
#获取A股列表,包括代号,名称,上市退市时间等。
security = get_all_securities(types=[], date=None)
pd2 = get_all_securities(['stock'])
# 获取股票代号
stocks = list(get_all_securities(['stock']).index)
# 获取股票名称
stocknames = pd2['display_name']
start_date = '2015-01-01'
end_date = '2018-12-31'
def get_stocks_high_low(start_date,end_date):
# 新建表,表头列
# 为:"idx","stockcode","stockname","maxvalue","maxtime","lowvalue","lowtime"
result = pd.DataFrame(columns=["idx", "stockcode", "stockname", "maxvalue", "maxtime", "lowvalue", "lowtime"])
for i in range(0,stocks.__len__()-1):
pd01 = get_price(stocks[i], start_date, end_date, frequency='daily',
fields=None, skip_paused=False,fq='pre', count=None)
result=result.append(pd.DataFrame({'idx':[i],'stockcode':[stocks[i]],'stockname':
[stocknames[i]],'maxvalue':[pd01['high'].max()],'maxtime':
[pd01['high'].idxmax()],'lowvalue': [pd01['low'].min()], 'lowtime':
[pd01['low'].idxmin()]}),ignore_index=True)
result.to_csv("stock_max_min.csv",encoding = 'utf-8', index = True)
logger.warning("执行完毕!
② python获取一只股票的行情,为什么出现这么多问题
首先,你要确定下你的库文件是否安装正常,测试方法,就是在交互模式下测试。
其次,不要用别名,在试试。
希望能帮到你。。。。
③ 为什么pandas有国内股票数据
都是公开发行上市的股票,当然会有的,Pandas是数据分析工具包
TuShare是国内股票数据抓取工具,除了股票的实时和历史数据,还有基本面数据,加上自然语言处理(比如情绪分析),或者机器学习,就比较有趣了。
④ 用Python能做哪些事情
Python作为一门胶水语言,其实能做的事非常多,下面我简单介绍一下,分为八个方面,主要内容如下:
数据处理
Python提供了大量用于数据处理和科学计算的库,像numpy,scipy,pandas等,对于矩阵计算、线性代数等,numpy可以快速计算并得到结果,pandas内置的DataFrame类型可以快速处理各种常见的文件,像CSV,Excel,JSon等,是数据分析的利器,在数据处理中经常使用:
可视化
Python数据可视化库也非常丰富,除了经常使用的matplotlib外,还有许多其他可视化库,像seaborn,pyecharts等,绘制的图形种类更丰富,更漂亮,代码量也更少,非常容易学习,对于日常作图制表来说,是一个非常不错的选择:
机器学习
现在机器学习正火,其实Python里面也有现成的机器学习模块可供学习—scikit-learn,对于常见的机器学习算法,像分类、回归、聚类、降维等,这个模块都有现成的代码可直接使用,非常方便,对于想入门机器学习的朋友来说,这是一个非常不错的选择:
神经网络
神经网络起源应该比较早了,目前在图像领域应用比较广泛,Python也有现成的神经网络模块可供使用,比较有名的就是谷歌开源的tensorflow,可以快速构建神经网氏轿络模型,并支持GPU计算,对于科研人员来说,是一个非常不错的选择,当然,除此之虚埋外,还有更高级的theano,keras等,使用也非常方便:
财经金融
对于想快速获取股票财经数据的朋友来说,Python也有现成的模块可供使用—tushare,一个免费、开源的财经数据接口包,可以快速获取国内股票数据,而且自动整合了数据爬取、清洗到加工的过程,使用起来非常不错,对于金融分析人员来说,是一个非常不错的工具:
爬虫
Python非常适合做网页爬虫,像常见的urllib,bs4,requests,lxml等模块,对于爬取大部分网页来说非常容易,请求解析于一身,可以快速获取到我们需要的数据,当然,为了提高开发效率,避免重复造轮子,Python也提供了一个非常受欢迎的爬虫框架—scrapy,可定制性更高,用户只需要添加少量代码,便可快速启动爬虫:
游戏开发
对于游戏开发来差核蚂说,Python也有一个专门的平台—pygame,专门用于游戏开发,对于开发小型游戏来说,这是一个非常不错的选择,摆脱了低级语言的束缚,代码量更少也更易学习,对于游戏感兴趣的朋友来说,这是一个非常不错的选择:
视频下载
对于视频下载来说,Python也有一个下载利器—you-get,可以免费快速的下载优酷、B站、美拍等网站视频,不需要登录,一键you-get就可以下载视频到本地,还支持在线播放功能,除此之外,还可以下载图片、音频等文件,是一个非常实用的工具:
目前,就分享这8个方便吧,比较实用也比较有趣,当然,还有许多其他方面的,像Web开发、桌面GUI、测试、运维、树莓派等,网上也有相关资料可供参考,感兴趣的朋友可以自己搜一下,希望以上分享的内容能对你有所帮助吧
⑤ 如何在国泰安数据库中找上市公司股票期权的数据
基本上需要这些步骤:
(1)用账号登陆界面,进行页面数据分析,提取出需要下载的数据
(2)添加cookie和header之类,模拟用户行为。
(3)远程下载到本地
这其中要注意设置代理,防止被封IP之类的问题。可以选择Python爬虫进行处理。
⑥ 怎样用python提取不同股票csv里特定时间段的数据
用pandas库,
import pandas as pd
data = pd.read_csv('train.csv')
train_data = data.values[0:TRAIN_NUM,1:]
train_label = data.values[0:TRAIN_NUM,0]
study.163.com/course/courseMain.htm?courseId=1000035
机器学习正好讲了这个手写识别的例子!
⑦ 如何使用python 抓取雪球网页
现在关注一个组合,就会有持仓变动的提示了。不过我觉得这事情挺有意思的。比如可以把很多持仓的数据都抓下来,做一些综合的分析,看看现在网站上被持有最多的股票是哪一支,某一天被调入最多的又是哪一支之类。
于是我决定来抓抓看,顺便借此说说我通常用程序做自动抓取的过程。
Step.1 分析页面
要抓一个网页,首先自然是要“研究”这个网页。通常我会用两种方式:
一个是 Chrome 的 Developer Tools。通过它里面的 Network 功能可以看到页面发出的所有网络请求,而大多数数据请求都会在 XHR 标签下。点击某一个请求,可以看到其具体信息,以及服务器的返回结果。很多网站在对于某些数据会有专门的请求接口,返回一组 json 或者 XML 格式的数据,供前台处理后显示。
另一个就是直接查看网页源代码。通常浏览器的右键菜单里都有这个功能。从页面的 HTML 源码里直接寻找你要的数据,分析它格式,为抓取做准备。
对于雪球上的一个组合页面 粗略地看了一下它发出的请求,并没有如预想那样直接找到某个数据接口。看源代码,发现有这样一段:
SNB.cubeInfo = {"id":10289,"name":"誓把老刀挑下位","symbol":"ZH010389" ...此处略过三千字... "created_date":"2014.11.25"}
SNB.cubePieData = [{"name":"汽车","weight":100,"color":"#537299"}];
cubeInfo 是一个 json 格式的数据,看上去就是我们需要的内容。一般我会找个格式化 json 的网站把数据复制进去方便查看。
这应该就是组合的持仓数据。那么接下来,一切似乎都简单了。只要直接发送网页请求,然后把其中 cubeInfo 这段文字取出,按 json 读出数据,就完成了抓取。甚至不用动用什么 BeautifulSoup、正则表达式。
Step.2 获取页面
分析完毕,开抓。
直接 urllib.urlopen 向目标网页发送请求,读出网页。结果,失败了……
看了下返回结果:
403 Forbidden
You don't have permission to access the URL on this server. Sorry for the inconvenience.
被拒了,所以这种赤裸裸地请求是不行的。没关系,那就稍微包装一下:
send_headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Connection':'keep-alive',
'Host':'xueqiu.com',
'Cookie':r'xxxxxx',
}
req = urllib2.Request(url, headers=send_headers)
resp = urllib2.urlopen(req)
html = resp.read()
header 数据都可以从 Developer Tools 里拿到。这次顺利抓到页面内容。
一般网站或多或少都会对请求来源做一些阻拦,通过加 header 可以搞定大部分情况。
Step.3 提取数据
因为这个数据比较明显,直接用通过一些字符串查找和截取操作就可以取出来。
pos_start = html.find('SNB.cubeInfo = ') + len('SNB.cubeInfo = ')
pos_end = html.find('SNB.cubePieData')
data = html[pos_start:pos_end]
dic = json.loads(data)
dic 就是一个包含数据的字典对象。之后想干什么就随便你了。
对于复杂一点的情况,可以通过 BeautifulSoup 来定位 html 标签。再不好办的,就用正则表达式,基本都可以解决掉。
Step.4 处理数据
因为我想对数据进行持久化存储,并且做展示和分析,所以我用了 django 里的 ORM 来处理抓下来的数据。
# add Portfolio
portfolio, c = models.Portfolio.objects.get_or_create(code=dic['symbol'])
portfolio.name = dic['name']
portfolio.earnings = dic['total_gain']
portfolio.save()
# add Stock
stocks = dic['view_rebalancing']['holdings']
for s in stocks:
stock, c = models.Stock.objects.get_or_create(code=s['stock_symbol'])
stock.name = s['stock_name']
stock.count += 1
stock.weight += s['weight']
stock.save()
Portfolio 记录下组合及其收益,Stock则记录每支股票的被收录数和总收录份额。
对于抓取到的,一般也可以存在文件中,或者直接通过 SQL 存入数据库,视不同情况和个人喜好而定。
Step.5 批量抓取
前面的一套做下来,就完整地抓取了一组数据。要达到目的,还要设计一下批量抓取的程序。
一个要解决的问题就是如何获得组合列表。这个可以再通过另一个抓取程序来实现。然后根据这些列表来循环抓取就可以了。
若要细究,还要考虑列表如何保存和使用,如何处理抓取失败和重复抓取,如何控制抓取频率防止被封,可否并行抓取等等。
Step.6 数据分析
数据有了,你要怎么用它,这是个很大的问题。可以简单的统计现象,也可以想办法深入分析背后隐藏的逻辑。不多说,我也还只是在摸索之中。
⑧ 如何利用一些 finance 数据库 api 批量获取股票信息
使用Yahoo API获取股票信息。