Appearance
基于微软 Qlib开源量化库,预测 CSI300
> 点击左侧查看预测数据,顶部导航查看使用方法和各种数据解释
当前预测倾向:稳健性
- 不要波动太大的股票
- 最近5天看(STD5)
- 最近20天看(STD20)
- 最近60天看(STD60)
价格波动都不能太大,都要在10%以内。
- 要更加稳定的股票
在刚才的基础上,更严格:
最近60天的波动率要小于5%(长期很稳)
最近5天的波动率要小于6%(短期也稳)
- 不要突然"发疯"的股票
最近5天的波动,不能超过最近60天平均波动的2倍。
就是说:
- 如果这个股票平时很稳(60天波动小)
- 但最近5天突然波动很大
- 那就不要!
这是在防止"突发异常"。
- 不要跌太多的股票
ROC = 价格变化率(涨跌幅)
要求:
- 最近10天跌幅不能超过20%(ROC10 > 0.80)
- 最近20天跌幅不能超过20%(ROC20 > 0.80)
- 最近60天跌幅不能超过20%(ROC60 > 0.80)
0.80 是什么意思?
1.00 表示不涨不跌
0.80 表示跌了20%
所以 > 0.80 表示"跌幅不能超过20%"
- 不要涨太多的股票
最近20天涨幅不能超过30%
< 1.30 是什么意思?
1.30 表示涨了30%
所以 < 1.30 表示"涨幅不能超过30%"
这是在排除"暴涨股"。
整体规则
- ✅ 价格稳定(波动率小于10%)
- ✅ 长期稳定(60天波动率小于5%)
- ✅ 没有异常波动(最近没发疯)
- ✅ 没有暴跌(跌幅不超过20%)
- ✅ 没有暴涨(涨幅不超过30%)
策略类型:防守型 / 稳健型
风险等级:低
收益预期:稳定小幅增长
python
def filter_ret_df(self, df):
# 过滤高风险股票
# 波动率过滤(标准差 < 10%)
df = df[(df['STD5'] < 0.10) & (df['STD20'] < 0.10) & (df['STD60'] < 0.10)]
# 极低波动率(< 5%)
df = df[(df['STD60'] < 0.05) & (df['STD5'] < 0.06)]
# 波动率异常检测
df = df[df['STD5'] < (df['STD60'] * 2)]
# 涨跌幅过滤(ROC: Rate of Change)
df = df[(df['ROC10'] > 0.80) & (df['ROC20'] > 0.80) & (df['ROC60'] > 0.80)]
df = df[df['ROC20'] < 1.30]
return df子目录列表
- selection_20260515_12_16_01
- selection_20260514_12_11_30
- selection_20260513_12_14_21
- selection_20260512_12_14_49
- selection_20260511_13_45_30
- selection_20260508_12_21_45
- selection_20260507_12_14_27
- selection_20260506_03_29_28
- selection_20260430_12_50_38
- selection_20260429_12_37_56
- selection_20260428_13_51_32
- selection_20260427_15_14_05
- selection_20260424_12_24_53
- selection_20260423_15_36_02
- selection_20260422_12_54_45
- selection_20260421_13_41_23
- selection_20260420_13_30_38
- selection_20260417_15_06_17
- selection_20260416_15_21_56
- selection_20260415_15_21_56
- selection_20260414_13_01_34
- selection_20260413_09_33_34
- selection_20260410_09_33_34
- selection_20260409_09_33_34
- selection_20260408_09_33_34