正文
折线图是很不错,但是每个日期都至少包含四个变量(开盘价、最高价、最低价、收盘价),我们希望有一些可视化的方法能够同时展示这四个变量,而不是简单地画四条折线。金融数据通常以日本蜡烛图(即K线图)的形式绘制,这种图表最早在18世纪由日本米市商人命名。matplotlib可以绘制这样的图表,但操作起来比较复杂。
我实现了一个函数,你可以更容易地在pandas数据框架中创建蜡烛图,并使用它绘制我们的股票数据。(代码基于这个例子,你可以在这里找到相关函数的文档)
在蜡烛图中,黑色蜡烛表示交易日当天收盘价高于开盘价(盈利),而红色蜡烛表示交易日当天开盘价高于收盘价(亏损)。烛芯表示最高价与最低价,蜡烛体则表示开盘价与收盘价(颜色用来区分哪一侧为开盘价,哪一侧为收盘价)。蜡烛图在金融领域很受欢迎,根据图表中蜡烛的形状、颜色以及位置,技术分析中的一些策略可以使用它来制定交易策略。但在这里我不会介绍有关这类策略的内容。
我们可能希望在同一张图表中绘制多个金融商品的数据;我们可能想要对比股票,将它们与市场进行比较,或者看看其他证券,比如交易所交易基金(ETFs)。之后,我们可能还想看看如何根据一些指标,如移动均线,来绘制金融商品。对于这种情况,你最好使用折线图而不是蜡烛图。(如何将多个蜡烛图相互叠加在一起而不使图表混乱?)
在下面的代码中,我获取了一些其他科技公司的股票数据,并把它们的调整收盘价格绘制在了一起。
这张图有什么问题?尽管绝对价格很重要(昂贵的股票很难购买,这不仅影响着这类股票的价格波动,也影响着你交易这类股票的能力),但是在交易过程中,相比绝对价格,我们更加关心资产的相对变化。谷歌的股票比苹果和微软的股票贵得多,这种差异使得苹果和微软股票的波动看起来比实际情况小得多。
一种解决方案是在绘制图表时使用两种不同的尺度;一种尺度用于苹果和微软的股票,另一种尺度用于谷歌股票。
然而,一个"更好的"解决方案是,仅在图表中绘制我们真正想要的信息:股票的回报。这就需要我们根据需求将数据转换成更有用的形式。这里有几种我们可以应用的转换。
一种方式是考虑股票自利息周期开始以来的回报。换句话说,我们绘制: