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_20260714_16_49_18
- selection_20260710_15_10_07
- selection_20260709_08_23_47
- selection_20260708_08_23_47
- selection_20260707_08_23_47
- selection_20260706_08_23_47
- selection_20260703_12_27_52
- selection_20260702_13_47_30
- selection_20260701_13_02_53
- selection_20260630_16_01_16
- selection_20260626_13_39_15
- selection_20260625_12_51_11
- selection_20260624_12_22_59
- selection_20260623_12_32_56
- selection_20260622_12_26_41
- selection_20260618_14_43_35
- selection_20260617_12_39_47
- selection_20260616_12_38_08
- selection_20260615_14_38_15
- selection_20260612_12_14_10
- selection_20260611_12_32_42
- selection_20260610_17_18_42
- selection_20260609_12_53_24
- selection_20260608_17_38_21
- selection_20260605_15_43_31