克隆策略
问题答复¶
-
经典组合优化器是否有一个更好的使用示例说明这样?他对股票仓位管理的计算,一般用多少天的参数来进行计算会比较好这样? 如何把他改造拼接进原有的stockranker的AI策略中进行5日的周频调仓,而不是T+1买卖?
这个可以参考固定周期轮仓,最简单的就是使用时间计数器求模处理天数实现5日轮仓。
-
是否可以构造出一个描述 当日股票5分钟内上涨速度的因子? 或者3日内主力增仓幅度的因子?
bar5m_CN_STOCK_A读取5分钟K线数据,然后表达式计算涨幅(数据量比较大)
3日内主力增仓幅度可以考虑sum(mf_net_amount_main_0,3)或者sum(mf_net_pct_main_0,3)
-
将股票因子数据组织成用于CNN处理的二维形式,有哪些提高学习效果的有效方法?
常见问题一方面是原始数据的质量(NaN、Inf、0、归一化)导致的损失函数训练为Nan,另一方面是网络架构和参数:
- 学习率(太高梯度爆炸,太小梯度消失)
- 优化函数(推荐ADM、RMSPROP)
- batchsize(较大的batchsize梯度方向变动稳但耗内存,较小的batchsize梯度方向变动大但内存可以小点),
- 权重初始化函数(LSTM正交初始化效果较好)
- 激活函数回归(sigmoid分类,RELU回归)
- 模型层数太多可能过拟合
- 深度学习炼丹容易过拟合,需要验证集测试+模拟盘验证,数据决定了学习上限,深度学习解释性需要因子追踪(包括单因子分析的头部分组收益率和因子拥挤度)
-
因子的判断有效性标准:策略模型已经有18个因子了,再添加因子时按照什么标准挑选因子?如果新加入了一个因子,新加入因子起了的作用是什么(正作用还是负作用)?为什么起这个作用?如果是负作用,是因子间的相互关系不匹配吗?
- 因子之间的相关性导致效果打折
- 因子的分布不同,比如均匀分布拉低了正态分布的效果,可以用单因子分析工具看分布,通过log/sqrt纠正偏态分布,或者尝试因子标准化/rank化
- shap包解释因子贡献度,可以评价因子是推高了预测值还是拉低了预测值
如何上手写出一个好策略¶
- 表达式引擎功能介绍
- 模型构建中常见的股票过滤实现
- 策略的常见自定义逻辑
表达式引擎功能介绍¶
- 常用函数构建表达式
- 表达式构建横截面统计类因子 group_mean('',return_0)、rank(mean(turn_0,10))
- 因子行业市值中性化数据处理 neutralize(normalize(cut_outliers(return_5)), [dummy(industry_sw_level1_0, drop_value=[-1, 0, 110000]), normalize(cut_outliers(log(market_cap_0)))])
- 因子标准化处理 normalize(return_5)
- 因子去极值处理 cut_outliers(return_5)
模型构建中常见的股票过滤实现¶
- ST过滤
- 指数成份过滤
- 跨数据源过滤
策略的常见自定义逻辑¶
- 认识回测引擎:四个函数(初始化函数、数据准备函数、盘前处理函数、主函数)
- 了解回测机制
- 设置初始资金
- 设置基准指数
- 设置手续费率、权重
- 获取外部条件信号/预测数据
- 从简单的双均线策略编写学习仓位相关知识
后续进阶:
- 设置止盈条件
- 设置止损条件
- 设置定期轮仓逻辑
- 设置固定持仓股票数量轮动
- 设置早盘买卖/尾盘买卖的资金回笼