大家好,上次讲到了如何从tushare读取交易数据并写入到mysql数据库,今天讲解两个案例,简单的条件选股以及对交易数据可视化。
第一个案例简单查询股价涨幅和跌幅并可视化。
第二个案例结合选股策略(不要st股、动态市盈率大于0、流通市值小于10亿)对数据进行查询和提取。
话不多说,直接上代码。
案例一:
#先引入后面分析、可视化等可能用到的库 import tushare as ts import pandas as pd import numpy as np from sqlalchemy import create_engine #连接数据库 engine = create_engine('mysql+pymysql://root:123456@localhost/tushare_db') #设置token(大家去tushare上免费注册就可以获取了) #tushare的注册地址 token='f7886c15001489a3e784a9e9ede719967a6f745e785ab39a9c10f6a5' pro = (token)
#接下来说下如何读取数据库的数据和可视化 #构建数据查询和可视化函数: def plot_data(condition,title): #导入pyecharts绘图模块,案例使用的是V1版本。 from import Bar from pyecharts import options as opts #查询语句 data=("select * from stock_data where+"+ condition,engine) #使用分组计数生成Series格式 count_=da('trade_date')['ts_code'].count() #索引日期列转换成列表 attr=coun() #数值转换成列表 v1=coun() #添加柱状图 bar=Bar() bar.add_xaxis(attr) bar.add_yaxis("",v1) bar.set_global_opts(title_opts=o(title=title)) #render()把图形生成一个.html文件 return bar.render() #查询股价低于2元个股数据分布 c1="close<2" t1="股价低于2元个股时间分布" plot_data(c1,t1)
股价低于2元个股时间分布
#查询股价日涨幅超过9.5%个股数据分布: c2="pct_chg>9.5" t2="股价涨幅超过9.5%个股时间分布" plot_data(c2,t2)
股价涨幅超过9.5%个股时间分布
#查询股价日跌幅超过-9.5%个股数据分布: c3="pct_chg<-9.5" t3="股价跌幅超过9.5%个股时间分布" plot_data(c3,t3)
股价跌幅超过9.5%个股时间分布
案例二:
#通过tushare的两个API接口调用 def get_new_code(date): #stock_basic 获取当前所有交易股票代码 df0 =(exchange='', list_status='L') #daily_basic 获取每日指标,这个需要300积分才可以调取 df1 =(trade_date=date) #merge合并df0和df1的查询结果 df=(df0,df1,on='ts_code') #剔除2018年以后上市的新股次新股 df=df[df['list_date'].apply(int).values<20180101] #剔除st股 df=df[-df['name'].apply(lambda x:x.startswith('*ST'))] #剔除动态市盈率为负的 df=df[df.pe_ttm>0] #剔除大市值股票,只要流通市值小于10亿 df=df[df.circ_mv<10**5] codes=df. return codes print(get_new_code('20200310'))
结果
好了,今天两个案例就讲到这里,欢迎大家关注。
下次给大家讲解简单的均线的交易策略。
希望能和大家一起每天进步一点点。