大数据时代的Python金融应用-Day1-Python与金融应用概述
一、Python语言的主要特征
1、开源性
  Python和大多数的支撑库和工具都是开源的,通常可以非常灵活的使用而且有开放的协议。
  2、解释性
  也可以使用Cpython完成将解释性语言转化为实施可执行的Python二进制代码的应用
  3、多框架
  Python语言支持不同的编程与实现框架,例如面向对象、和必要的函数型或过程化编程。
  4、多目的
  Python可以用于快速的、交互式的代码开发以及建构大型应用系统,它也可以用于底层系统操作以及高级分析的任务。
二、Python的科学计算库
  NumPy: 提供了多维数组对象保存同质或异质的数据,它还提供了处理这个数组对象的优化函数/方法。
  SciPy:包含一系列子库和函数来完成科学和金融领域的重要标准功能,比如三维曲线插值以及数值积分。
  Matplotlib:这是Python最为流行的绘图和可视化库,提供了2D和3D的绘图功能。
  PyTables:是流行的HDF5数据存储库,这个库可以完成基于有层次的数据库和文件格式的优化的,以磁盘为基础的IO操作。
  Pandas:pandas基于NumPy来创建,提供了管理和分析时间序列以及表格数据的丰富的类;它与matplotlib库紧密结合提供了绘图功能,和PyTables类结合提供了数据读取功能。
三、Python 用于技术分析
基于历史价格信息的技术分析对于金融从业者和其他相关方而言是一项典型的工作。
在下面的介绍中,我们关注的是为了回测的目的而研究过去的市场数据,而不是特别的关注预测未来的价格波动。我们研究的目标是基准指数S&P500,这通常被看作是美国股票整体市场变化的一项好的代理指标。这是因为指数包含大量的股票范围而且代表了市值的大部分。它还拥有大量具有流动性的期货和期权市场。
我们将从网络资源中读入历史指数信息,并完成一项基于趋势信号的交易系统的回测。首先我们需要读入数据,使用的是pandas库。具体来说,我们使用pandas.io.data中的DataReader函数来获得金融时间序列数据。同时,这段代码还会随Timestamp对象生成一个时间指数。
通过作图来简要的看一下数据,代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt #在pycharm软件中,直接调用plot()方法并不会直接弹出图片,需要引用这个库再调用这个库下的方法,才会画图。
from pandas_datareader import data as web #原来处于pandas.io.data的内容已经被移动到新的模块中,先安装新包 pandas_datareader,再引用data。
sp500 = web.DataReader('^GSPC',data_source='yahoo',start='1/1/2000',end='4/14/2014')#实例化data模块下的DataReader类,^GSPC为标普500代码,yahoo为数据来源,start为开始时间,end为接收的结束时间。
sp500.info() #查看接收的标普500的数据。
sp500['Close'].plot(grid=True,figsize=(8,5))#以收盘价为基准,画图,有网格,图形大小是(8,5)
sp500['42d']=np.round(pd.rolling_mean(sp500['Close'],window=42),2)#新建立一个key为42d的键值对,值为42天MA,pd.rolling_mean是调用pd下的移动平均方法,把sp500的收盘价和时间窗口42天,传给移动平均函数,最外层套上np.round()取几位小数的函数。
sp500['252d']=np.round(pd.rolling_mean(sp500['Close'],window=252),2)#同上
sp500[['Close','42d','252d']].tail()#取收盘价、42MA、252MA的尾数
未完待续。。。
这里我们要实现的趋势策略是基于两个月(或42天)以及一年(即252天)的趋势(即,对应时期的指数水平的移动平均)。pandas会较为有效的生成对应的时间序列并且可以将趋势序列与原始序列表达在同一副图中。
我们首先在pandas DataFrame对象中加入新的两列,分别代表趋势。这样数据会有所减少。接着对新的带有趋势数据的数据图进行绘制。
未完待续。。。
PS:本来想学习 北风网 的《Python金融业大数据挖掘分析-Python2.7》,顺便写读书笔记/博客的。但是学了一天发现,这个教程录制于15年底16年初,课程上面所调用的多种库和python版本都有些过时,并且最近学习目标是python数据分析中各种库(Numpy,pandas等)的用法,所以暂时放弃学习该系列课程,转而学习更加新版的课程,这个系列的文章暂时不更新了,以后如果有项目需要再重新学起来,2017-11-21 17:04。
大数据时代的Python金融应用-Day1-Python与金融应用概述的更多相关文章
- LinkedIn高级分析师王益:大数据时代的理想主义和现实主义(图灵访谈)
		
转自:http://www.ituring.com.cn/article/75445 王益,LinkedIn高级分析师.他曾在腾讯担任广告算法和策略的技术总监,在此期间他发明了并行机器学习系统“孔雀” ...
 - 移动大数据时代最IN编程语言必读书单
		
移动大数据时代最IN编程语言必读书单 这是一个快速更迭,快鱼吃慢鱼的时代.从IT 时代演变成 DT 时代,再到现在的智能时代.急速革新的各种新技术.新工具.新平台,需要程序员掌握良好的编程思想和学习方 ...
 - 看大数据时代下的IT架构(1)业界消息队列对比
		
一.MQ(Message Queue) 即 消息队列,一般用于应用系统解耦.消息异步分发,能够提高系统吞吐量.MQ的产品有很多,有开源的,也有闭源,比如ZeroMQ.RabbitMQ. ActiveM ...
 - 大数据时代的IT架构设计
		
大数据时代的IT架构设计(来自互联网.银行等领域的一线架构师先进经验分享) IT架构设计研究组 编著 ISBN 978-7-121-22605-2 2014年4月出版 定价:49.00元 208页 ...
 - 柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装、配置与监控
		
柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装.配置与监控 一.安装 1.安装Erlang 1)系统编译环境(这里采用linux/unix 环境) ① 安装环境 虚拟机:VMw ...
 - 2016中国大数据技术大会( BDTC ) 共商大数据时代发展之计
		
中国大数据技术大会(BDTC)的前身是Hadoop中国云计算大会(HadoopinChina,HiC).从2008年仅60余人参加的技术沙龙发展到当下数千人的技术盛宴,目前已成为国内最具影响力.规模最 ...
 - 大数据时代,银行BI应用的方案探讨
		
大数据被誉为21世纪发展创造的新动力,BI(商业智能)成为当下最热门的数据应用方案.据资料显示:当前中国大数据IT投资最高的为五个行业中,互联网最高.其次是电信.金融.政府和医疗.而在金融行业中,银行 ...
 - ECharts  – 大数据时代,重新定义数据图表
		
ECharts 基于 Canvas 的纯 Javascript 图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值域漫游等特性大大增强了用户体验,赋予了用户对 ...
 - (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 决策树分析算法)
		
随着大数据时代的到来,数据挖掘的重要性就变得显而易见,几种作为最低层的简单的数据挖掘算法,现在利用微软数据案例库做一个简要总结. 应用场景介绍 其实数据挖掘应用的场景无处不在,很多的环境都会应用到数据 ...
 - 新书发布《大数据时代的IT架构设计》
		
<大数据时代的IT架构设计>以大数据时代为背景,邀请著名企业中的一线架构师,结合工作中的实际案例展开与架构相关的讨论.<大数据时代的IT架构设计>作者来自互联网.教育.传统行业 ...
 
随机推荐
- mysql添加Federated引擎问题
			
现在我有这么一个需求, 就是有两个项目, 一个叫项目A,一个项目B, 由于A的用户表和B的用户表是要实现一样的. 例如: 我在A项目中注册了,要实现在B项目中也能登录, 当用到B的时候, 由于B数据库 ...
 - [Errno 2] No such file or directory
			
Centos7.5 执行ansible命令报错 问题: [root@m01 ~]# ansible servers -a "hostname|grep web" -i ./host ...
 - django基础 -- 3. urls.py   view.py  参数  别名   重定向   常用方法  静态文件
			
一.基本格式 from django.conf.urls import url from . import views #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数 ...
 - 打造性感好用的 VS Code 编辑器
			
官网: https://code.visualstudio.com/ Blog链接:打造性感好用的VS Code编辑器 主命令框 F1或Ctrl+Shift+P: 打开命令面板.在打开的输入框内,可以 ...
 - luogu P2713 罗马游戏
			
思路 模拟就好 左偏树合并 并查集寻找 代码 #include <bits/stdc++.h> #define FOR(i,a,b) for(int i=a;i<=b;++i) us ...
 - 题解——洛谷P3128 [USACO15DEC]最大流Max Flow
			
裸的树上差分 因为要求点权所以在点上差分即可 #include <cstdio> #include <algorithm> #include <cstring> u ...
 - (转) AI突破性论文及代码实现汇总
			
本文转自:https://zhuanlan.zhihu.com/p/25191377 AI突破性论文及代码实现汇总 极视角 · 2 天前 What Can AI Do For You? “The bu ...
 - Unity3D学习笔记(三十五):Shader着色器(2)- 顶点片元着色器
			
Alpha测试 AlphaTest Great:大于 AlphaTest Less:小于 AlphaTest Equal:等于 AlphaTest GEqual:大于等于 AlphaTest LEqu ...
 - 【转载】ASP.NET页面之间传值的方式之QueryString(个人整理)
			
转自: https://www.cnblogs.com/kudsu/p/7694637.html QueryString Querystring也叫查询字符串,这种页面间传递数据是利用网页地址URL. ...
 - 授权oAuth
			
使用Client Credentials Grant授权方式给客户端发放access token 只验证客户端(Client),不验证用户(Resource Owner),只要客户端通过验证就发acc ...