克隆策略

问题答复

  • 经典组合优化器是否有一个更好的使用示例说明这样?他对股票仓位管理的计算,一般用多少天的参数来进行计算会比较好这样? 如何把他改造拼接进原有的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过滤
  • 指数成份过滤
  • 跨数据源过滤

策略的常见自定义逻辑

后续进阶:

  • 设置止盈条件
  • 设置止损条件
  • 设置定期轮仓逻辑
  • 设置固定持仓股票数量轮动
  • 设置早盘买卖/尾盘买卖的资金回笼