美文网首页其他程序员生活不易 我用python
python量化开发1|在python中操作Oracle数据库

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

作者: 是蓝先生 | 来源:发表于2017-01-05 15:21 被阅读406次

    今天是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

    相关文章

      网友评论

      • A_Doraemon:想问楼主在实习过程中,Spark和Hadoop是必须要掌握的吗?想知道国企的数据分析工作、互联网的数据分析工作、金融行业的数据分析工作,对数据库要求掌握的程度大概是什么样子呢?
        我现在研一~~,很迷茫:(
        A_Doraemon:@是蓝先生 非常感谢~~:smile: :smile:
        是蓝先生:@A_Doraemon 不是必须的,但是数据库和会使用python还是很重要的,你现在研一时间还有很多,最重要的是找好方向,然后再根据这些方向的要求去补充自己的技能
      • 志明S:楼主在哪实习呢
        是蓝先生:@亻仑 嗯是的
        亻仑:楼主在广州吗?
        是蓝先生:@志明S 在一家信托公司

      本文标题:python量化开发1|在python中操作Oracle数据库

      本文链接:https://www.haomeiwen.com/subject/ootzvttx.html