广告:本人的单因子测试视频教程https://edu.csdn.net/course/detail/25572

近一个半月疯狂的接触多因子模型,其中对于单个因子的回测,是最熟的。而对于单个因子,或者叫做signal(这一系列文章后续都这么叫),是多因子模型的基础。当然,如果你认为,世界上没有alpha,那么只要bet style或者industry就可以了,也不需要寻找alpha。

1.我们开始的数据

这一系列的教程,我们将从一个因子开始,最简单的因子,revs10,也就是,十天收益率。这个教程,注重的是整个signal测试的框架,包含两个方面,测试的思路和软件的平台建设,而我们的因子是否好,其实不是我们关注的点。

首先,我们有好多的csv文件,一个文件对应于一个股票的交易行情数据,我们用的是daily的行情数据。

我们有好多csv文件。csv文件有一个好处就是可以增量增加。

随意打开一个csv文件,里面的内容大致如下,当然,这不是必须的,可以增加,也可以减少。注意到,其实这里的openinterest是一个没有用的记录,所有的数值都是0,当然,如果读者需要,那么可以自己加。总而言之,我们需要每个交易日有每个股票的一个记录。首先说明的是,这一系列的教程,由于仅仅是一个教程,所以我们随意选取了50个股票作为我们的选股池,也就是我们的universe,这是出于计算量大小的考虑,毕竟笔者将在自己使用多年的笔记本上完成这一系列的工作。

2.计算因子值

我们的因子叫做revs10,说白了就是十天的收益率的值。

res10(t) = close(t) / close(t - 10) - 100%

公式大概就是上面这样。

我们的所以stock的csv文件存放在price_data这个文件夹下面,所以,我们需要把因子值计算出来,然后再放到这个文件下面,笔者采用的是直接覆盖。

import pandas as pd
univers = ['000156.SZ.csv', '000157.SZ.csv', '000166.SZ.csv', '000333.SZ.csv','000338.SZ.csv', '000402.SZ.csv', '000413.SZ.csv', '000415.SZ.csv','000423.SZ.csv', '000425.SZ.csv', '000503.SZ.csv', '000538.SZ.csv','000540.SZ.csv', '000555.SZ.csv', '000559.SZ.csv', '000568.SZ.csv','000623.SZ.csv', '000625.SZ.csv', '000627.SZ.csv', '000630.SZ.csv','000651.SZ.csv', '000671.SZ.csv', '000686.SZ.csv', '000709.SZ.csv','000712.SZ.csv', '000718.SZ.csv', '000725.SZ.csv', '000728.SZ.csv','000738.SZ.csv', '000750.SZ.csv', '000768.SZ.csv', '000776.SZ.csv','000778.SZ.csv', '000783.SZ.csv', '000792.SZ.csv', '000793.SZ.csv','000800.SZ.csv', '000826.SZ.csv', '000839.SZ.csv', '000858.SZ.csv','000876.SZ.csv', '000895.SZ.csv', '000917.SZ.csv', '000938.SZ.csv','000963.SZ.csv', '000977.SZ.csv', '000983.SZ.csv', '001979.SZ.csv','002007.SZ.csv', '002008.SZ.csv']
# REVS10
for stock_file_name in univers:stock_data = pd.read_csv('./price_data/%s' % stock_file_name, index_col=0, parse_dates=True)stock_data['raw_factor'] = stock_data['close'].rolling(11).apply(lambda x: x[-1] / x[0] - 1)stock_data.dropna(inplace=True)stock_data.to_csv('./price_data/%s' % stock_file_name)

这样,我们就可以把因子值给计算出来。但是,这里存在很多的问题。

1.停牌怎么处理

2.价格数据的复权问题

3.停牌时,所谓的十天收益率的十天怎么定义?包含十个交易日还是,把停牌也计入十天?

这些都是存在争论的问题。对于第二个问题,其实有一个比较曲线救国,避免股票价格复权的问题,就是尽可能用daily return来算。譬如,计算十日收益率,我们不用上面笔者程序里面这样价格的计算方法,而是用十天的return累计相乘。

其实,多因子模型的第一步就是这么简单。当然,这个因子是最简单的一个因子了,别的因子会用到别的数据,无论如何,核心的一步就是,千方百计计算好你的因子值,然后存下来。

多因子模型之因子(信号)测试平台----计算因子值相关推荐

  1. 4026.【函数】【测试】计算因子k的数量

    4026.[函数][测试]计算因子k的数量 时间限制: 1 Sec  内存限制: 128 MB 题目描述 编写函数fact(n,k),函数功能是:求整数n中包含因子k的个数,如果没有该因子则返回0,例 ...

  2. 网络测试软件smartest,AGILENT-93K的混合信号测试解决方案

    1 前言 具有混合信号功能的芯片正越来越多地出现在人们的生活中.通讯领域的 MODEM. CODEC 和飞速发展的手机芯片,视频处理器领域的MPEG.DVD芯片,带有内嵌的ADC或DAC的微控制器芯片 ...

  3. 多因子模型之因子(信号)测试平台----alphalens(一)

    广告:本人的单因子测试视频教程https://edu.csdn.net/course/detail/25572 之前,我们计算了revs10这个因子,并且对其进行了去极值.标准化.和行业中性. 计算因 ...

  4. 小米网络信号测试软件,【小米5X评测】高通:骁龙625移动平台Modem及信号是亮点_手机评测-中关村在线...

    高通:骁龙625移动平台Modem及信号是亮点 骁龙移动平台=高跑分?如果你一直这样认为那就错了:高运算性能只是它真正实力的冰山一角.举个例子,你或许不知道,高速+高效的网络连接也是骁龙移动平台能够提 ...

  5. 阿里云开放国内首个云端数据库测试平台,云已成为数据库新标准;华为5G随行WiFi发布;科大讯飞推出 AI 专用语音芯片系列……...

    戳蓝字"CSDN云计算"关注我们哦! 嗨,大家好,重磅君带来的[云重磅]特别栏目,如期而至,每周五第一时间为大家带来重磅新闻.把握技术风向标,了解行业应用与实践,就交给我重磅君吧! ...

  6. 单片机两个正玄波信号的相位差计算_【案例】南宁市首个多品牌信号机互联绿波带“新鲜出炉”...

    一.路口概况 长湖路.滨湖路.金湖路是南宁市青秀区城区主要交通干道,长湖路为东西走向,滨湖路与金湖路为南北走向,周边小区.景点.学校密集,居民出行需求大且道路条件良好. 本次将选取长湖路.滨湖路.金湖 ...

  7. 基于OpenStack的云测试平台

    1.云测试平台技术架构 \\ (一)云测试平台搭建的背景 \\ 笔者目前处于一家国内核心金融机构的测试中心部门,随着公司新业务的开展以及大数据时代的到来,金融软件系统逐步趋向于分布式.高稳定性.高可用 ...

  8. gps wifi信号测试软件,搜星+WiFi+EMI 导航平板信号性能横评

    1导航平板信号性能横评 十一长假转眼即逝,不少朋友美好的旅游愿望都被淹没在了人山人海和高速大堵车中,让人甚至郁闷.不过现在丰富的电子产品还是让我们的出行路途方便和丰富了很多,比如指引我们到旅游景点目的 ...

  9. L3级自动驾驶接管实验测试平台及其应用研究

    来源:北京交通工程学会 01 前言 北京工业大学驾驶行为实验室赵晓华教授带领团队完成基于驾驶模拟技术的L3级自动驾驶接管实验测试.团队面向驾驶人和自动驾驶车辆提出自动驾驶接管实验测试研究框架,基于驾驶 ...

最新文章

  1. [转载] K3 K3c 最简单无损开壳方法
  2. C#教程之自己动手写映射第四节[封装删除]
  3. 【数据中台】你的企业是否需要建设数据中台?
  4. 数据库修改,删除的操作必须有保险操作。
  5. Tomcat服务部署和优化
  6. Cross-Validation(交叉验证)详解
  7. 点云插值:三维平面参数确定-不共线三点的平面方程
  8. html中两个标签上对齐,css将两个元素水平对齐的方法(兼容IE8)
  9. java线程安全问题原因及解决办法
  10. 一个傻傻的尼姆游戏及其Python实现
  11. C语言pop_back用法,【C语言】单链表的所有操作的实现(包括PopBack、PushBack、PopFront、PushFront、Insert)...
  12. 一些提高生产力的 Linux 命令和技巧
  13. H3C交换机做DHCP
  14. V-Ray for SketchUp破解版(SketchUp渲染插件)
  15. 计算机概论综述,计算机组成原理唐朔飞PPT 第1章 计算机系统概论综述.ppt
  16. 转:面对失败,我们只是固执地想证明之前的决策是对的
  17. 2015070610 - 看到很多所谓的大牛
  18. linux打开xml文件,查看 XML 文件
  19. pyside2 系列之介绍,安装,简单例子
  20. 作为一个初学者,如何学习股票、期货、外汇和基金投资?

热门文章

  1. 教你写响应式框架(三)
  2. 如何使用会声会影去除视频水印
  3. 002_HTML基础入门二【列表 + 表格】
  4. mysql图片添加水印_将上传图片打上防伪图片水印并写入数据库
  5. 200本“保护日记”记录黄山迎客松生长变化
  6. Ncurses入门-(二)游标与窗口
  7. python怎么登录微博并发微博_Python模拟登陆万能法-微博|知乎
  8. SQL去重 SELECT DISTINCT 语句(distinct)
  9. Echarts饼图标题文字居中
  10. ZUCC_Object Oriented Programming_Lab09_assignmentCourseZucc_chapter12