分类标签归档:心得

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


这几天把回测代码改成了实盘,发现还是有几个区别的。同样的策略,聚宽选出来的股票和QMT选出来的股票存在较大的差异,5只里面有4只不一样。由于对QMT的回测功能和数据质量存疑。干脆用聚宽的模拟盘将信号写入云数据库,然后QMT只负责读取选股结果。

1.如果你采用handle_bar 的形式,那么需要加上下面的代码

    #跳过历史k线
    if not C.is_last_bar():
        return

如果不加这段代码,那么就算是实盘,他会从历史K线开始运行。

2.实盘可以通过如下代码设置账号

    g.acct = account
    ContextInfo....

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

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


聚宽马上要关停其实盘量化接口,我虽然没有用聚宽的实盘,但却是其回测和研究环境的重度用户。由于我目前的策略换仓频率不是很频繁,所以我都是先在聚宽研究环境里面跑,然后手动下单。虽然聚宽实盘关停对我影响不大,但是觉得万一哪天回测,研究环境啥的也给砍了咋办。所以还是得提前想好对策。

目前市面上比较主流的可以支持个人用户做量化的系统就是QMT和Ptrade,QMT所有数据和策略保存在本地,运行策略的时候需要电脑保持实时开机状态。Ptrade在云端运行,需要上传策略。QMT更加面向机构和专业投资者,两者的区别不再赘述,感兴趣的朋友可以自己查找相关资料。目前QMT和Ptrade的开户门槛都有所下降。 ...

Read more

永久性投资组合之二(哈利·布朗)


相对于上一篇桥水全天候策略中利用一致性风险衡量指标ES来决定仓位的大小,哈利·布朗的永久性策略更加简单,提出分别在 4 种大类资产——股票、债券、现金、黄金上配置 25 % 的个人资产。然后每个几个月(或一个月调整一下)。 我们来看一下过去10年的一个回测效果:


可以看到都按照25%的比例分配,其效果是不如桥水的全天候策略的(无论是年化还是最大回撤)。但其最显著的优点就是简单,特别适合于懒人,在稍后的代码中也可以看出这一点。我们还可以把沪深300换成纳斯达克指数。其回测结果如下所示:


可以看到不但年化增加了,最大回撤也有所下降。

最后附上代码:

# 导入函数库
from jqda...

Read more

小市值因子YYDS


小市值因子的有效性已经被无数人证明。在聚宽平台上只要是看上去年化收益还可以的有很多其实都用到了小市值因子。当然上面还有给小市值因子加上很多择时的(如RSRS择时等)。 我们来看看只用一个小市值因子能有怎么样的年化收益率。该策略的思路很简单:

  1. 全市场选股,过滤掉st,停牌,科创板,次新股,当天涨跌停的股票
  2. 按市值升序排列,选取市值最小的10只股票(我这里稍微做的一个改进是首先去除了市值最低的10%那部分股票,当然你也可以把这个限制条件去掉,我对比了一下收益变化不是很大)

我们先来看一下过去10年的一个回测结果


可以看到单单使用一个市值因子,就能在过去10年当中取得年化收益22.48...

Read more