画k线需要的包和环境:

 python36

  import tushare as ts
  import re
  import matplotlib.pyplot as plt
  import mpl_finance as mpf
  import numpy as np
  import talib as tl

  tushare是python的一个第三方库,通过它可以获取股票的当日数据和历史数据,可以通过这里进行详细了解;matplotlib用于数据的可视化;mpl_finance是python中可以用来画出蜡烛图、线图的分析工具,目前已经从matplotlib中独立出来;talib是一个Python 金融指数处理库.

股票数据准备:

 获取股票历史数据可通过tushare库调用get_hist_data或者pro_bar来完成,这里我们通过第二种方法进行采集:

 api = ts.pro_api()

 首先要实例化api,需要在tushare平台注册账号,并获取token(免费);

 df = ts.pro_bar(\’600073.SH\’, start_date=\’2019-12-30 00:00:00\’, end_date=\’2019-12-30 15:00:00\’, freq=\’1min\’)[::-1] 

    该方法会以dataframe的格式返回数据,其参数分别表示股票代码,起始时间,终止时间,要查询的频率,具体可参考下边参数,由于返回的数据时间上是从后往前的,所以我们通过[::-1]进行调换.

 ts_code

 证券代码,支持股票,ETF/LOF,期货/期权,港股,数字货币

start_date

开始日期 YYYYMMDD

end_date

结束日期 YYYYMMDD

freq

支持1/5/15/30/60分钟,周/月/季/年

asset

证券类型 E:股票和交易所基金,I:沪深指数,C:数字货币,FT:期货 FD:基金/O期权/H港股/CB可转债

exchange

市场代码,用户数字货币行情

adj

复权类型,None不复权,qfq:前复权,hfq:后复权

ma

均线,支持自定义均线频度,如:ma5/ma10/ma20/ma60/maN

offset 

 开始行数(分页功能,从第几行开始取数据)

limit

本次提取数据行数

factors

因子数据,目前支持以下两种:vr:量比,默认不返回,返回需指定:factor=[\’vr\’],tor:换手率,默认不返回,返回需指定:factor=[\’tor\’],
以上两种都需要:factor=[\’vr\’, \’tor\’]

retry_count

网络重试次数

 

 

 

 

 

 

 

 

   

   

 

 

 

 

 

 

 

 

 

 

 

 

index = list(map(lambda i: re.findall(r\’\d{2}:\d{2}\’, i)[0], df.trade_time))

   我们以时间为x轴,所以要提取df中的trade_time数据,因为我们的时间比较长,如果都显示看起来比较冗余,所以我们通过正则提取其中的时分秒即可.

下边我们就开始画k线图:

   sma_10 = tl.SMA(np.array(df[\’close\’]), 10)
   sma_30 = tl.SMA(np.array(df[\’close\’]), 30)
   画均线,上边分别是10天内的和30天内的均值计算

   fig = plt.figure(figsize=(38, 18), dpi=100)
   ax = fig.add_subplot(1, 1, 1)
   常见一个画布,设置其长宽,可通过dpi来设置生成图片的像素;在画布中生成一张子图.

   ax.set_title(f\’2019-12-27 {600073}\’, fontsize=30, color=\’red\’)

   ax.set_xticks(range(0, len(df.index)))ax.set_xticklabels(index, rotation=-80)

   给子图添加标题,可设置字体大小和颜色,这里为了醒目我们设置成红色;设置x轴,按照df的长度来设定,然后把上边通过正则获取的时间添加在x轴上,为了避免显示重叠,可通过rotation参数设置旋转,如图:

   mpf.candlestick2_ochl(ax, df[\’open\’], df[\’close\’], df[\’high\’],df[\’low\’], width=0.6, colorup=\’r\’, colordown=\’g\’, alpha=0.75)

   candlestick2_ochl方法用来生成k线,非常的方便,只需把开盘,收盘,最高,最低参数传入即可.

最后设置图例:

   plt.rcParams[\’font.sans-serif\’] = [\’Microsoft JhengHei\’] # 设置字体ax.plot(sma_10, label=\’10日均线\’)

   ax.plot(sma_30, label=\’30日均线\’)

   ax.legend()

这样指定股票的日k线就完成了,完整代码点击,参考图:

版权声明:本文为wangtaobiu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wangtaobiu/p/12124405.html