美文网首页
Matplotlib绘制金融K线图

Matplotlib绘制金融K线图

作者: dshowing | 来源:发表于2019-02-18 20:16 被阅读1次

    网上的XXX教程XXX文档全都是贴了个程序,至于能不能用另说~

    以上,
    综合大多数网友的帖子和对官方文档的学习,重新贴一个K线绘制代码:

    • python3.7
    • matplotlib 3.0.2
    • mpl-finance 0.10.0
    # -*- coding:utf-8 -*-
    #Auther: dshowing
    
    import datetime
    import matplotlib.pyplot as plt
    
    from matplotlib.pylab import date2num
    from mpl_finance import candlestick_ohlc
    import jqdatasdk
    """
    注意date2num()参数格式为datetime.datetime类;
    candlestick_ohlc可接受列表参数和单个参数;
    jqdatasdk返回DataFrema数据,注意格式转换
    """
    
    # jqdatasdk.auth
    jqdatasdk.auth('ID', 'secure_id')
    
    # 从joinquant获取历史行情
    date1 = '2018-10-01'
    date2 = '2019-02-01'
    quotes = jqdatasdk.get_price(
        '000001.XSHE',
        start_date=date1,
        end_date=date2,
        frequency='daily',
        fields=None,
        skip_paused=True,
        fq=None
    )
    
    # 遍历转换
    data_list = []
    for dates, row in quotes.iterrows():
        #dates为Datafrema数据,强制转换为str方可使用
        date_time = datetime.datetime.strptime(str(dates), '%Y-%m-%d %H:%M:%S')
        #接收datetime.datetime数据
        t = date2num(date_time)
        open, high, low, close = row[:4]
        datas = (t, open, high, low, close)
        data_list.append(datas)
    
    # 创建一个figure
    fig, ax = plt.subplots()
    fig.subplots_adjust(bottom=0.2)
    
    # 设置x轴为日期
    ax.xaxis_date()
    plt.xticks(rotation=45)
    plt.yticks()
    plt.title('000001.XSHE: 2016/01/01-2019/02/01')
    plt.xlabel("时间")
    plt.ylabel("股价(元)")
    
    candlestick_ohlc(ax=ax, quotes=data_list, width=0.6, colorup='b', colordown='r')
    plt.grid(True)
    
    plt.show()
    

    jqdatasdk

    这里使用了聚宽的离线数据SDK,使用前要用.auth认证

    get_price

    截取时间段数据,除此之外还有很多,可以去查官方API

    date2num

    matplotlib.pylab.date2num()需要一个datetime.datetime类参数
    只要是DataFrema数据,都不能直接在candlestick_ohlc方法中使用,需要遍历转换为整形数据

    运行

    图有点毛病,凑合看,,,


    image.png

    后记

    原本是想自己做一个系统,同时兼顾数据回测、K线/收益线绘制、动态的图形系统。
    阴差阳错的用起来了matplotlib库,,
    大家如果知道类似的开源框架评论区推荐一下,多谢!

    相关文章

      网友评论

          本文标题:Matplotlib绘制金融K线图

          本文链接:https://www.haomeiwen.com/subject/hnmzeqtx.html