多因子选股模型

multifactorial_model文件夹中是目前最完整的。

版本1和2是初级的实现。对数据库进行了多次操作,更多的是考虑功能,性能问题暂时作为次要的。

版本3是改进版本,对原始数据可以实现自动获取、存储、计算衍生指标并存储。除此之外,还可以对数据进行自动清洗,包括缺失数据补全(由于wind对单次数据请求量的的限制,需要多种补全方式),异常值的修正。最后计算某一月末的所有股票的各个指标的t值、correlation相关性系数,并存储到csv文件中。

版本4中会更多的使用pandas和sql语句实现功能,以提高性能。

下面是修正思路:

原先: 所有数据存储到mysql数据中,每次计算新指标时,从数据库中取出、运算、写入数据表中,每一个指标的运算都要重复取出、运算、写入的过程

优点:内存消耗低

缺点: 多次操作数据库,耗时长

修正1:

将数据表的所有数据按照股票代码,分次取出该股票代码对应的从ipodate开始到2016-12-31的所有指标的数据,连续多年的数据如果一次无法取出,那就分年份取出该股票的数据。 最终用pandas的to_sql可以将所有数据存入数据库。

修正2:

加减乘除可以在直接构造sql语句,在mysql里面进行操作。而且对空值,可以用sql语句指定处理方式。SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

运算过程:

从数据表中按照股票代码用pandas的方法从数据表中取出多年的所有数据,用pandas的方法对数据进行运算。所有的衍生指标的计算,缺失值,异常值,标准化的运算和处理直接在内存中进行,最终将得到的dataframe结果用to_sql存入另一个新的数据表中。

优点: 计算速度会加快

缺点: 有潜在的内存耗尽的风险

根据最近的项目,产生的新想法:

Future Work:

利用Spark进行数据清洗、预处理、因子计算、回归检验、策略回测

针对数据存储部分,如果要拓展到海外市场,比如美股、港股等,可以考虑用hbase和hive,对海量数据的操作会比Mysql性能要好。

针对选股策略,可以考虑用尝试Spark MLlib中的机器学习算法。

2018-10-14 补充:

移动平均值等计算

可以采用: (1)pandas的rolling_max, rolling_min, rolling_corr, rolling_std函数

考虑采用PyTables

PyTables是Python与HDF5数据库/文件标准的结合,专门为优化I/O操作的性能,最大限度地利用可用硬件而设计。该库的导入名称为tables。

PyTables数据库可以有许多表,且支持压缩和索引,以及表的重要查询。此外,还可以高效地存储NumPy数组,并且有自己独特的类数组数据结构。

PyTables和pandas都可以处理复杂的类SQL查询,且对操作速度进行了优化。

PyTables提供基于文件的数据库格式,‘一定要记住提交’,SQLite3中commit命令在PyTables中由flush方法实现。

!!!PyTables支持内存外计算,所以可以实现不适合于内存的基于数组的计算。

(在之前的project中很多指标的计算是在内存中基于数组,速度很慢,且自己要处理复杂的滑动窗口等不必要的工作量。回头看去年的project,真是操之过急,没有设计好最佳实现)

2018-11-29 补充:

被xx量化dis程序耗时长后,痛定思痛,准备下面做法:

将代码中涉及for循环处理的地方,统一改成矩阵运算,

当然也怪自己没有及时迭代项目,更改耗时部分的运算方式。

python多因子量化选股模型_GitHub - zhangjinzhi/Wind_Python: 量化开发 多因子选股模型...相关推荐

  1. python均线选股_GitHub - pkujf/Wind_Python: 量化开发 多因子选股模型

    多因子选股模型 multifactorial_model文件夹中是目前最完整的. 版本1和2是初级的实现.对数据库进行了多次操作,更多的是考虑功能,性能问题暂时作为次要的. 版本3是改进版本,对原始数 ...

  2. 量化选股——基于多因子模型的量化策略(第1部分—因子测算策略构建)

    文章目录 1.多因子模型概述 2.因子挖掘 3.多因子策略 4.多因子策略构建 基于多因子的策略通用流程 Fama-French三因子 因子效果测算方法 因子测算结论&量化策略构建 东西有点多 ...

  3. 从零开始学python大数据与量化交易下载_GitHub - mignonwong/Python-100-Days-1: Python - 100天从新手到大师...

    Python - 100天从新手到大师 作者:骆昊 说明:从项目上线到获得8w+星标以来,一直收到反馈说基础部分(前15天的内容)对新手来说是比较困难的,建议有配套视频进行讲解.最近把基础部分的内容重 ...

  4. 从零开始学python大数据与量化交易下载_GitHub - zhaojie1126/Python-100-Days-1: Python - 100天从新手到大师...

    Python - 100天从新手到大师 作者:骆昊 说明:从项目上线到获得8w+星标以来,一直收到反馈说基础部分(前15天的内容)对新手来说是比较困难的,建议有配套视频进行讲解.最近把基础部分的内容重 ...

  5. 从零开始学python大数据与量化交易下载_GitHub - Lid23/Python-100-Days: Python - 100天从新手到大师...

    Python - 100天从新手到大师 作者:骆昊 说明:从项目上线到获得8w+星标以来,一直收到反馈说基础部分(前15天的内容)对新手来说是比较困难的,建议有配套视频进行讲解.最近把基础部分的内容重 ...

  6. list python 转tensor_Tensorflow模型量化4 --pb转tflite(uint8量化)小结

    Tensorflow模型量化4 --pb转tflite小结(uint8量化) 实验环境:tensorflow-gpu1.15+cuda10.0 模型的fp16量化和int8量化我之前有写,参考: 龟龟 ...

  7. python 完整的海龟策略_9海龟策略_python量化交易_Python视频-51CTO学院

    清华编程高手尹成带你基于算法实践python量化交易 量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策 ...

  8. python与算法社区_3社区分类算法_python量化交易_Python视频-51CTO学院

    清华编程高手尹成带你基于算法实践python量化交易 量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策 ...

  9. python量化交易实战 王晓华pdf_Python量化交易实战

    章 走进量化投资 1.1 量化投资的诞生背景 1.2 量化投资的特点 1.3 量化投资的应用 1.4 量化投资在我国股市的发展前景 1.5 小结 第2章 Python的安装与使用 2.1 Python ...

最新文章

  1. java.lang.ThreadLocal实现原理和源码分析
  2. 大数据:Hive和Hbase的区别于优势
  3. HDOJ2072解题报告【字典树】
  4. Effective Dart 文档注释在Flutter项目中的实践
  5. C++中的引用与指针的区别
  6. 2018/12/13
  7. 基于麻雀算法改进的随机森林分类算法 - 附代码
  8. 爱奇艺动态化框架Qigsaw开源!带来极速原生开发体验和更低crash率
  9. ruoyi(若依)框架使用说明(前后端分离)
  10. java键盘代码_java中各种类型的键盘输入代码是什么
  11. 如何让自己的电脑内外网同时用?
  12. 数据中台之血缘篇:Atlas 详解
  13. 从3D ToF到智能座舱系统方案,英飞凌如何赋能未来出行?
  14. 设计32信道的多相滤波结构数字接收机
  15. bns服务器不可用怎么修复,DNS服务器可能不可用怎么办
  16. python普通类实现接口_python3从零学习-5.8.1、socket—底层网络接口
  17. 软考中级考试一般需要准备多长时间?
  18. 计算图片中的物体的实际尺寸的一种方法
  19. 华清远见-重庆中心-JAVA基础阶段技术总结/知识点梳理/个人总结/关于JAVA技术的解析(看法)/面试题解析
  20. 【转】可在广域网部署运行的QQ高仿版 -- GG叽叽(源码)

热门文章

  1. C语言程序——函数(1)
  2. 目标检测模型设计准则 | YOLOv7参考的ELAN模型解读,YOLO系列模型思想的设计源头
  3. 手游推广平台怎么做?
  4. Android 打开网络上pdf文件 1
  5. 使用Python + selenium爬取51Tracking订单信息
  6. mysql中存储gis数据结构_GIS空间数据库的设计
  7. 美图数据分析实习生笔试题
  8. Java基础课程设计-模拟ATM银行管理系统《控制台版本》
  9. (附源码)springboot银行客户管理系统 毕业设计250903
  10. 使用iframe实现视频监控