开源AI量化平台新进展:支持低代码快速生成策略

量化投资进入的四种范式:

一、投资组合,一般就是大类资产配置的逻辑,选择长期向上且低相关的回报流,组成一个投资组合。定期按季或者按年再平衡。

这种回测比较简单。

二、规则策略。就是给出买入卖出信号。传统量化主要是这种。多因子模型为主,选股择时没有明显的界线,一般还会辅以轮动,就是都满足的条件的股票集里边,按排序因子选得分高的N个买入。

三、机器模型。

由机器学习模型多因子得分,按分高到低选择N个,交易逻辑与规则策略同,只是股票信号逻辑是由机器学习模型给出。

四、强化学习。

这个我们将要覆盖。

前三者我们的AI量化平台,使用低代码的方式都已经支持了。

并不难,难在如何优化。

所以,模型评估的思路很重要。

学习qlib的模型分析模块。

analysis_model_performance,对模型评分分成五组,做多空分析。本质上是在做模型预测的IC值,也就是评分与真实收益率之前的相关性。

传统的模型分析还是需要分析pyfolio的代码。

pyfolio的quantopian的三大框架之一。

输入的核心参数就是 收益率df。

returns : pd.Series
    Daily returns of the strategy, noncumulative.
     - Time series with decimal returns.
     - Example:
        2015-07-16    -0.012143
        2015-07-17    0.045350
        2015-07-20    0.030957
        2015-07-21    0.004902

可选的参数有仓位。

ositions : pd.DataFrame, optional
    Daily net position values.
     - Time series of dollar amount invested in each position and cash.
     - Days where stocks are not held can be represented by 0 or NaN.
     - Non-working capital is labelled cash
     - Example:
        index         AAPL         MSFT          cash
        2004-01-09    13939.3800     -14012.9930     711.5585
        2004-01-12    14492.6300     -14624.8700     27.1821
        2004-01-13    -13853.2800    13653.6400      -43.6375

还有交易细节。

transactions : pd.DataFrame, optional
    Executed trade volumes and fill prices.
    - One row per trade.
    - Trades on different names that occur at the
      same time will have identical indicies.
    - Example:
        index                  amount   price    symbol
        2004-01-09 12:18:01    483      324.12   AAPL
        2004-01-09 12:18:01    122      83.10    MSFT
        2004-01-13 14:12:23    -75      340.43   AAPL

这两个数据结构我们也可以这么设计。

我们按一定权重分配仓位,所以每个股票的市值是有的。

把每天更新仓位后各股票的仓位按日期、股票分别记录下来。qlib是按几千支股票来算,所以这样的记录给出不来。

交易也类似,但不是每天都会有,所以也是date,code以及amount市值变动。

其实也就是组合的风险收益分析。

机器学习组合讲因子分析,传统量化主要分析风险,收益,还可以看相关交易情况等等。

经验分享 程序员 微信小程序 职场和发展