基于tushare生成k线图

tushare简介

TuShare是二个免费、开源的python财政和经济数据接口包。最首要实现对股票等金融数据从数据搜集保洁加工多少存款和储蓄的历程,能够为金融分析人士提供火速、整洁、和一类别的惠及分析的数量,为她们在数码获得方面非常大地减轻工作量,使他们一发小心于政策和模型的探讨与落到实处上。考虑到Python
pandas包在金融量化分析中展现出的优势,TuShare重临的多边的多寡格式都是pandas
DataFrame类型,非凡有利于用pandas/NumPy/Matplotlib举办数据解析和可视化。当然,尽管您习惯了用Excel也许关系型数据库做分析,您也得以通过TuShare的数码存款和储蓄功用,将数据总体保存到本地后实行剖析。应一些用户的央浼,从0.2.5本子开头,TuShare同时兼容Python
2.x和Python
3.x,对有的代码进行了重构,并优化了一部分算法,确定保证数量得到的快速和安宁。
http://tushare.org/

  

股票数量获得

import tushare as ts
ts.get_hist_data(‘600848’)#二回性得到全部日k线数据

大约的算了一下,到今后终结,今年(二零一四年)一共读了130多本书,超过50%笔者读到的好书,都早就记下在了小编事先写过的几篇文章里:

结果呈现:

           open    high  close    low    volume    p_change  ma5 \
date
2012-01-11  6.880  7.380  7.060  6.880  14129.96    2.62  7.060
2012-01-12  7.050  7.100  6.980  6.900    7895.19    -1.13  7.020
2012-01-13  6.950  7.000  6.700  6.690    6611.87    -4.01  6.913
2012-01-16  6.680  6.750  6.510  6.480    2941.63    -2.84  6.813
2012-01-17  6.660  6.880  6.860  6.460    8642.57    5.38  6.822
2012-01-18  7.000  7.300  6.890  6.880  13075.40    0.44  6.788
2012-01-19  6.690  6.950  6.890  6.680    6117.32    0.00  6.770
2012-01-20  6.870  7.080  7.010  6.870    6813.09    1.74  6.832
           ma10    ma20      v_ma5    v_ma10    v_ma20    turnover
date
2012-01-11  7.060  7.060  14129.96  14129.96  14129.96    0.48
2012-01-12  7.020  7.020  11012.58  11012.58  11012.58    0.27
2012-01-13  6.913  6.913    9545.67    9545.67    9545.67    0.23
2012-01-16  6.813  6.813    7894.66    7894.66    7894.66    0.10
2012-01-17  6.822  6.822    8044.24    8044.24    8044.24    0.30
2012-01-18  6.833  6.833    7833.33    8882.77    8882.77    0.45
2012-01-19  6.841  6.841    7477.76    8487.71    8487.71    0.21
2012-01-20  6.863  6.863    7518.00    8278.38    8278.38    0.23

1.人丑就要多读书(2015年上3个月书单)

绘制K线图

2.续:人丑就要多读书——2016年上四个月阅读书目

matplotlib.finance 工具包的绘图K线图

def _candlestick(ax, quotes, width=0.2, colorup='k', colordown='r',
                 alpha=1.0, ochl=True):

    """
    Plot the time, open, high, low, close as a vertical line ranging
    from low to high.  Use a rectangular bar to represent the
    open-close span.  If close >= open, use colorup to color the bar,
    otherwise use colordown

    Parameters
    ----------
    ax : `Axes`
        an Axes instance to plot to
    quotes : sequence of quote sequences
        data to plot.  time must be in float date format - see date2num
        (time, open, high, low, close, ...) vs
        (time, open, close, high, low, ...)
        set by `ochl`
    width : float
        fraction of a day for the rectangle width
    colorup : color
        the color of the rectangle where close >= open
    colordown : color
         the color of the rectangle where close <  open
    alpha : float
        the rectangle alpha level
    ochl: bool
        argument to select between ochl and ohlc ordering of quotes

    Returns
    -------
    ret : tuple
        returns (lines, patches) where lines is a list of lines
        added and patches is a list of the rectangle patches added

    """

    OFFSET = width / 2.0

    lines = []
    patches = []
    for q in quotes:
        if ochl:
            t, open, close, high, low = q[:5]
        else:
            t, open, high, low, close = q[:5]

        if close >= open:
            color = colorup
            lower = open
            height = close - open
        else:
            color = colordown
            lower = close
            height = open - close

        vline = Line2D(
            xdata=(t, t), ydata=(low, high),
            color=color,
            linewidth=0.5,
            antialiased=True,
        )

        rect = Rectangle(
            xy=(t - OFFSET, lower),
            width=width,
            height=height,
            facecolor=color,
            edgecolor=color,
        )
        rect.set_alpha(alpha)

        lines.append(vline)
        patches.append(rect)
        ax.add_line(vline)
        ax.add_patch(rect)
    ax.autoscale_view()

    return lines, patches

3.人丑就要多读书——2015年下七个月书单(一)

tushare 的 pandas dataframe 生成K线图

def _candlestick(ax, df, width=0.2, colorup='k', colordown='r',
                 alpha=1.0):

    """
    Plot the time, open, high, low, close as a vertical line ranging
    from low to high.  Use a rectangular bar to represent the
    open-close span.  If close >= open, use colorup to color the bar,
    otherwise use colordown

    Parameters
    ----------
    ax : `Axes`
        an Axes instance to plot to
    df : pandas data from tushare
    width : float
        fraction of a day for the rectangle width
    colorup : color
        the color of the rectangle where close >= open
    colordown : color
         the color of the rectangle where close <  open
    alpha : float
        the rectangle alpha level
    ochl: bool
        argument to select between ochl and ohlc ordering of quotes

    Returns
    -------
    ret : tuple
        returns (lines, patches) where lines is a list of lines
        added and patches is a list of the rectangle patches added

    """

    OFFSET = width / 2.0

    lines = []
    patches = []
    for date_string,row in df.iterrows():
        date_time = datetime.datetime.strptime(date_string,'%Y-%m-%d')
        t = date2num(date_time)
        open, high, close, low = row[:4]

        if close >= open:
            color = colorup
            lower = open
            height = close - open
        else:
            color = colordown
            lower = close
            height = open - close

        vline = Line2D(
            xdata=(t, t), ydata=(low, high),
            color=color,
            linewidth=0.5,
            antialiased=True,
        )

        rect = Rectangle(
            xy=(t - OFFSET, lower),
            width=width,
            height=height,
            facecolor=color,
            edgecolor=color,
        )
        rect.set_alpha(alpha)

        lines.append(vline)
        patches.append(rect)
        ax.add_line(vline)
        ax.add_patch(rect)
    ax.autoscale_view()

    return lines, patches


def drawPic(df, code, name):
    mondays = WeekdayLocator(MONDAY)            # 主要刻度
    alldays = DayLocator()                      # 次要刻度
    #weekFormatter = DateFormatter('%b %d')     # 如:Jan 12
    mondayFormatter = DateFormatter('%m-%d-%Y') # 如:2-29-2015
    dayFormatter = DateFormatter('%d')          # 如:12
    fig, ax = plt.subplots()
    fig.subplots_adjust(bottom=0.2)
    ax.xaxis.set_major_locator(mondays)
    ax.xaxis.set_minor_locator(alldays)
    ax.xaxis.set_major_formatter(mondayFormatter)

    _candlestick(ax, df, width=0.6, colorup='r', colordown='g')

    ax.xaxis_date()
    ax.autoscale_view()
    plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right')


    ax.grid(True)
    plt.title(name + '  ' + code, fontproperties=zhfont)
    plt.show()


def makePicture(code, name):
    df = ts.get_hist_data(code, start=begin_time, end=end_time)
    df = df.sort_index(0)
#    df.plot()
    drawPic(df, code, name)

4.人丑就要多读书——二〇一五年下八个月书单(二)

年底的时候给协调定下一年100本书的指标,未来曾经超(英文名:jīng chāo)额完结了,对于懒惰的本身而言,那当然是件值得欣喜的事情。当然了,那跟豆瓣腾讯网上那叁个一年两三百本书的开卷狂人当然是不可能比的,不过和原先一年唯有四五十本读书量的自身来说,已经是1个非常快的腾飞了。

借使说读了这几个书,有哪些成长途电话,那应该是有一对的:

1.看书的进程尤其快了,此前读一本20多万字的小说,大致是索要二十一个小时的时刻,未来基本只须要七到四个钟头就能够看完。而一旦是科学普及类书籍,大概要的日子进而长一些,不过在接到里面知识的频率上,也比以前有了较大的提拔。

2.选书的时候有了和谐的业内,在此之前看的书,大约都以仇人推荐(很少),大概看豆瓣评分,亚马逊(亚马逊(Amazon))排名榜(这些很不可靠)。可是以往早已足以不靠那么些,选用自身所喜欢的书了。比如阅读自个儿所喜爱的撰稿人在团结的文中推荐的书,王小波(wáng xiǎo bō )在本人的文中平常提到Russell、杜Russ、王道乾、小说家查良铮……读鲁斯ell的书,又足以领会到全部艺术学史的脉络,亚里士多德、笛Carl、康德、黑格尔、叔本华、维特根Stan那一个人的写作自然也就显现出来;又可能看出版社,新疆师范高校出版社的理想国种类,基本都以人文社会科学类的图书。中国国际信资集团出版社,则大多都以金融和理工类的海外作品。译林出版社,有海外众多军事学名著的翻译……

3.可以写出越多的文字,杜拾遗说:读书破万卷,下笔如有神。从前认为那类肺腑之言有夸张的猜疑,今后觉得是一些也不虚啊!近期的自作者,自然达不到【破万卷】的品位,不过在写作方面,比之在此之前确实有了进步。之前每当灵感来的时候(很少),三次性下笔两2000字,满面红光淋漓。然而没有灵感了,就怎么着也写不出去了。现在本来分化,写字那件事,很多时候是滴水穿石的功力大于灵感,从五个月前决定开端百折不回写小说之后,今后早就写了邻近伍仟0字了。文字的表达能力,尽管将来总的来说还很稚嫩,可是比之以前,也是有提升的地方。

上述,是一些从读书中获得的利益。

在笔者读到九十多本到一百本那段之间,作者发生了一种厌书的心怀,无论怎样都不能再安安静静的看下一本书去。作者觉得很想获得,也很惶恐,深怕自身连着唯一能被人称作【优点】的事物都毁灭不见了。后来看了一篇小说,里面有诸如此类一段话:

叔本华说:“读书时,我在代大家考虑,大家只是在追寻着他的笔触,好像贰个习字的学习者在依着先生的笔迹描画。”因而,他说:“读书时,大家的心血实际成为外人的思辨的球馆了。所以读书甚多或差不离整天读书的人,固然可藉此以逸待劳,休养精神,”不过却会“稳步丧失自行思想的能力,犹如时常骑马的人毕竟会错过步行的力量同样。”

读完了那段话,出现转机。终于精通了上下一心的盲点在何地。在看书的时候,跟着作者走向什么地方,本身就走向哪儿,却贫乏了协调的思索。因而之后,才起来控制天天无论多少,都要写一些和谐的事物,能够清理自身的思绪,同时也能把本人思考中那几个模糊的地方弄明白。

设若您看了本身事先介绍的那几篇二零一九年读书的书的小说,可能就会发现,今年所读的书都相比乱。一本散文、一本科学普及类书籍、一自身文书籍、一本历史书籍,基本上是得到了哪本喜欢的就看哪本,没有一个系统。那样纵然相比较便于满意本身看书的欲望,然则所获取的事物,却也不曾设想中的多。

于是笔者打算,从明年(后天)开头,全体规划本人的翻阅陈设,举行【核心阅读】。所谓【宗旨阅读】,便是围绕着某二个方面包车型客车文化读多本书。譬如二〇一六年作者打算围绕着【写作】那么些话题展开大旨阅读,所打算阅读的书目都记录在了二〇一四年阅读清单(写作类)本条豆列里。

事实上读书,并不是何其厉害的事务,无论是【世间唯有读书高】也好,【一无所能是学子】也罢,都有科学与不足的地点。有的人通过运动获得欢愉,有人打游戏得到满足、有人和外人调换能够心满意足,其实和阅读一样,都是让自身在人世获得希望与甜美的办法而已。

也愿你在接下去新的一年里,能够享有获得希望与幸福的不二法门。

Leave a Comment.