导语:

哈喽,哈喽~你是不是总喜欢在股市里面晃荡,但无奈总是被当成韭菜收割了。

就只知道红色,绿色。每一次都是卖涨买跌,处处碰壁......

其实只要掌握了大量的股票数据,就可以在信息渠道落后的情况下,分析出机构大概率的在布局哪

些股票,从而在机构拉涨停之前,提前进入分一杯羹。于是,小编今天教大家可以用纯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'

这里主要的控件就是:

  1. 下拉列表,用于选择股票
  2. 右侧有更新股票清单按钮,用于更新股票清单
  3. 选择时间控件
  4. 查看股票信息按钮
  5. 绘图区

定义多个功能函数 为了方便调用,我们将一些常用的功能变成函数:

  1. update_a_share_list 用于从csv中读取股票代码以及名称
  2. get_A_stock_list 用于从网上下载最新的股票清单信息
  3. write_A_stock_list_to_csv 网上下载的信息同步到本地
  4. share_dict_to_option 将本地文件中的信息,合并成控件的选项
  5. get_trend_df:用于通过股票代码,以及时间段来获取日线
  6. 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抓取股票数据分析,掌握股票的差价相关推荐

  1. python如何爬虫股票数据_如何抓取股票数据_用Python抓取新浪的股票数据

    python爬虫成长之路(一)抓取证券之星的股票数据 其中编译匹配模式findall方法使用这个匹配模式来匹配所需的信息并以列表的形式返回.正则表达式的语法非常多.下面我只列出使用的符号的含义.匹配除 ...

  2. python股票数据分析_用Python抓取新浪的股票数据

    最近做数据分析,先是找到了Tushare这个免费开源的第三方财经包,但后来用了几天之后发现,它的日交易历史数据有时候有不准确的情况,查看源代码发现,这个包的数据源是凤凰财经,而对比凤凰网站其站点的数据 ...

  3. python抓取股票数据_Python股票处理之一_获取国内股票数据

    1. 安装支持库 $ pip install panda $ pip install tushare 2. 说明 Pandas是数据分析工具包 TuShare是国内股票数据抓取工具,除了股票的实时和历 ...

  4. [046量化交易]python 抓取指定时间范围内的股票基础信息写入Mongodb

    # -*- coding: utf-8 -*- from datetime import datetime, timedelta import tushare as ts from pymongo i ...

  5. python爬取股票信息_利用Python爬取网易上证所有股票数据(代码

    利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...

  6. python数据分析实例:python抓取课工厂网站数据和分析

    在线教育网站学习,是很多人利于闲余时间进行充电的一种选择.本篇文章利用python抓取在线教育网站课工场课程页面的数据,进行简要分析. 通过使用requests库对课工场课程列表页进行抓取. 通过Be ...

  7. python基金预测分析_Python爬虫抓取基金数据分析、预测系统设计与实现

    版权声明:本文为博主原创文章,如果转载请给出原文链接:http://doofuu.com/article/4156231.html 目前在开发一款基于Python的基金爬取.分析.预测系统,目前已经开 ...

  8. 数据分析与挖掘案例之使用python抓取豆瓣top250电影数据进行分析

    使用python抓取豆瓣top250电影数据进行分析 抓取豆瓣Top250电影数据的链接和电影名称 代码如下: import urllib.request as urlrequest from bs4 ...

  9. python 抓取电脑界面_学会了Python,我的人生跟开挂一样

    当代职场年轻人的抑郁,有千百种. 一边是加不完的班.完不成的KPI.大把掉落的头发,一边是今年严峻的就业形势,职场人面临的工作压力可想而知. 忙碌的生活不仅磋磨了锐气,也让人觉得,自己仿佛永远没有真正 ...

  10. pythonallowpos_利用Python抓取并分析京东商品评论数据

    2.1 内容简介 本章主要介绍如何利用Python抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色等颜色, 70B到90D ...

最新文章

  1. leetcode-386 字典序排数
  2. nodejs这个过程POST求
  3. SRIO学习(六)——Direct I/O 操作(一)
  4. Adaboost方法分类新闻数据
  5. MySQL加索引语句不加锁:ALGORITHM=INPLACE, LOCK=NONE
  6. 【转】ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
  7. HTML Img Compression(压缩)
  8. 一阶电路暂态响应的结果分析。_【2020考研】南京邮电大学813《电路分析》考试大纲...
  9. 用户层关闭杀毒软件安全保护
  10. MATLAB简介及教程
  11. 图像处理——插值算法
  12. IOS7.1.2越狱手工美化(字体,状态栏等资源) CSDN
  13. 请别相信她成本多少?个人参与有什么优势?安全可靠吗?
  14. 七牛C#语言搭建javascript上传--包含后端请求token(前端javascript+后端c#)
  15. js重写alert事件,避免alert弹框标题出现网址
  16. 编写Java程序时的一些经验总结
  17. scrapy-splash java,小白程序员-运用Scrapy-splash爬取动态js页面
  18. 微信公众号平台-自定义菜单
  19. 用vb脚本语言找出c盘所有文件及其子文件中后缀名为.txt的文档,2012年3月计算机二级VB练习题及答案:文件...
  20. Maven dependencymanagement vs dependencies

热门文章

  1. 用JAVA写一个评委打分程序
  2. vs2010 产品密钥
  3. Windows 2008R2上将VMware12的虚拟机做成服务,实现开机自动启动虚拟机
  4. [附源码]JAVA+ssm青岛宝马摩托车网站(程序+Lw)
  5. 推荐一本电子书《深度学习入门》
  6. 《嵌入式Linux驱动开发教程》--内核模块
  7. js中的offsetLeft和style.left
  8. UVM之sformat
  9. 点石互动--robin之:一个搜索引擎工程师眼中的搜索引擎
  10. 快速排序——交换排序