python可视化数据分析-python 可视化数据分析

导入必要的模块

首先,我们导入numpy、pandas和用于作图的matplotlib库:

1811842-20200603194741915-680721243.png

从雅虎财经获取特斯拉、通用和福特的每日收盘价数据

1811842-20200603194843249-1749541518.png

1811842-20200603194855907-1525497961.png

可视化数据,并对有趣的事件进行可视化检查,并画蜡烛图

在同一张图中画出特斯拉、通用和福特股票的开盘价曲线:

1811842-20200603195004349-379358277.png

每支股票的最大成交量是发生在哪一天?

1811842-20200603195014193-1708866.png

从开盘价格的时间序列可视化来看,似乎特斯拉的股价一直都要比通用和福特的股价更有高。但至于为什么特斯拉的股价一直高于其他两支股票,这个问题的答案不是单由股价决定,我们还需要考虑公司的总市值。尽管我们目前的数据并没有关于目前股票总单位的信息。但是,我们可以做一个简单的计算,在这里我们假设总的交易金额将是成交量列乘以开盘价格。这只是对市值的粗略估计而不是真实的市场价值,我们只是使用时间序列来直观地表示交易的总金额。(例如,100股,每股10美元,而100000股,每股1美元)

为每个dataframe创建一个名为"总交易量”新的一列,即开盘价格与成交量的乘积。

1811842-20200603195034737-1713060910.png

从上图可以看出:在2018年初,特斯拉交易了巨额资金。我们很自然的想知道那是什么日子,发生了什么事:

1811842-20200603195058993-405873862.png

特斯拉股价暴涨10%,此前埃隆?马斯克(Elon Musk)在推特上发布了一条关于特斯拉私有化的消息,令市场震惊,特斯拉股价在停牌一个多小时后飙升逾10%。马斯克发布了一系列推文,称可能以每股420美元的价格将公司私有化。

接下来,我们画出一些移动平均线(MA):分别为通用股票的50日均线(MA50)和200日均线(MA200)。

1811842-20200603195114920-226350978.png

为了探寻这三支股票之间的关系,我们使用pandas.plotting库中的scatter_matrix函数来创建三支股票收盘价的散点矩阵图。将列重新排列为新的单个股票的收盘价格。

1811842-20200603195133020-423709393.png

1811842-20200603195139704-130966629.png

接下来,我们来绘制福特的蜡烛图:

1811842-20200603195154036-1797112254.png

1811842-20200603195204556-53201782.png

通过计算和比较每日收益来进行基本财务分析,并绘制每支股票的每日收益分布图来识别三者之间的关系。

每日百分比变化可以通过下面的公式计算所得:

1811842-20200603195231736-1649796551.png

从"收盘价”列计算收益。

1811842-20200603195245163-190372999.png

1811842-20200603195252008-753491426.png

1811842-20200603195257066-477711868.png

1811842-20200603195302968-1400911162.png

1811842-20200603195312961-912976953.png

1811842-20200603195319708-1061026067.png

同时,我们用一些box plot来比较三支股票的收益范围。

1811842-20200603195333272-2144714976.png

比较股票的日收益:

我们绘制散点矩阵图,以查看每个股票日收益率之间的相关性。

1811842-20200603195345980-1091603938.png

从上面的scatter矩阵图,我们可以看出只有通用和特斯拉回报率关系图和其他4对关系图看起来不一样(其他对关系图为正交,即两支股票回报率没有明显相关性),所以我们可以推断特斯拉和通用确实有某种可能的关系。

1811842-20200603195402640-637351978.png

累计日收益

日收益:日收益是指股票价格相对于前一日的损益。

累积回报:累积回报是相对于投资计算的。如果累计回报超过一,你就是在盈利,否则就是亏损。

累积日收益的公式为:

df[daily_cumulative_return] = ( 1+df[pct_daily_return] ).cumprod()

假设我们从2012年1月3日开始买入这三支股票并一直持有,则我们的累计日均收益为:

1811842-20200603195424198-194256428.png

1811842-20200603195432736-1754195554.png

下面,我们来可视化一下三支股票的累计收益率,可以发现购入特斯拉后,它的价格涨了14倍!

1811842-20200603195452143-422632645.png

以上就是一个简单的python数据分析股票市场的入门项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值