系列文章
量价特征因子的量化分析
量价因子之前言
量价因子之alpha001
量价因子之alpha002
说明
关于本系列文章的背景、引用报告、因子表达式中的变量、函数、回测等说明,请参考:量价因子之前言
一、alpha003因子逻辑表达式
SUM((CLOSE=DELAY(CLOSE,1)?0:CLOSE-(CLOSE>DELAY(CLOSE,1)?MIN(LOW,DELAY(CLOSE,1)):MAX(HIGH,DELAY(CLOSE,1)))),6)
理解:
1.只考虑价格,根据当天收盘价是否大于前日收盘价(当日涨或跌)来设计。
2.当日收涨,用CLOSE-MIN(LOW,DELAY(CLOSE,1)),阶段性最大涨幅;
当日收跌,用CLOSE-MAX(HIGH,DELAY(CLOSE,1)),阶段性最大跌幅;
当日不涨不跌,用0.
3.用每天的前6个交易日的2的sum,来得到alpha因子值
二、因子Python实现
Python代码如下(示例):
import numpy as np
import pandas as pd
def alpha191_003(data, sum_period=6):
"""
SUM( (CLOSE=DELAY(CLOSE,1)?0:CLOSE-(CLOSE>DELAY(CLOSE,1)?MIN(LOW,DELAY(CLOSE,1)):MAX(HIGH,DELAY(CLOSE,1)))),6)
"""
# DELAY(CLOSE,1)
delay1 = data["close"].shift(1)
# CLOSE>DELAY(CLOSE,1)
condition2 = data["close"] > delay1
# CLOSE<DELAY(CLOSE,1)
condition3 = data["close"] < delay1
part1 = data["close"] - np.minimum(data["low"][condition2], delay1[condition2])
part2 = data["close"] - np.maximum(data["high"][condition3], delay1[condition3])
alpha = part1.fillna(0) + part2.fillna(0)
alpha = alpha.rolling(sum_period).sum()
return alpha
三、因子回测
因子和收益之间的相关系数
简单以某只股票的量价回测alpha003因子和收益gain之间的相关系数。
data['gain'].corr(alpha191_003(data))
-0.381759372433842
四、总结
alpha003单纯价格因子,考量阶段性最大涨幅或跌幅。回测因子和收益之间的相关系数为-0.38(不同股票不同时期计算得到的系数不同,仅做参考),负值表示负相关,有阶段性涨多了会跌,阶段性跌多了会涨的意思,即均值回归。