目录

  • 1、数据来源——Wind金融终端
  • 2、数据读取及其基本描述
  • 3、收盘价与成交量关系图
  • 4、收益率曲线
  • 5、K线图
  • 6、移动平均线

1、数据来源——Wind金融终端

在Wind数据库中下载到的宁德时代(代码300750.SZ)从2020-01-03到2021-12-31共485个数据,包括开盘价,最高价,最低价,收盘价以及交易量。
(需要数据进行操作的同学可以在我的资源上下载,由于Wind资讯金融终端不是免费的,而且作为喜欢白嫖的我们,有什么办法得到免费的数据呢,下次找到了一定分享给大家zll[doge])

2、数据读取及其基本描述

import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel('....../300750SZ.xls')

此处注意新版pandas.read_excel()函数并不支持.xlsx文件的读取,因此需要将数据文件类型转化为xls(或者可以用其他库函数,不过我觉得这个办法是最简单的)

df = pd.DataFrame(data)
df.head()

将数据data转化为DataFrame类型,并打印出前五行:

df.describe()    # 对数据进行描述

3、收盘价与成交量关系图

# 超级简单的收盘价曲线图
df['close'].plot()

# 将收盘价与成交量绘制在同一张图上
df[['close','volume']].plot(subplots=True)


基本上我们就可以得到收盘价与成交量之间的关系图了,但是从两张图中来看,其x轴均不是日期,并且成交量一般使用的是柱状图,所以,我们加一点点细节让图变得好看一些。

list_date = list(df['Date'])
df.index = list_dateprice = df['close']
volumes = df['volume']
top = plt.subplot2grid((4,4), (0,0), rowspan=3, colspan=4)
top.plot(price.index, price, label='close')
plt.title('300750.SZ Close Price from 2020-2021')
plt.legend(loc=2)bottom = plt.subplot2grid((4,4), (3,0), rowspan=1, colspan=4)
bottom.bar(volumes.index, volumes)
plt.title('300750.SZ Daily Trading Volume')plt.gcf().set_size_inches(12,8)
plt.subplots_adjust(hspace=0.75)

4、收益率曲线

(>……<)先分享一个笨操作,由于不熟悉pandas的各种常见函数,导致我自己去计算每一天的收益率,有点复杂,可跳过。

from functools import reduce  close_array = np.array(df['close'])
cc_array = [(close1,close2) for close1,close2 in zip(close_array[:-1],close_array[1:])]
change_array = list(map(lambda cc: reduce(lambda a,b:round((b-a)/a,3),cc),cc_array))
df2 = pd.DataFrame(change_array, index=list_date[1:])
df2.cumsum().plot()
plt.legend('Rate of return')


而利用函数之后,就是简简单单的四行:
每日收益率:

daily_changes = df['close'].pct_change(periods=1)
daily_changes.plot()


累加收益率:

df_cumsum = daily_changes.cumsum()
df_cumsum.plot()

5、K线图

%matplotlib inline
import quandl
from mpl_finance import candlestick_ohlc    # 这是一个旧版的,但还可以用,不过会提示用新版的mplfinance,具体操作我还没了解清楚
import matplotlib.pyplot as plt
import matplotlib.dates as mdatesdf['Date'] = df.index.map(mdates.date2num)
df_ohlc = df[['Date', 'open','high', 'low', 'close']]
figure, ax = plt.subplots(figsize = (24,12))
formatter = mdates.DateFormatter('%Y-%m-%d')
ax.xaxis.set_major_formatter(formatter)
candlestick_ohlc(ax, df_ohlc.values, width=0.8,colorup='red',colordown='green')
plt.show()


由于时间跨度太大导致图像不清晰,我又重新做了一个一个月的K线图:

df_1m = df.loc['2021-03-01':'2021-03-31',:]
df_1m['Date'] = df_1m.index.map(mdates.date2num)
df_1m_ohlc = df_1m[['Date', 'open','high', 'low', 'close']]
figure, ax = plt.subplots(figsize = (24,12))
formatter = mdates.DateFormatter('%Y-%m-%d')
ax.xaxis.set_major_formatter(formatter)
candlestick_ohlc(ax, df_1m_ohlc.values, width=0.8,colorup='red',colordown='green')
plt.show()

6、移动平均线

df_filled = df.asfreq('D', method='ffill')
df_close = df['close']
s_short = df_close.rolling(window=5, min_periods=5).mean()
s_long = df_close.rolling(window=30, min_periods=30).mean()
df_sma = pd.DataFrame(columns=['short', 'long'])
df_sma['short'] = s_short
df_sma['long'] = s_long
df_sma.plot()


通过5日移动平均线和30日移动平均线的交叉点时间及其股票价格可以发现:如果利用金叉死叉的策略在宁德时代的这只股票上进行买卖收益率还不错,不知道其他的股票怎么样,下次写一个量化交易及回测的项目试试看,如果收益率高的话就躺着赚钱 [不可能,绝对不可能!!!]。

python金融数据分析及可视化相关推荐

  1. python金融数据分析和可视化--02_04将股票数据存到sqlite数据库中

    02_04将股票数据存到sqlite数据库中 1. 建立连接 通过SQLAlchemy中的create_engine()函数连接数据库 from sqlalchemy import create_en ...

  2. Python金融数据分析入门到实战-视频课程

    大家好!很荣幸能够在CSDN上和各位同学分享这门课程. 本课程的核心为Python金融数据的分析,首先课程提取了数据分析工具NumPy.Pandas及可视化工具Matplotlib的关键点进行详细讲解 ...

  3. Python爬虫+数据分析+数据可视化(分析《雪中悍刀行》弹幕)

    Python爬虫+数据分析+数据可视化(分析<雪中悍刀行>弹幕) 哔哔一下 爬虫部分 代码部分 效果展示 数据可视化 代码展示 效果展示 视频讲解 福利环节 哔哔一下 雪中悍刀行兄弟们都看 ...

  4. python(数据分析与可视化)六

    python(数据分析与可视化)六 爬虫与数据库连接 1.估算评论情感分数 把评论数据从数据库拿出,走停止词过滤,统计出现的积极词汇和消极词汇的个数. 假定 用户满意分数:(积极词汇个数1 - 消极词 ...

  5. 基于python的可视化分析_基于Python 的数据分析与可视化平台研究

    基于 Python 的数据分析与可视化平台研究 宋永生 ; 黄蓉美 ; 王军 [期刊名称] <现代信息科技> [年 ( 卷 ), 期] 2019(003)021 [摘要] 数据分析与可视化 ...

  6. python金融分析试题_知到《Python金融数据分析》章节答案

    知到<Python金融数据分析>章节答案 商务谈判的有哪些特征? 答:合作性 互助性 不平等性 公平性 矛盾性 党章分为总纲和条文两部分.条文部分共章条 答:11,55 陶渊明是中国文学史 ...

  7. python(数据分析与可视化)二

    python(数据分析与可视化)二 爬取网页内容的前期技术储备 1.pip包管理 (1)内置库 包/库:别人写好的代码,直接引用,加快开发效率. 内置包:python解释器内置常用功能库. – 解释器 ...

  8. python金融数据分析

    python金融数据分析 基金数据分析:https://github.com/memsploitable/foundsDataAnalysis.git 股票数据分析: 大行情数据分析:https:// ...

  9. python金融数据分析电子版_python 金融大数据分析 pdf

    书籍:Python金融大数据分析 Python for Finance_ Mastering Data-Driven Finance 2nd - 2019.pdf 简介 金融业最近以极高的速度采用了P ...

最新文章

  1. MyBatis实体属性与表的字段不对应的解决方案
  2. Hibernate配置文件,省的到处找了
  3. 计算机用户删除 cmd,用命令行删XP中的用户。除administrator外
  4. linux识别fat16还是32,FAT16 、FAT32 、NTFS、LINUX区别.doc
  5. out类型参数的讲解
  6. mastercam加工报表生成_2020北京加工中心编程培训工厂教学行业
  7. php 计算上个月,如何使用PHP计算上一个月的今天
  8. pythoncv2模块详细介绍_【Opencv】【Python】Python中opencv模块cv2一些函数用法及简介...
  9. SolidWorks零件改名后与工程图关联教程
  10. 计算机广告制作介绍,计算机广告制作.ppt
  11. ESD 静电标准分类
  12. 怎么电脑计算机管理员去掉,电脑每次运行程序都要管理员身份怎么办?
  13. Outlook 2007对于不同(Gmail.Sina.Sohu.126.163.Yahoo.Hotmail)Email账号设置
  14. mysql多张表join_mysql多表联查join优化之 straight_join
  15. c++自学笔记第五次
  16. Google 在遗忘权下删除了超过 17 万链接
  17. 十一、BDB ManyToMany
  18. coding-summaries
  19. autocad2014点击保存闪退_AutoCAD2014闪退的原因和解决方法 一打开就闪退怎么办
  20. 名悦集团:汽车冬季保养小知识

热门文章

  1. 计算机师范专业行业分析,前景最好的4个师范专业,有行业“香馍馍”之称,别不信...
  2. 这个 api 管理工具悄悄开源了,快来看看
  3. 幂法求矩阵的最大特征值和对应特征向量
  4. 摆渡服务器装什么系统,昆明证券数据摆渡平台
  5. android sqlite 分词,sqlite fts3自定义分词器 zz
  6. ar军事作战数字三维仿真沙盘开发
  7. PPT如何在投影不显示放映备注,在电脑上可以显示备注
  8. vue项目echarts通过cdn或npm引入
  9. 基于龙格-库塔法Runge-Kutta的常微分方程的求解matlab仿真
  10. 如何在3dMax中创建雪地场景?