资本利得突出量(CGO)
由small_q创建,最终由small_q 被浏览 3 用户
在行为金融学里有种心理叫处置效应(Disposition Effect)——人们倾向于过早卖出盈利的股票,过晚卖出亏损的股票。
资本利得突出量(Capital Gains Overhang,CGO) 就是把这个心理量化出来的因子。它试图回答一个问题:当前市场上持有这只股票的投资者,平均处于盈利还是亏损状态?盈亏幅度有多大?
因子定义
$RP_t = \frac{1}{k} \sum_{n=1}^{T} \left( V_{t-n} \prod_{\tau=1}^{n-1} (1 - V_{t-n+\tau}) \right) P_{t-n}$
$CGO_t = \frac{P_{t-1} - RP_t}{P_{t-1}}$
变量说明:
- $V_t$:第 t 周换手率(小数形式)
- $P_t$:第 t 周末收盘价(复权)
- $T = 260$:回溯周数(约5年)
- $k$:归一化系数(权重之和)
- $RP_t$:参考价格(当前持仓者的平均成本)
经济含义: CGO 衡量当前投资者的平均盈亏状况。CGO 越大,投资者平均盈利越高,卖出意愿越强,对股价形成压力,未来收益反而更低(A股负向因子)。
参考文献: Grinblatt & Han (2005), "Prospect Theory, Mental Accounting, and Momentum"
\
import dai
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')
print('环境加载完成')
1. 数据获取
从日线数据聚合为周线数据(每周最后一个交易日的收盘价 + 当周换手率之和)
2. CGO 因子计算
核心算法说明
对于第 t 周,权重 $w_n$ 的含义是:n 周前买入且至今仍未卖出的概率
$w_n = \underbrace{V_{t-n}}{\text{n周前买入}} \times \underbrace{\prod{\tau=1}^{n-1}(1-V_{t-n+\tau})}_{\text{此后每周均未卖出}}$
向量化实现:令 $q_j = 1 - V_{t-j}$,则
- $w_1 = V_{t-1}$
- $w_2 = V_{t-2} \cdot q_1$
- $w_n = V_{t-n} \cdot \prod_{j=1}^{n-1} q_j$(累积乘积,O(T) 复杂度)
因子代码
https://bigquant.com/codesharev3/85c5899e-f28f-4116-b122-48f2b17d9ce4
\