深度学习量化交易---0.1.股票K线图绘制

究股票交易的基本功就是看K线图,所以在这一节里面,我们的任务就是拿到一支股票的历史数据,我们用python画出其K线图,这是进行下一步技术分析的基础。
我们以上证综指为例,之所以没拿某支股票为例,是因为股票容易被操控,而上证综指很难被操控,因为规律性会更强一些。
我们先来看怎样显示上证综指原始数据,如下所示:

    @staticmethod
    def draw_kline():
        print('绘制股票每日价格K线图')
        raw_datas = pd.read_csv('dataset_2.csv')
        datas = raw_datas.iloc[-30:, 1:]
        print(datas)

在上面的程序中,我们取最新的30条数据,并且去掉第一列(代表股票代码),运行结果如下所示:
在这里插入图片描述
股票的K线图是股市最常用的技术分析手段,拿到股票数据第一项就是研究K线图,所以我们在这里就要先绘制出K线图,在运行下面的代码之前,需要先安装:

pip install mpl_finance

接着我们需要解决在matplotlib中显示中文的问题,首先在windows机器的C盘中查找simhei.ttf文件,将该文件拷贝到下面程序显示的目录中:

import matplotlib
print(matplotlib.matplotlib_fname())

其会显示如下内容:
/home/yantao/dev/tf/tfe/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
这是matplotlib的配置文件路径,我们将simhei.ttf拷贝到/home/yantao/dev/tf/tfe/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/目录下,接着编辑/home/yantao/dev/tf/tfe/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc文件,添加如下内容:

font.family : sans-serif
font.sans-serif : SimHei
axes.unicode_minus : False

接着删除缓存文件:

rm -Rf ~/.cache/matplotlib/

具体代码如下所示:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY, date2num
from mpl_finance import candlestick_ohlc
from pylab import mpl
from datetime import datetime
......
    @staticmethod
    def draw_kline():
        print('绘制股票每日价格K线图')
        raw_datas = pd.read_csv('dataset_2.csv')
        datas = raw_datas.iloc[-30:, 1:]
        datas.date = [date2num( datetime.strptime(date, '%Y/%m/%d') ) for date in datas.date]
        recs = list()
        for i in range(len(datas)):
            recs.append(datas.iloc[i, :])
        ax = plt.subplot()
        mondays = WeekdayLocator(MONDAY)
        weekFormatter = DateFormatter('%y %b %d')
        ax.xaxis.set_major_locator(mondays)
        ax.xaxis.set_minor_locator(DayLocator())
        ax.xaxis.set_major_formatter(weekFormatter)
        plt.rcParams['font.family'] = 'sans-serif'
        plt.rcParams['font.sans-serif'] = ['SimHei']
        plt.rcParams['axes.unicode_minus'] = False
        ax.set_title(u'上证综指kline picture')
        candlestick_ohlc(ax, recs, width=0.7, colorup='r', colordown='g')
        plt.setp(plt.gca().get_xticklabels(), rotation=50, horizontalalignment='center')
        plt.show()

第4、5行:读入原始数据,并去掉第一列(代表股票代码),取最新30条记录;
第6行:修改数据中日期字段,将其变为mpl_finance库需要的数字格式;
第7~9行:准备用于绘制的数据;
具体绘制过程没有太多需要关注的地方,这里需要注意为了让matplotlib显示中文,16~18行进行的相关设置。
运行上面的程序,可以绘制出如下图形:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章