量化qmt开通教程与qmt小市值选股策略(附代码)

今天给大家推荐一个小市值选股策略,下面我讲一下这个策略的逻辑概述,

选股逻辑:

1、选取中小板 399101 指数成份股作为初始池

2、剔除里面的ST股票、次新股、停牌的股、涨停跌停股、北交所和科创板的股票

3、选取流通市值最小的前100个股票

4、再选取每股收益大于0的保留前100个

5、最后在这100只中,每个行业选出一只股票,然后取市值最小的股票N个用于交易调仓逻辑:

逻辑也很简单,每周二会按照选股逻辑选出6个股票,然后卖出之前持有的,买入最新的6个股票。当然如果持有的股票涨停了就会继续持有,把剩余的仓位买入新调入的股票。

止盈止损:

每天在10点去根据条件判断止盈止损,这里我设置了几个条件 1、持有的股票收益>100%止盈 2、跌破成本的91%就无条件止损 3、如果中小板 399101 指数平均跌幅 > 5%,全部清仓。

OK,以上就是基本逻辑了,下面开始代码展示,

1、获取中小综指成份股

这个还是很方便的,直接调用xtquant里的函数就可以获取了代码如下:

返回值是一个包含股票代码的列表['000001.SZ', '000002.SZ', '000063.SZ', '000069.SZ',...

2、排除 4、8、68开头的股票

这里也是基本的列表操作

3、过滤次新股上市不足1年的直接去掉

4、过滤ST股票这里在接口文档没有找到可以直接获取ST股票列表的接口,所以直接根据股票名称来判断是不是ST股

5、过滤停牌股

xtquant接口中InstrumentStatus表示合约停牌状态,<=0:正常交易

6、获取流通市值最小的200个股票这个方法里我同时过滤了涨跌停的股票

7、基本每股收益>0的股票

一开始下载财务数据的时候我用的是download_financial_data接口,一直没响应,有人知道是什么原因吗?后来改成download_financial_data2就没问题了。

8、获取每个行业市值最小的股票

这里分了2步写的,首先是获取股票对应的申万二级行业

接下来就是把每个行业市值最小的股票取出来

最后我们用result = df_top1_industry.nsmallest(stock_count, 'float_amount')获取市值最小的N个股票用于交易。

以上就是整个策略的选股逻辑核心代码了。

总结

关注"叩富问财"公众号,回复"资深吴经理",联系专属客户经理开通量化交易权限!

立即行动:打开微信,搜索"叩富问财",在对话框中输入"资深吴经理",开启你的量化交易之旅!



温馨提示:投资有风险,选择需谨慎。

相关文章