以下是因子的代码
def calculate(self, factors):
close = factors['close']
cum_ret_5 = RETURNS(close, 5)
rolling_max_5 = TS_MAX(close, 5)
drawdown_5 = (close / rolling_max_3) - 1
max_dd_5 = TS_MIN(drawdown_5, 5)
raw_factor = cum_ret_5 - max_dd_5
cleaned = IF(AS_FLOAT(raw_factor == raw_factor), raw_factor, 0)
cleaned = IF(AS_FLOAT(cleaned < 1e10), cleaned, 0)
return ZSCORE(cleaned)
这个因子同时考虑了短期收益和回撤,然后对收益和回撤进行简单的量化和复合。
因子以五日周期为观测窗口,同步衡量标的阶段性盈利表现与下跌承压程度,通过收益抵扣风险的计算逻辑综合打分,再经异常值清洗与截面标准化处理,最终输出可横向对比的评分结果,用于甄别盈利稳健、风险可控的投资标的。
展开讲解如下
五日累计收益计算
通过当期收盘价与五日前期价格比值,算出区间整体收益率,直观反映个股短期上涨获利能力,数值越高代表阶段性盈利表现越好。(我们粗放地认为短期越是上涨,代表趋势越好)
五日最大回撤测算
先截取五日区间内最高成交价格,计算每日价格相对区间高点的回落幅度,再选取区间内最大回落值,以此界定标的短期价格下跌风险,回撤数值越小,股价波动风险越高。(我们先粗放地认为:短期下跌代表释放风险,短期不下跌代表堆积风险)
综合得分构建
采用收益减去最大回撤的运算规则,本质是盈利水平叠加回撤绝对幅度。个股短期收益越高、下跌幅度越小,原始因子得分越高,实现奖励盈利、规避风险的设计初衷。
数据合规清洗
过滤空值、无穷数、极端异常数值,将违规数据统一归零,剔除市场异动失真数据,保障因子计算基础有效可靠。
截面标准化处理
借助均值标准差完成标准化转换,抹平不同标的数值量级差异,让全市场个股因子评分具备横向对比价值,方便筛选优质标的。