python 获取股票秒级行情,python 获取股票实时数据

  

  据提交人称:   

  

  通过plt的表现,我们可以知道plt可以实现很多东西,比如数据可视化,比如解释重点,比如显示区间,比如写直方图,可以让我们更形象、具体、准确的找到数据信息,表达意思。   

  

  事实上,我们必须知道一些关于plt库或其他库的事情:   

  

  通读或操作一遍或几遍,掌握专有名词和记录笔记,剩下的交给百度。其实不难。难的是如何布局,通过合理的布局和标记,让自己的意思表达清楚。从这个角度来说,我们从自己实际简单的业务中去培养,或者借鉴别人的案例,调整自己的思路,都是有好处的。   

  

  读书只是帮助我们进行更专业、更系统的搜索,也为我们在需要建立新业务时提供了一种思维方式,通过基础来启发我们的思维。不要害怕错误或困难。毕竟百度上能遇到的问题基本都有。   

  

  勇于开拓思维,举一反三。   

  

  是给文的。   

  

  系列文章:   

  

  Python股票量化交易入门实战01   

  

  Python股票量化交易到入门级实战02   

  

  

5.2.6直方图的绘制【用于绘制正态分布等】

  

  

   import pandas as PD import numpy as NP import time import matplotlib . py plot as pltplt . rcparams[' font . sans-serif ']=[' sim hei ']#用于正常显示中文标签plt。RC params[' axes . unicode _ MINUS ']=false #用于正常显示负号FIG=PLT。图(FIG size=(12,8))AX=FIG Add _ Subplot(111)AX。HIST (NP。随机的。Normal ( Scale=1,size=1000),bins=50,density=false,color=' r') #这里需要注意的是,ax.hist只接受一条数据,不能接受多条数据。Ax.set_xlabel('样本值',fontsize=15)ax.set_ylabel('频率',fontsize=15)ax.set_title('正态分布直方图',font size=25)PLT . show()010-699。   

  

  5.2.7K线图的绘制:   

  

  在上面的两个案例中,我们现在可以建立成交量的展会和涨跌幅.的展会,我们将通过candlestics2_ochl()函数绘制k线。   

  

  import pandas as PD import numpy as NP import time import matplotlib . py plot as plt PLT . rcparams[' font . sans-serif ']=[' sim hei ']#用于正常显示中文标签PLT。RC params[' axes . unicode _ MINUS ']=false #用于正常显示负号FIG=PLT。图(FIG size=(8,6))AX=FIG Add _ Subplot(111)#导入数据,数据预处理DF=PD。阅读_ CSV   

df['date'])df=df.sort_values(by='date')#截取数据,数据太长无法显示df=df[-20:]df=df.reset_index(drop=True)#引入新函数import mpl_finance as mpf#书本用的list格式,笔者尝试用了一下series,这样子可以减少格式的转换。mpf.candlestick2_ohlc(ax,df['open'],df['high'],df['low'],df['close'],width=0.5, colorup='r',colordown='g')#推导式,格式化时间data_index=[p.strftime("%Y-%m-%d ") for p in df['date']]#长度ax.set_xlim(0,10)#间隔ax.set_xticks(np.arange(0,10))#接收list格式,一个参数。ax.set_xticklabels(data_index,rotation=45)ax.set_xlabel('日期',fontsize=5)ax.set_ylabel('价格',fontsize=15)ax.set_title('日k线图',fontsize=15)plt.show()
Python股票量化交易到入门实战03

浦发银行的走势

  • 考虑两点:一个是如何设置周期,从而自由调整数据周期,一个是如何对数据进行缩放。

5.3图形对象属性参数的调节

5.4多子图对象的创建和布局:

这里我们来将个股的数据进行可视化,任务为展示浦发银行的K线图走势,均线走势以及成交量。

import matplotlib.pyplot as pltimport pandas as pdimport numpy as npimport mplfinance as mpfplt.rcParams['font.family'] = 'sans-serif'plt.rcParams['font.sans-serif'] = 'SimHei'#导入数据df=pd.read_csv('sh600000.csv')df['date']=pd.to_datetime(df['date'],format='%Y-%m-%d')df=df.sort_values(by='date')# df.index=df.pop('date')df=df.set_index('date')df=df['2017':'2019']#设计成这个样子,就可以进行封装,调参,测试了。df=df[[ 'open', 'high', 'low', 'close','volume']]#因为,mpf会自动识别这五个参数,所以为了防止报错,就取这几个数,防止报错。#设置参数my_color = mpf.make_marketcolors(up='red',#上涨时为红色                                 down='green',#下跌时为绿色                                 edge='i',#隐藏k线边缘                                 volume='in',#成交量用同样的颜色                                 inherit=True)#设置网格my_style = mpf.make_mpf_style(gridaxis='both',#设置网格                           gridstyle='-.',                           y_on_right=True,                            marketcolors=my_color)#生成3条均线df["sma5"] = df["close"].rolling(5).mean()df["sma10"] = df["close"].rolling(10).mean()df["sma30"] = df["close"].rolling(30).mean()#精确小数点,提高计算精度df=df.round(2)#初始化信号df['sign']=0#生成信号for i in range(1,len(df)):    if df.sma5.iloc[i]>df.sma10.iloc[i] and df.sma5.iloc[i-1]<df.sma10.iloc[i-1]:        df.sign.iloc[i]=1    if df.sma5.iloc[i]<df.sma10.iloc[i] and df.sma5.iloc[i - 1]>df.sma10.iloc[i - 1]:        df.sign.iloc[i] =-1#生成买点位置df['buysign']=df[df['sign']>0]['sign']#生成卖点位置df['sellsign']=df[df['sign']<0]['sign']#将均线,买点,卖点信号设置好,然后准备传参add_plot=[mpf.make_addplot(df[['sma5','sma10']]),          mpf.make_addplot(df['buysign'],scatter=True,markersize=80,marker='^',color='r'),          mpf.make_addplot(df['sellsign'],scatter=True,markersize=80,marker='v',color='g')]#接受设置好的参数mpf.plot(df,type='candle',         addplot=add_plot,         style=my_style,         volume=True,#展示成交量副图         figratio=(2,1),#设置图片大小         figscale=5)

效果图:

Python股票量化交易到入门实战03

Python股票量化交易到入门实战03

感悟:

  • 靠别人都是藏着掖着,不给全码,调试起来太吃亏了,只能根据不同的人文章进行参考学习。
  • 学习要趁早,不能拖拖拉拉,原来调用数据,可以通过df.ix进行处理,现在居然没有了,df.at原来不行,后来又可以,现在也不行了,只能通过df.col.iloc[index]进行调用,光就这个问题,我就浪费了太多的时间了。这库更新的也太快了。真的是活到老,学到老。
  • 图例的信号还要进行优化,就先这样子吧。
  • 关于df['buysign']=df[df['sign']>0]['sign']是一个非常好的思路,尽可能地减少迭代,减少计算压力。
  • 关于采取for循环的考虑是想运用到模拟盘,但是这种处理仍然会造成未来透视的情况存在,更好的方案应该是单位的bar传入进行运算是最符合实际交易模型的,因此,回测的设计和模拟盘实盘上存在很大的差距,从实际操作和心理活动来讲,回测的引发的情况要更低一些。
  • 相关的参数还需要进一步掌握。
  • 本章将对可视化告一段落,即将对于数据库保存数据进行处理,通过学习,我们将对于数据的下载进行说明,同时对于数据的清洗,保存,维护进行处理,笔者用的是Navicat for MySQL。
  • 尽量采取传参的模式,同时在设计上进行健壮性的调整。以df.ix为例,函数突然失灵,很容易导致整个回测框架失灵,因此应该根据业务要求尽量进行分开才是,便于维护和查阅。
  • 至于整体的测试框架还是以B站的量化视频为准,有利用爬虫等模式进行取数,便于后面的模拟盘交易。

相关文章