Python量化教程:不得不学的k线“代码复制可用”

k线图(蜡烛图)无论对于量化分析师还是普通投资者,都是一个经典而重要的工具。在k线图中会画出每天的最高价、最低价、开盘价和收盘价,对我们了解股票走势和每天的多空对比非常有帮助。

一般来说,我们会从各大券商平台获取k线图,但这种情况下获取的k线图往往不够灵活,不能适应复杂多变的生产需求。因此,我们有必要学习如何用Python绘制k线图。

需要注意的是,mpl_finance是原来的matplotlib.finance,现在是独立的(而且好像没人维护更新),我们会用它提供的方法来画k线图;Tushare是一个用于在线获取股票数据的库;matplotlib.ticker中有一个FuncFormatter()方法可以帮助我们调整坐标轴;Matplotlib.pylab.date2num可以帮助我们转换日期数据。

我们以上证指数9月65438+2008以来的行情为例。

先用mpl_finance画一下,看看是否一切正常。

如你所见,所有的节假日,包括周末,都会在这里显示为空白,这对我们图形的连续性非常不友好,所以我们必须把它们去掉。

如你所见,空白问题完美解决,在此说明一下。因为matplotlib会把日期数据理解为连续数据,而连续数据之间的间隔是有意义的,所以即使非交易日没有数据,仍然会反映在坐标轴上。连续多少个非交易日对应坐标轴上多少个小方块,但这些小方块上方没有对应的蜡烛图。

知道了它的原理,我们才能对症下药。我们可以把连续的、固定区间的数据传入横坐标(日期),保证k线图的绘制首先是连续的;然后用正确的日期数据生成一个列表。接下来我们就可以根据坐标轴上的数据得到对应的正确日期,用坐标轴上的标签代替。

上面的format_date函数就是为了这个目的。由于我们已经为日期列生成了从0开始的连续数据,所以我们可以直接使用它作为索引来从实际日期列表中获取相应的数据。这里我们将使用matplotlib . ticker . func formatter()方法,它允许我们指定一个函数来格式化坐标轴标签。在这个函数中,我们需要接受坐标轴的值和位置,并返回自定义标签。

你学会了吗?

当然,一张完整的k线图并没有到此结束。后面会考虑加入均线、成交量等元素。欢迎感兴趣的同学关注!