一、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与金融应用概述的更多相关文章

  1. LinkedIn高级分析师王益:大数据时代的理想主义和现实主义(图灵访谈)

    转自:http://www.ituring.com.cn/article/75445 王益,LinkedIn高级分析师.他曾在腾讯担任广告算法和策略的技术总监,在此期间他发明了并行机器学习系统“孔雀” ...

  2. 移动大数据时代最IN编程语言必读书单

    移动大数据时代最IN编程语言必读书单 这是一个快速更迭,快鱼吃慢鱼的时代.从IT 时代演变成 DT 时代,再到现在的智能时代.急速革新的各种新技术.新工具.新平台,需要程序员掌握良好的编程思想和学习方 ...

  3. 看大数据时代下的IT架构(1)业界消息队列对比

    一.MQ(Message Queue) 即 消息队列,一般用于应用系统解耦.消息异步分发,能够提高系统吞吐量.MQ的产品有很多,有开源的,也有闭源,比如ZeroMQ.RabbitMQ. ActiveM ...

  4. 大数据时代的IT架构设计

    大数据时代的IT架构设计(来自互联网.银行等领域的一线架构师先进经验分享) IT架构设计研究组 编著   ISBN 978-7-121-22605-2 2014年4月出版 定价:49.00元 208页 ...

  5. 柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装、配置与监控

    柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装.配置与监控 一.安装 1.安装Erlang 1)系统编译环境(这里采用linux/unix 环境) ① 安装环境 虚拟机:VMw ...

  6. 2016中国大数据技术大会( BDTC ) 共商大数据时代发展之计

    中国大数据技术大会(BDTC)的前身是Hadoop中国云计算大会(HadoopinChina,HiC).从2008年仅60余人参加的技术沙龙发展到当下数千人的技术盛宴,目前已成为国内最具影响力.规模最 ...

  7. 大数据时代,银行BI应用的方案探讨

    大数据被誉为21世纪发展创造的新动力,BI(商业智能)成为当下最热门的数据应用方案.据资料显示:当前中国大数据IT投资最高的为五个行业中,互联网最高.其次是电信.金融.政府和医疗.而在金融行业中,银行 ...

  8. ECharts – 大数据时代,重新定义数据图表

    ECharts 基于 Canvas 的纯 Javascript 图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值域漫游等特性大大增强了用户体验,赋予了用户对 ...

  9. (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 决策树分析算法)

    随着大数据时代的到来,数据挖掘的重要性就变得显而易见,几种作为最低层的简单的数据挖掘算法,现在利用微软数据案例库做一个简要总结. 应用场景介绍 其实数据挖掘应用的场景无处不在,很多的环境都会应用到数据 ...

  10. 新书发布《大数据时代的IT架构设计》

    <大数据时代的IT架构设计>以大数据时代为背景,邀请著名企业中的一线架构师,结合工作中的实际案例展开与架构相关的讨论.<大数据时代的IT架构设计>作者来自互联网.教育.传统行业 ...

随机推荐

  1. RHEL6/7 x86_64下cachefilesd占用cpu达到100%

    昨天,有个测试环境cachedfilesd CPU 100%,一直在跑了挺久,经查 1. CacheFiles介绍NFS是一种经常使用到的网络共享文件系统,在分布式环境下,多台服务器的文件共享是一个问 ...

  2. face_recognition 基础接口

    face_recognition 基础接口 face_recognition使用世界上最简单的人脸识别库,在Python或命令行中识别和操作人脸. 使用dlib最先进的人脸识别技术构建而成,并具有深度 ...

  3. aircrack-ng后台跑包, 成功后自动发送邮件通知

    我的思路是直接用nohup守护进程输出结构到指定文件, 然后判断文件中"KEY FOUND"的字段. 启动aircrack-ng方式 nohup aircrack-ng -w /o ...

  4. opencv学习之路(9)、对比度亮度调整与通道分离

    一.对比度亮度调整 #include<opencv2/opencv.hpp> using namespace cv; #define WIN_NAME "输出图像" M ...

  5. (6CBIR模拟问题)自己动手,编写神经网络程序,解决Mnist问题,并网络化部署

    个方面: 最初的图像检索研究主要集中在如何选择合适的全局特征去描述图像内容和采用什么样的相似性度量方法进行图像匹配. 第二个研究热点是基于区域的图像检索方法,其主要思想是图像分割技术提取出图像中的物体 ...

  6. 定制FileField中的上传文件名称

    FileField中的upload_to属性可以设定上传文件的存储目录和名称,它可以是个字符串,也可以是个callable,比如一个方法. 当upload_to的值设为一个方法时,就可以对上传文件的名 ...

  7. Django模版语言的复用 1. include标签--模版导入 2.inclusion_tag自定义标签--模版导入 3.母版

    include标签--模版导入 ''' 前提:项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的 如何运用:可以将多个样式标签的集合进行封装,对外提供版块的名字( ...

  8. Oracle使用——oracle用户相关操作

    前提 以dba角色登录数据库(普通用户没有操作权限):sqlplus / as sysdba 具体操作 创建用户 创建用户 使用默认表空间创建用户 create user xzgxh identifi ...

  9. Bootstrap3基础 nav 便签页(横版、竖版)

      内容 参数   OS   Windows 10 x64   browser   Firefox 65.0.2   framework     Bootstrap 3.3.7   editor    ...

  10. yum命令showduplicates安装指定版本包

    默认情况下,我们用yum list 或者 yum install 的时候,yum会默认选择最新的版本. 如果我们需要安装指定版本的某个软件包,以使之能够和我们现有环境的软件包版本匹配,那么就需要用到s ...