python量化开发1|在python中操作Oracle数据库

今天是2017.1.5r。

实习的第三天,经过前两天的迷之迷茫,今天开始去了解一点东西了。

带自己的人发来的资料里有三部分:
1、量化投资全貌的了解;
2、公司财务相关知识,主要是从基本面进行分析,用于中长线(季度、年度报表)的分析;
3、交易员量价实战技巧(主要是针对日交易行情数据去利用技术指标进行分析),用于短线分析。

关于长线和短线的数据,分别对应公司财务数据和行情数据,这两部分数据在公司购买的聚源数据库里均有,当然可以分析的数据不止聚源数据库一个,比如Wind里面的数据也是比较权威的,但多少都大同小异,主要还是看怎样去利用这些数据,挖掘其中的价值。


前期需要对数据进行处理和准备,所以要熟悉python中如何连接oracle数据库,这里简单做一下记录。

因为用的是自己的电脑,数据库访问权限开通有点麻烦,所以以下的软件都是通过连接远程桌面直接安装在服务器上的。
1、连接远程桌面,cmd中输入:mstsc
2、安装软件版本:pycharm(不限版本)+anaconda2.4,先把这两个安装好
3、再安装连接oracle的库cx_Oracle,直接先下载cx_Oracle库后安装

4、在pycharm中输入import cx_Oracle,看是否提示错误,若无则表示安装正常

接下来就是跟之前连接mysql数据库一样,开始使用语句去连接数据库了。

cx_Oracle.connect("用户名 /  密码@ Oracle服务器IP  /  Oracle的SERVICE_NAME")

import cx_Oracle #引用模块        
cx_Oracleconn=cx_Oracle.connect('load/123456@localhost/ora11g') #连接数据库
c=conn.cursor() #获取cursor
x=c.execute('select * from table') #使用cursor进行各种操作    
for result in x:
    print result
c.close() #关闭cursor
conn.close() #关闭连接

在python中操作时可能会出现这个问题:
cx_Oracle.InterfaceError:unable to acquire envirnoment handle
此时解决办法如下:
1、下载一个64位的oracle_client并安装
2、将 client安装目录下instantclient中所有的.dll文件全部copy到anaconda安装目录下的site-packages下,然后重启pycharm就可以运行正常了。

更多详细使用cx_Oracle库操作Oracle的语法可以参考这篇文章:(http://blog.csdn.net/my2010sam/article/details/20724001


此外,做策略投资开发经常还用到的一些库如下:
1 pip install tushare #通联数据的免费数据接口

2 pip install pyalgotrade #策略回撤框架

3 pip install ta-lib #技术指标库 需要安装提取安装 Microsoft Visual C++ Compiler for Python 2.7
或则 从http://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib 下载 TA_Lib-0.4.10-cp27-cp27m-win_amd64.whl
然后 到下载目录 运行 pip install TA_Lib-0.4.10-cp27-cp27m-win_amd64.whl

pip install pymssql #访问SqlServer的包

pip install cx_Oracle #访问oracle的包

pip install sqlalchemy #数据库访问包

conda install pymongo #mongodb

推荐阅读更多精彩内容