分类目录归档:多因子

谈一谈我的量化实盘策略


  1. 量化因子投资无非关注两个问题:什么样的因子有效,以及有效的因子何时变得无效。
  2. 之前我总是想着用最先进的模型来挖掘最有效的因子(强化学习,大语言模型等等),这正是学术界乐此不疲做的事情。后来发现我似乎搞错了重点。学术界这么做,因为这些看上去很fancy的模型可以发论文。如果一个模型、能够产生有效的因子,但是看上去太普通,是发不了论文的。
  3. 我目前采取的做法是用一个不那么fancy的模型,产生大量差不多的因子(可能几百上千个)然后从中选择10-20个左右的因子。把重点放在因子的有效选择上。然后每隔一段时间比如一个月,重新产生大量因子。再选择。
  4. 这样做的有好几个好处:10-20个因子的组合,相...

Read more

量化因子挖掘工具集


我将自己用的因子挖掘部分的代码打包到了一个系统中,主要功能包括: 1. 因子分析(alphalens) 2. 因子回测 (backtrader) 3. 因子挖掘 (支持进化算法和强化学习,强化学习部分算法基于最新的学术论文,并加入了自己的改进) 4. 大模型(deepseek)辅助因子生成 5. 支持QMT数据和Baostock数据,并且可以对接QMT实盘

感兴趣的欢迎咨询微信xding59 或者 dxywill@126.com

声明:量化从来都不是购买一个软件,然后一劳永逸。你需要了解因子何时失效,何时更新,风险控制等等。

Read more

实盘量化QMT踩坑记录(三)


对之前的小市值策略修正了几个Bug,并增加了RSRS-MV择时。同时最近又发现了QMT的如下几个问题:

  1. 有时候会出现pandas库找不到等问题,重启一下QMT即可。

  2. 似乎对于get_market_data_ex()等函数,即便事先不先下载数据,也会先自动去下载,所以不下载数据也能跑。

  3. QMT似乎不适合做回测。上篇,已经提到过,QMT在回测的时候,一些函数不会动态地修改“今天”,因此,如果某个函数有end_time参数,默认的话都是返回当前的时间节点,并不会在回测模式下动态的进行一个调整。因此,在回测时候,凡是有end_time参数的,我都要根据ContextInfo.barp...

Read more

实盘量化QMT踩坑记录(二)


最近有时间把一些聚宽上面的策略重现成QMT代码。主要是增加了一些择时(如RSRS择时),还有一些因子选择方面的内容。总结起来,基本上熟悉以下几个函数就差不多了。

  1. get_trade_detail_data(),主要用该函数获得账户信息(如可用资金)和持仓信息。这里有别于聚宽代码,聚宽是通过访问context全局变量里面的portfolio对象获得相关信息。

  2. get_market_data_ex(),获得股票对应的价格信息,对应于聚宽里面的get_price(),history() 和attribute_history()函数。

  3. get_financial_data(), 获得...

Read more

多因子投资的几点注意事项


因子投资主要可以分为排序法和多元回归。排序法相对简单,单因子的话,按因子值从高到低或者从低到高排序,然后取前几只股票即可。多个因子的话,需要用到多重排序,可以进一步分为条件多重排序和独立多重排序。条件多重排序先按照某个因子排序,过滤,然后针对剩下的股票再进行过滤,然后取前几只股票。排序法由于其简单易用得到了广泛的使用。

多因子投资的另一种方法是多元回归。这里我再插个题外话,不要迷信机器学习、深度神经网络。首先,你可能没有足够的数据来训练深度神经网络(现实情况往往如此),因此陷入过拟合的风险。一个大致的判断训练数据是否足够的办法是看你的训练数据是否是满足你模型参数的5-10倍。其次,深度神...

Read more

alpha量价因子与机器学习模型


前几天看了一下微软的Qlib框架,感觉也没有新的东西。到是提供了两个数据集alpha158和alpha360。于是看了几个例子,想看看Qlib 是如何利用alpha158 来做量化的。 其实Qlib的alpha158也好,国泰君安的alpha191因子也好,如果你仔细看一下这些因子的公式,我猜测大概率应该是根据类似遗传算法这种生成的。也就是说,这些个因子就是从原始的开盘价,收盘价,最高价,最低价,成交量等量价数据的基础上计算出来的。比如考虑alpha191 中的第一个因子alpha001的公式如下:

(-1 * CORR(RANK(DELTA(LOG(VOLUME),1)),RANK((...

Read more