一、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. 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂) v阅读目录

    1楼留头头大神:http://www.cnblogs.com/toutou/p/4899388.html   v阅读目录 v写在前面 v简单工厂模式 v工厂方法模式 v抽象工厂模式 v博客总结 v博客 ...

  3. Android之扫描文件或文件夹

    我们或许经常会遇到这种情况,明明保存了图片,但是当你打开图片时,却没有找到这张图片,手机重启之后才能看到.这是因为SD卡并没有重新挂载,图库也无法把这张图片加载进去,解决这个问题非常简单,只需要我们重 ...

  4. 为什么call比apply快

    这是一个非常有意思的问题. 在看源码的过程中,总会遇到这样的写法: var triggerEvents = function(events, args) { var ev, i = -1, l = e ...

  5. Codeforces 437D The Child and Zoo - 树分治 - 贪心 - 并查集 - 最大生成树

    Of course our child likes walking in a zoo. The zoo has n areas, that are numbered from 1 to n. The ...

  6. Codeforces 772A Voltage Keepsake - 二分答案

    You have n devices that you want to use simultaneously. The i-th device uses ai units of power per s ...

  7. 【python38--面向对象继承】

    一.继承 1.语法:class DerivedClassName(BaseClassName):子类继承父类 >>> class Parent: def hello(self): p ...

  8. ODAC(V9.5.15) 学习笔记(三)TOraSession(4)

    4. 数据库信息 名称 类型 说明 GetDatabaseNames 获取对应的数据库对象名称列表 GetSequenceNames GetStoredProcNames GetTableNames ...

  9. uniGUI试用笔记(十一)

    最近研究了一下UniGUI的TuniDBGrid,记录一下免得忘记了. TuniDBGrid的重要属性包括: 1.列—TUniDBGridColumns和TUniDBGridColumn 每个列对象( ...

  10. Python常用库之functools

    functools 是python2.5被引人的,一些工具函数放在此包里. python2.7中 python3.6中 import functools print(dir(functools)) [ ...