量价因子之alpha003

本文详细介绍了量价因子alpha003的逻辑,利用Python实现其计算方法,并通过回测展示了因子与收益的相关性。因子考虑了价格涨跌情况下的阶段性最大变动,回测结果显示相关系数为负,意味着存在均值回归现象。
摘要由CSDN通过智能技术生成

系列文章

量价特征因子的量化分析
量价因子之前言
量价因子之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(不同股票不同时期计算得到的系数不同,仅做参考),负值表示负相关,有阶段性涨多了会跌,阶段性跌多了会涨的意思,即均值回归。

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值