#100行代码,实现财富自由,一起努力
导入urllib
导入pandas as PD
导入JSON
#爬行动物获得股票金融------------数据爬行动物
efda (代码,编号) :
URL=' http://VIP.stock.finance.Sina.com.cn/quotes _ service/API/JSON _ v2.PHP/money flow.sl _ qsfx _ VX
是打印(URL )
data=urllib.request.urlopen (URL ).read ).decode('gbk ',' ignore ' ) ) )。
DATA=data.replace('opendate ',''日期') )
DATA=data.replace('trade ','收盘价') )
data=data.replace('changeratio ','涨幅'') )
数据=data.replace (' turn over ',''交换率'') ) ) ) ) ) )。
DATA=data.replace('Ratioamount ',''净流入率'') )
DATA=data.replace('netamount ',''净流入万')净流入万,重复数据
DATA=data.replace('R0_net ',''网超大型单'') )
DATA=data.replace('R1_net ',''网大单'') )
DATA=data.replace('R2_net ',''网表'')
DATA=data.replace('R3_net ',''网店'')
DATA=data.replace('R0 ','超大单个') )
DATA=data.replace('R1 ','大单') )
DATA=data.replace('R2 ','小单') )
DATA=data.replace('R3 ',''个别'')
hi=PD.read_JSON(JSON.dumps ) JSON.loads (data ) )
hi[ '日期' ]=PD.to_datetime(hi[ '日期' ],格式=' % y-% m-% d ' ) )
hi=hi.sort_values (日期)、ascending=True ) ) ) )。
hi=hi[hi .收盘价1]
hi[ '成交量' ]=hi[ '散单' ] hi[ '小单' ] hi[ '超大单' ] hi[ '大单' ]
hi[ '纯主力' ]=hi[ '纯超大简单' ] hi[ '纯大简单' ]
hi[ '网络散户' ]=hi[ '网络小单' ] hi[ '网络散户' ]
返回hi
#爬虫获取股票金融----------- -输入代码,直接获取可视化--------#
code=input ((请输入股票代码: ' ) ) ) )。
代码=代码. z文件(6) )。
if code[0]=='6':
代码=' sh '代码
else:
代码=' SZ '代码
数据=数据(代码,400 ) ) ) ) ) ) )。
#量化股票金融投资=------------计算各自的平均线
ind=[“换手率”、“成交量”、“收盘价”、“净流入万”、“纯主力”、“涨幅”、“纯散户”]
ma _ list=[ 5,10,20,30,60,120 ]
for k in ind:
for i in ma_list:
DATA[k'_'str(I ) ]=PD.rolling_mean(data[k],I ) ) ) ) )
DATA.to_CSV(400.CSV ) )。
#股票数据可视化---------画画,计算可视化------------
import matplotlib.pyplot as plt
frommatplotlib.font _ managerimportfontproperties
font=font properties (fname=r ' c : (windows (fonts (simsun.TTC ),size=12 ) ) ) ) ) ) )
f1=PLT.figure (fig size=(20,15 ) ) #创建画布
ax1=F1.add_subplot(211 ) )。
ax2=F1.add_subplot(212 ) )
#股票数据可视化------------绘制收盘价k线图---------#
xd=data[ '日期' ] #图的x值
打印收盘价k线图
这是PLT.SCA(ax1 )
PLT.plot(XD,data[ )“收盘价”) #绘制折线图
PLT.plot(XD,data[ )收盘价_5) ) #绘制折线图
PLT.plot(XD,data[ )“收盘价_20”) #绘制折线图
#PLT.plot(xd,data[ )“收盘价_30”)绘制折线图
#PLT.plot(xd,data[ )“收盘价_60”) )绘制折线图
PLT.xlabel('date ) )。
PLT.ylabel('price ) ) )。
PLT.title (代码) )。
PLT.legend(loc='best ',prop=font ) )。
#股票数据可视化---------计算和显示交易策略--------#
res=data.loc[
(data[[“收盘价”(data )“收盘价_20”)
(data[ '收盘价' ] 0.9*data[ '收盘价_120'] )
(data[[ )“成交量”(data )“成交量_30 )”
(data[ '交换率_10'] data[ '交换率_30'] )
]
#打印策略,购买的显示器
傅里叶变换(len ) RES ) :
xp=res.iloc[i,11]
yp=res.iloc[i,9]
PLT.annotate(u'buy ),xy=) XP,yp ),xytext=) XP,yp 0.5 ),
arrowprops=dict(color='red ',头长度=2,头宽度=6,宽度=1.5 ) )
--------------印刷成交量k线图-----------------
good='净流入万'
这是PLT.SCA(ax2 )
#PLT.plot(xd,data[good] )绘制折线图
绘制PLT.plot(xd,data[good '_5'] )折线图
绘制PLT.plot(xd,data[good '_10'] )折线图
绘制PLT.plot(xd,data[good '_30'] )折线图
绘制PLT.plot(xd,data[good '_60'] )折线图
PLT.xlabel('date ) )。
PLT.ylabel(good ) )。
PLT.title(k_line ) )
PLT.legend(loc='best ',prop=font ) )。
plt.show () )
#输入(press ) )。