背景

  • 本文用来快速理清常见量化思路,其官方提供的多因子此策略白皮书很适合上手。

流程

一 、 获取因子数据

# 优矿里提供了400多个因子数据,将诸如TTM类似的标准化算法工程化,可利用DataAPI直接获取
pe = DataAPI.MktStockFactorsOneDayGet(secID=set_universe('HS300'),tradeDate=u"20160922",field=u"secID,tradeDate,PE",pandas="1").set_index('secID')
pe.head()
# pe.plot(figsize=(14,5))
secID tradeDate PE
000001.XSHE 2016-09-22 6.9680
000002.XSHE 2016-09-22 16.0035
000063.XSHE 2016-09-22 18.3675
000069.XSHE 2016-09-22 11.9858
000100.XSHE 2016-09-22 26.9261

二、因子分析
1、去极值

import numpy as np
# 去极值winsorize
after_winsorize = winsorize(pe['PE'].to_dict())
pe['winsorized PE'] = np.nan
pe.loc[after_winsorize.keys(),'winsorized PE'] = after_winsorize.values()

2、标准化

## 标准化standardize
after_standardize = standardize(pe['winsorized PE'].to_dict())
pe['standardized PE'] = np.nan
pe.loc[after_standardize.keys(),'standardized PE'] = after_standardize.values()

三、构建组合

  • 选股

    • 整体分位数:从所有备选股中选择因子得分大于某个分位数
    • 风格分位数:以行业为例,在同一行业中选择因子得分大于某个分位数
  • 权重
    • 等权重:最常见也最通用
    • 市值加权:中证指数编制时的权重考虑因素就是市值
    • 风格中性权重:权重由市值和股票所属行业在指数中的权重决定

四、组合构建

    # 信号合成signal = (0.5*pd.Series(signal_pe)).add(0.5*pd.Series(signal_lcap), fill_value=0.0)# 组合构建                wts = simple_long_only(dict(signal), yesterday)
  • 相当于0.5pe与0.5lcap合成信号
  • 学习下series的add方法,fill_value就是都空的时候的默认值。
>>> a = pd.Series([1, 1, 1, np.nan], index=['a', 'b', 'c', 'd'])
>>> a
a    1.0
b    1.0
c    1.0
d    NaN
dtype: float64
>>> b = pd.Series([1, np.nan, 1, np.nan], index=['a', 'b', 'd', 'e'])
>>> b
a    1.0
b    NaN
d    1.0
e    NaN
dtype: float64
>>> a.add(b, fill_value=0)
a    2.0
b    1.0
c    1.0
d    1.0
e    NaN
dtype: float64
  • 这个simple_long_only返回个字典,键是股票名,value是价值权重,也就是说到时候下单按照股票和价值权重买。
    # 交易部分account = context.get_account('fantasy_account')    current_position = account.get_positions(exclude_halt=True)    target_position = wts.keys()# 卖出当前持有,但目标持仓没有的部分for stock in set(current_position).difference(target_position):account.order_to(stock, 0)# 根据目标持仓权重,逐一委托下单for stock in target_position:account.order_pct_to(stock, wts[stock])

思考

  • 去极值中性化标准化,去极值还好,中性化标准化基本就是黑箱,不知道咋算的,可能有人写篇文章告诉咋算的也迷糊到底需要把因子这么做吗?
  • 如果是快速简单写个验证用simple_long_only比较好,需要各种设参数需要用long_only,这函数也是黑箱,比较复杂。
  • 实际学习时候,最好所有实现能自己完成,对比官方函数的区别。

【python】优矿多因子策略白皮书学习与思考相关推荐

  1. python写因子策略_单因子策略进阶版 本篇延续(第三期:单因子策略入门版),介绍如何使用优矿平台编写策略代码,以股息率作为择股条件,自动筛选出股息率前十名的股... - 雪球...

    来源:雪球App,作者: 爱喝豆汁的投资者,(https://xueqiu.com/2680567071/130470562) 本篇延续(第三期:单因子策略入门版),介绍如何使用优矿平台编写策略代码, ...

  2. 优矿量化实验室———转自知乎

    出处:https://www.zhihu.com/question/20874888 https://www.zhihu.com/question/20874888/answer/87738147?u ...

  3. 量化初步-《python与量化投资从基础到实战》——优矿策略

    python与量化投资从基础到实战--策略初步 量化数据获取 优矿介绍 使用方式 日行情数据 因子数据 数据处理 数据合并 数据透视 数据过滤 数据获取与整理 数据转化: 标准化 哑变量 通联数据回测 ...

  4. 【学习笔记】优矿量化交易入门(一)策略框架编写

    半自动化优矿 全自动化IB 面向对象 策略框架编写 start = '2017-01-01' # 回测起始时间 end = '2018-01-01' # 回测结束时间 universe = Dynam ...

  5. 【优矿学习】分析新用户引导的代码

    本文中的例子来自于优矿的新用户引导中提供的代码: 记录在优矿这个平台一下学习的回测和取数据用到的基本方法 首先第一个策略是新用户引导里面给的,大概干了这么一件事: 回测2017-01-01到2018- ...

  6. 从小市值因子策略入手,带你入门量化投资 (附年化收益率77.83%策略)

    随着量化投资在国内的兴起,越来越多的人开始研究量化投资.可其中有不少人在学习代码.研究策略的过程中败下阵来,但量化投资其实也可以很简单. 今天,我们以经典的小市值因子策略为例,为大家演示如何借助掘金量 ...

  7. 基于夏普比率对因子的筛选,以及基于股票期货交易策略对多因子策略的机器学习算法探讨

    试论因子的筛选,股票期货策略,以及基于多因子策略的机器学习算法 前言 正文 股票因子的筛选 股票期货策略 基于多因子策略的机器学习 前言 之前参加泰迪杯的,但又没什么时间,自己又是python新手,量 ...

  8. 学习Python最好的途径——激发自己的学习兴趣!

    Python是当下国内最为火爆的编程语言,没有之一! Python加入计算机等级考试,且即将加入考高,甚至于有小学都开始教授Python! 学习Python最好的途径--激发自己的学习兴趣! Pyth ...

  9. 多因子策略-APT模型

    导语:APT(Arbitrage pricing theory)定价理论是CAPM的一个推广,它们都是均衡状态下的模型,不同的是:CAPM把收益单纯的归为市场变化这一个因子引起的.APT把收益归因在不 ...

最新文章

  1. Django 模板4.1
  2. android获取所有的子进程,Android M:如何获取所有进程UID?
  3. 【体验】TLD5098EL英飞凌恒流电源开发板,恒定电流源LED驱动板
  4. hashMap和hashTable的区别(个人总结)
  5. java 代码重用需要注意的事项_程序员笔记|编写高性能的Java代码需要注意的4个问题...
  6. hive当前日期超前_微博数仓数据延时优化方案
  7. 分布式对象存储解决方案
  8. Wifi模块与串口助手通信的常用AT指令集
  9. ARCore之路-环境配置
  10. miui9如何不自动杀进程,小米9怎么关闭自动更新 具体操作方法解析
  11. 计算机存储换算 2GB等于多少MB,一gb等于多少mb 1gb等于多少mb?存储单位的含义和换算【详解】...
  12. 2017年全国大学生电子设计竞赛 参赛回忆
  13. MySQL——INSERT INTO
  14. linux 卸载oracle
  15. 强制横屏或竖屏解决方案
  16. 【UVA】【11021】麻球繁衍
  17. Android中各种dialog
  18. halcon像素统计_Halcon(八)亚像素轮廓XLD
  19. android 乐固渠道打包,android多渠道打包:umeng+美团walle+腾讯乐固
  20. FPGA 信道编码 信道译码IP

热门文章

  1. SaaS公司融资的「22条军规 」
  2. 杰理之底噪问题处理总结【篇】
  3. areaCode_hash.txt
  4. 1秒测温神器来啦 凡米耳温枪白瓷版开箱评测
  5. Typora 0.11.18最后一个免费版
  6. 中国无线电频率频段划分及主要用途
  7. ISE开发流程——软件操作
  8. 生产环境下的LAMP环境搭建
  9. 布局自动驾驶地图,驭势科技与立得空间签署战略合作协议
  10. 几何观止(经典几何对象)