python抓取股票数据分析,掌握股票的差价
导语:
哈喽,哈喽~你是不是总喜欢在股市里面晃荡,但无奈总是被当成韭菜收割了。
就只知道红色,绿色。每一次都是卖涨买跌,处处碰壁......
其实只要掌握了大量的股票数据,就可以在信息渠道落后的情况下,分析出机构大概率的在布局哪
些股票,从而在机构拉涨停之前,提前进入分一杯羹。于是,小编今天教大家可以用纯python入门
一个股票分析系统。
正文:
首先导入我们所需的“主角”以及“配角”,这里依然将每个所需的功能放在注释中。
import tushare as ts # 获取股票信息import dash # 设计网站from datetime import datetime, timedeltaimport dash_core_components as dcc #设计网站采用的核心插件库import dash_bootstrap_components as dbc #设计网站采用的美化页面import dash_html_components as html #设计网站采用的核心插件库from dash.dependencies import Input, Output, State # 完成用户点击响应import plotly.graph_objects as go # 画出趋势图from dash.exceptions import PreventUpdateimport pandas as pd
我们需要给我们网站中每个元素定义ID,方便后面进行回调,响应用户的操作。
# ID definitionsid_button_update_a_share_list = 'id-button-update-a-share-list'id_dpl_share_code = 'id-dpl-share-code'id_date_picker_range = 'id-date-picker-range'id_button_query_trend = 'id-button-query-trend'id_graph_hist_trend_graphic = 'id-graph-hist-trend-graphic'
这里主要的控件就是:
- 下拉列表,用于选择股票
- 右侧有更新股票清单按钮,用于更新股票清单
- 选择时间控件
- 查看股票信息按钮
- 绘图区
定义多个功能函数 为了方便调用,我们将一些常用的功能变成函数:
- update_a_share_list 用于从csv中读取股票代码以及名称
- get_A_stock_list 用于从网上下载最新的股票清单信息
- write_A_stock_list_to_csv 网上下载的信息同步到本地
- share_dict_to_option 将本地文件中的信息,合并成控件的选项
- get_trend_df:用于通过股票代码,以及时间段来获取日线
- plot_candlestick:用于画股票的K线
def update_a_share_list():# display a stock share list from csva_share_list_df = pd.read_csv(A_STOCK_FILE, index_col='ts_code')share_dict = a_share_list_df.to_dict()['name']return share_dict_to_option(share_dict)def get_A_stock_list():# fetch list from internetshare_df = ts_pro.stock_basic(exchange='',list_status='L',fields='ts_code,name')share_df.set_index('ts_code', inplace=True)return share_dfdef write_A_stock_list_to_csv(file):# sync to csvshare_df = get_A_stock_list()share_df.to_csv(file)def share_dict_to_option(share_dict):# convert name and code to optionsname_list = [str(key) + '-' + str(value)for key, value in share_dict.items()]return list_to_option_list(name_list)def split_share_to_code(share):# split options to get codecode = share.split('-')[0]return codedef list_to_option_list(list):# quick create dropdown options from listreturn [{"label": i, "value": i} for i in list]def get_trend_df(code, start_date, end_date):# get history tend by ts_code,start_date,end_datessdf = ts_pro.daily(ts_code=code, start_date=start_date, end_date=end_date)df['trade_date'] = pd.to_datetime(df['trade_date'], format='%Y%m%d')df.set_index('trade_date', inplace=True)df.sort_index(inplace=True) # sort result by date (datetime)return dfdef plot_candlestick(df):# plot candlestick# customize the color to China Stockfig = go.Figure(data=[go.Candlestick(x=df.index,open=df['open'],high=df['high'],low=df['low'],close=df['close'],increasing=dict(line=dict(color="#FF0000")),decreasing=dict(line=dict(color="#00FF00")),)])fig.update_layout(margin=dict(l=2, r=10, t=20, b=20),paper_bgcolor="LightSteelBlue",) # change the layout of figurereturn fig
设计网页
update_a_share_button = dbc.Button(id=id_button_update_a_share_list,color='light',children='更新列表', outline=True)
这是一个python函数,意味着你需要的主要配置都在函数的参数中。
- Dropdown 是下拉列表控件
- 为了让界面美观一点,这里我们调用bootstrap进行对齐设计。
- Graph 控件用于绘图,核心的K线采用plot_candlestick函数绘制。
- 最后,设计好的所有控件,放在app.layout中即可。
这样一个静态的网页就设计好了。
# create dash app
app = dash.Dash(__name__)# layout design
header = html.H2("股票查询", className='text-center')
# update list button
update_a_share_button = dbc.Button(id=id_button_update_a_share_list,color='light',children='更新列表', outline=True)
# share select dropdown list
select_share = dcc.Dropdown(id=id_dpl_share_code,options=update_a_share_list()
)
# datetime picker
date_pick = dcc.DatePickerRange(id='id-date-picker-range',max_date_allowed=datetime.today(),start_date=datetime.today().date() - timedelta(days=60),end_date=datetime.today().date()
)
# query button
query_button = dbc.Button("查询",color="warning",className="mr-1",id=id_button_query_trend,outline=False)# make a better row/col layout
select_share_row = dbc.Container([dbc.Row([dbc.Col([select_share],className='col-5'),dbc.Col([update_a_share_button],className='col-2')]),html.Br(),dbc.Row([dbc.Col([date_pick],className='col-5'),dbc.Col([query_button],className='col-1')])])# get default figure
default_fig = plot_candlestick(get_trend_df('000001.SZ',start_date='20200101',end_date='20200707'))
# graphic div
graphic_div = dbc.Container([dcc.Graph(figure=default_fig, id=id_graph_hist_trend_graphic)])# fully layout
app.layout = html.Div([header,select_share_row,html.Br(),graphic_div,
运行程序
if __name__ == '__main__':app.run_server(debug=True)
结尾:
好啦,文章就分享到这里就结束啦~
大家喜欢的记得点点赞,需要完整的项目源码的可以私信我即可哟!
这行蓝色的字体也行wo~
python抓取股票数据分析,掌握股票的差价相关推荐
- python如何爬虫股票数据_如何抓取股票数据_用Python抓取新浪的股票数据
python爬虫成长之路(一)抓取证券之星的股票数据 其中编译匹配模式findall方法使用这个匹配模式来匹配所需的信息并以列表的形式返回.正则表达式的语法非常多.下面我只列出使用的符号的含义.匹配除 ...
- python股票数据分析_用Python抓取新浪的股票数据
最近做数据分析,先是找到了Tushare这个免费开源的第三方财经包,但后来用了几天之后发现,它的日交易历史数据有时候有不准确的情况,查看源代码发现,这个包的数据源是凤凰财经,而对比凤凰网站其站点的数据 ...
- python抓取股票数据_Python股票处理之一_获取国内股票数据
1. 安装支持库 $ pip install panda $ pip install tushare 2. 说明 Pandas是数据分析工具包 TuShare是国内股票数据抓取工具,除了股票的实时和历 ...
- [046量化交易]python 抓取指定时间范围内的股票基础信息写入Mongodb
# -*- coding: utf-8 -*- from datetime import datetime, timedelta import tushare as ts from pymongo i ...
- python爬取股票信息_利用Python爬取网易上证所有股票数据(代码
利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...
- python数据分析实例:python抓取课工厂网站数据和分析
在线教育网站学习,是很多人利于闲余时间进行充电的一种选择.本篇文章利用python抓取在线教育网站课工场课程页面的数据,进行简要分析. 通过使用requests库对课工场课程列表页进行抓取. 通过Be ...
- python基金预测分析_Python爬虫抓取基金数据分析、预测系统设计与实现
版权声明:本文为博主原创文章,如果转载请给出原文链接:http://doofuu.com/article/4156231.html 目前在开发一款基于Python的基金爬取.分析.预测系统,目前已经开 ...
- 数据分析与挖掘案例之使用python抓取豆瓣top250电影数据进行分析
使用python抓取豆瓣top250电影数据进行分析 抓取豆瓣Top250电影数据的链接和电影名称 代码如下: import urllib.request as urlrequest from bs4 ...
- python 抓取电脑界面_学会了Python,我的人生跟开挂一样
当代职场年轻人的抑郁,有千百种. 一边是加不完的班.完不成的KPI.大把掉落的头发,一边是今年严峻的就业形势,职场人面临的工作压力可想而知. 忙碌的生活不仅磋磨了锐气,也让人觉得,自己仿佛永远没有真正 ...
- pythonallowpos_利用Python抓取并分析京东商品评论数据
2.1 内容简介 本章主要介绍如何利用Python抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色等颜色, 70B到90D ...
最新文章
- leetcode-386 字典序排数
- nodejs这个过程POST求
- SRIO学习(六)——Direct I/O 操作(一)
- Adaboost方法分类新闻数据
- MySQL加索引语句不加锁:ALGORITHM=INPLACE, LOCK=NONE
- 【转】ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
- HTML Img Compression(压缩)
- 一阶电路暂态响应的结果分析。_【2020考研】南京邮电大学813《电路分析》考试大纲...
- 用户层关闭杀毒软件安全保护
- MATLAB简介及教程
- 图像处理——插值算法
- IOS7.1.2越狱手工美化(字体,状态栏等资源) CSDN
- 请别相信她成本多少?个人参与有什么优势?安全可靠吗?
- 七牛C#语言搭建javascript上传--包含后端请求token(前端javascript+后端c#)
- js重写alert事件,避免alert弹框标题出现网址
- 编写Java程序时的一些经验总结
- scrapy-splash java,小白程序员-运用Scrapy-splash爬取动态js页面
- 微信公众号平台-自定义菜单
- 用vb脚本语言找出c盘所有文件及其子文件中后缀名为.txt的文档,2012年3月计算机二级VB练习题及答案:文件...
- Maven dependencymanagement vs dependencies