一创选股策略--FAQ

1.一创提供什么服务?

一创是一个量化交易平台。

在这里不需要一行代码,就可以立即开始量化投资,你可以选择跟随平台上其他人开发的策略,直接进行自动交易;也可以通过我们的回测系统和丰富的指标,制作自己的策略。

一创的技术,已经服务于大量个人和机构投资者。平台具有以下特点:

大数据选股
    -提供海量技术指标及财务因子精选股票,解决不知道买什么股票的难题。(高质量数据)

快速验证投资逻辑
    -点选式操作界面,通过历数据检验投资逻辑,让投资决策更有效,节省时间和资金成本。(强大的回测平台)

程序化交易
     -跟随策略交易,避免情绪影响,让交易决策更理性。(策略调仓)

交易便捷
    -7X24小时云端托管,智能拆单,智能执行。(实盘交易)

2.量化投资在中国管用吗?量化投资和技术选股有什么区别?

基于历史数据回测统计的量化投资方法在中国远没有得到广泛使用,大多数投资者采用跟风投资或根据K线走势预测未来股价。也正因为当前的A股市场,很少有人用量化的方法买卖股票,这种方法在中国也更加有效。在欧美市场,量化统计方法已经被很多聪明人研究透彻,并运用到了股票交易中,这造成一般量化策略有效性降低,击败大盘指数是件不容易的事情。而在中国,一个相对简单的量化选股模型就有可能跑赢大盘。

  技术选股+K线分析 量化投资
使用人群 散户(多) 机构用户为主(少)
选股指标 以量价指标为主。 除了量价指标,还需要使用财务指标、公司事件等。
交易模型 没有完整的交易模型。重视股票买入条件,不重视个股仓位和卖出条件。 有完整的交易模型。模型对股票的买入条件、卖出条件、个股仓位、调仓时点和风险控制都有明确的规定。
策略验证 使用基于经验和书本总结出来的规则。没有在历史数据里测试过有效性。 选股策略基于个人研究, 在历史数据里测试其有效性。可以根据回测结果对策略进行调优。 重视风险收益量化指标。
分析方法 有很多主观成分,不同人对同一图表有不同结论。 “大师”辈出。 依赖客观数据统计。
收益来源 着重于单个股的波段操作。 多股票之间的轮动。重视多种投资标的之间的配置和轮动。讲究风险对冲。
分析工具 通达信、同花顺金融终端 数据库、编程平台。 或者一创云平台。
类比 中医 西医

3.量化投资就是高频交易吗?

量化投资并不能和高频交易划等号。量化投资是基于量化统计模型的一种投资方法。其核心步骤是将量化模型放回真实的历史数据模拟跑盘,以验证量化模型的有效性。量化投资可以做日内高频交易也可以做日间低频交易,只要是基于量化模型统计的投资方法都是量化投资。一创支持日间股票买卖量化模型,门槛低,即便是一般的投资者也可以使用。需要学习更多量化知识的朋友,推荐阅读金伟民(持有封基)老师的《十年十倍》 。想进一步掌握完整量化体系的用户可以阅读2017年张然写的《基本面量化投资》 。

4.一创的量化策略买卖模型是什么?

一创策略默认的交易模型(模型I)是一种定期调仓的量化轮动模型。在每一个调仓日,一创策略卖出仓内的所有股票,并依据调仓日前一交易日的数据,选出股票等权重买入。如果选出的股票已经在仓内,这支股票的仓位也会被重新调整成和其它股票一样的仓位,但如果这只股票因为停牌或涨停跌停无法调整仓位,则仓位保持不变。这种买卖模型比较简单,适合轮动交易策略。

交易模型II是一种按卖出条件调仓的的量化轮动模型。在每一个调仓日,卖出满足卖出条件的股票,把余下的资金等权重买入符合买入条件的新股票。不满足卖出条件的股票可以保持自己的仓位,在规定的仓位范围内不作调整。模型II分离买入和卖出条件,是一种更加灵活的交易模型。

5.选股指标的数据从哪里来?何时更新?

选股指标(除了分析师预测指标外)是一创根据原始市场数据和公司发布的财报自己计算出来的。具体的计算方法在数据里有解释。

数据日期范围:大多数指标从2007年1月4日开始。股票数据每晚10点完成更新。

6.一创股票行业分类标准是什么?

一创依据申万2014版一类行业和二类行业标准对股票进行分类。其中一级行业有28个,二级行业有104个。

7.一创历史回测真实吗?

为了做到回测的真实性,一创回测引擎作了如下处理:使用精准的(point-in-time)历史数据, 彻底回避了使用未来信息的隐患;对停牌和涨跌停股票的买卖限制做出真实处理;对交易成本进行合理估算。历史回测结果可以全部导出到Excel文件里,方便用户验算。(point-in-time的介绍可以点击这里了解。)

8.筛选条件和排名条件各有什么用处?

一创使用“先筛选后排名”的选股流程。当选股策略既有筛选条件又有排名条件时,筛选条件将首先被使用,从几千只股票里选出一批股票做为候选股票,然后排名条件将被用来对这些候选股票做出排名,排名最靠前的N只股票将被买入(N是最大持仓股票数)。

有些用户喜欢使用复杂的筛选条件精选出少量股票,再使用一个简单的排名条件对这些股票排名;另一些用户喜欢使用简单的筛选条件粗选出大量股票,再使用较复杂的排名条件对这些股票进行精准的排名。从实际的效果来看,使用排名条件可以实现更加精细的选股策略,所以我们建议用户首先使用筛选条件对股票进行粗选,再使用排名条件对选出的股票进行细致排名,最后选出最靠前的N只股票进行投资。

9.策略收益的具体计算规则是什么?

策略收益根据回测日期区间和调仓周期来计算。每个周期的收益单独计算,最后策略的总收益是各个周期的收益累积而成,即(1+周期1收益)×(1+周期2收益)×。。。 = 1 + 总收益。调仓日是在每个周期的第一天, 股票买卖价格按照调仓日的价格计算,默认是收盘价。 每一个周期的选股日是调仓日的前一天。比如一个调仓周期的第一天是T日,这个周期的调仓日就是T日,而选股日是T-1日。一创收益计算包含股息,拆股和配股的收益。

在默认情况下,策略会等权重全仓买入股票,对每只股票的仓位不做限制。比如策略只选出一只股票,则会用100%的资金持有这支股票,如果选出2只股票,则每只股票占用50%的现金,依次类推。在每个调仓日,回测程序都会自动调整仓位,把股票仓位重新设回到等权重的状态。

当有市场择时条件时,用户可以限制熊市整体股票仓位,比如在50%。这时,在每个熊市调仓日,回测程序都会把整体股票仓位设置为50%。

(如果用户认为用100%资金买入一只股票过于危险,可以在策略回测的高级设置里限制个股最大买入仓位。)

股票交易成本默认按双边千分之二计算,即买的时候要扣除千分之二的交易成本,卖的时候再一次扣除千分之二的交易成本。在调仓日,继续持有的股票仓位被调整时不扣除交易成本,比如一只股票的仓位从50%调整为20%,不会扣除交易成本。

股票如果停牌或者一字板涨停跌停,则不能买卖,即便是按照选股策略应该被买入或被卖出,买卖也不能进行。不能卖出的股票会被继续持有到下一个调仓日,并根据下一个调仓日的市场情况来决定是否可以买卖。

10.排名分析里收益率为什么和策略回测收益率不一样?

有些选股条件在使用排名分析时会有很高的收益率,但是相同条件在策略回测时,收益经常会低很多。这是因为排名分析功能的回测计算做了简化,没有考虑交易成本和股票停牌等问题。比如排名分析的某一排名分段,算出的收益率可能是20%,可到了策略回测里,收益率变成了5% 甚至是-5% ,这往往是由交易成本造成的。一个策略假设每天都买入卖出不同的股票,双边的交易成本合计千分之四,交易费一年就会吃掉100% 的收益增长。

第二点,策略回测考虑到停牌股票不能买卖,这一点也会造成和排名分析回测的收益不一样。

排名分析主要用于验证选股策略的相对有效性,通过从高分段到低分段股票的收益分布趋势来判断选股策略有效性。而使用策略回测可以得到更接近实际情况的收益曲线。

11.回测起始日变化,造成策略收益变化很大是什么原因?

有些策略起始日期往前或往后调整一天,策略的回测收益会变化很多。主要有两个原因,

一是统计样本数量过少,造成收益计算的随机性较大。比如一个策略最大持仓股票数量是2只,调仓周期是20天,回测时长是5年,按一年有240个交易日算,回测统计数据点有 2 X 12 X 5 = 120 个。这种策略的回测数据点少,随机性大,收益计算的波动自然较大。比如起始日变化一天,回测收益就可能从80%变成30%。建议用户增加策略回测统计的数据点至少到1000个。增加回测数据点数量的方法有增加最大持仓股票数量,减少调仓周期的天数,手工做起始日期的滚动回测,再取平均值。

二是策略本身过度拟合,造成结果不稳定。这往往是策略过于复杂或者参数对于某个起始日过于调优造成的。

12如果策略的选股条件可以选出很多只股票,策略如何选择股票买入?

使用“每日选股”,用户可以看到每一天具体有哪些股票通过筛选条件被选中。如果有排名条件,在“每日选股”的结果中还可以看到每只股票的排名得分。一个选股策略往往能选出上百只或上千只股票,而实际上,一般用户最多能买入10到20只股票。比如用户限定一次最多买入10只股票,筛选条件产生100只股票,程序将挑出排名得分最高的10只股票买入,如果没有指定排名条件,程序会选择成交额最大的股票买入

13.什么是市场择时?

用个股指标选股,用大盘指标择时,是行之有效的股票交易策略。虽然我们无法准确预测未来总体市场的走势,但是根据一些常用的大盘指标,我们可以规避一些由市场巨幅波动带来的风险。具体使用方法,请查看市场择时

14.一创支持什么浏览器?

一创建议用户使用Chrome浏览器,其它支持的浏览器有Opera、360极速模式、Safari。还有高版本IE,不支持IE9以下的版本。

16.为什么选股指标只有后复权价格没有前复权价格?

前复权价格包含未来信息,为了防止用户错误使用未来信息做策略,一创只提供后复权收盘价作为选股指标。但在策略结果页面,展现历史股票买入卖出价格时,一创使用前复权价格,这样便于用户做价格比较。

使用未来函数是量化分析最容易犯的错误之一,为了防止这个错误的发生,一创在数据准备和回测算法上做了大量工作,以确保未来函数不会被使用。

17.如何搞清楚筛选、排名、策略买卖的具体含义?

一创已经提供了较为清晰的文档阐述以上功能。使用每日选股查看选股结果,是搞清这些功能的最好方法。例如,在筛选条件里,加入“换手率最大全部 10” 是得到当日全市场换手率最大的10只股票,这个使用每日选股,其中的含义便一目了然,如果有疑惑,还可以更换条件为 “换手率最小全部 10” 或者 “换手率最大全部 20”,再看结果。

另外查看策略回测结果里的调仓详情也是理解策略功能的一个重要工具。这样做可以知晓策略具体的运作情况。点击策略详情右上方的导出图标,可以将策略在每个周期的持仓详情导出到一个Excel文件里。


一创选股回测快速入门

1.每日选股。可查看历史上的任何一天符合条件的股票。

图片描述


2.策略回测。将选股策略放回真实的历史数据中,模拟交易,计算出详细收益。

图片描述


3.回测结果。对比策略收益和收益基准。查看持仓详情。

图片描述

图片描述


4.可保存策略到“我的策略”里。或者清空当前的策略。

图片描述



策略指标解释

策略评估指标


如何使用排名和筛选

排名和筛选的区别

股票筛选在各个股票网站和软件上都有提供,大家都很熟悉。使用筛选,用户可以迅速挑出满足筛选条件的股票剔除不满足筛选条件股票。 股票排名是一种更有效的更被专业投资者青睐的选股方法,也是一创推荐的选股方法。 大家在过去一直没有机会接触排名选股的方法,会感到比较陌生,其实它的原理非常简单。在学校里, 一个班的学生按各科成绩的综合起来进行排名,排在前面的学生会得奖学金。 类似的方法,用户可以对市场上的股票按几项指标进行综合排名,并买入排名靠前的股票。和筛选相比,排名可以实现更精细更稳定的选股策略,原因如下:

当用户同时定义筛选条件和排名条件时,一创会首先按照筛选条件筛选股票,再按照排名条件对股票排名。 在实际选股中,大家可首先使用筛选来粗选出一大批股票,再用排名精选出少量的股票作为投资对象。

排名分计算规则

排名虽然一直是专业人士的投资方法,但原理非常简单,只要有初级算术的知识就能理解排名分的计算规则。

下面我们用一些实例来介绍一创排名分的具体计算规则。 比如一共有5只股票A,B,C,D,E参加排名。它们的收盘价分别是10,12,20,30,40。 按收盘价从小到大排名, A,B,C,D,E的排名就是1, 2, 3, 4, 5。一创根据排名先后算出排名分,排名分的公式是 (股票数– 股票排名 + 1)/股票数 * 100。按照这个公式, 排名第1得100, 排名第二得80,依次类推,排名第5得20。 详细情况如下表列出:

股票 收盘价 从小到大排名 从小到大排名分 从大到小排名 从大到小排名分
A 10 1 100 5 20
B 12 2 80 4 40
C 20 3 60 3 60
D 30 4 40 2 80
E 40 5 20 1 100

当某只股票的指标为空时,这只股票将一直排在最后,排名分最低。比如A,B,C,D,E的市盈率分别为10, 20, 30, 空,空(当一个公司亏钱时,市盈率无法算出,则市盈率为空。), 排名分的计算详细在下表列出:

股票 市盈率 从小到大排名 从小到大排名分 从大到小排名 从大到小排名分
A 10 1 100 3 60
B 20 2 80 2 80
C 30 3 60 1 100
D 4 40 4 40
E 4 40 4 40

当有两个以上的指标作为排名条件时, 用户可以给每个指标设定权重(默认值为1),综合排名分 = 排名分1 × 权重1 + 排名分2 × 权重2 + ...

为了方便展示, 我们对综合排名分再做一次排名,算出排名总分。

比如,我们用如下排名条件对股票A,B,C,D,E进行排名

收盘价,从小到大,权重 1

市盈率,从大到小,权重 1

股票 收盘价 收盘价排名分 市盈率 市盈率排名分 综合排名分 总排名分
A 10 100 10 60 160 100
B 12 80 20 80 160 100
C 20 60 30 100 160 100
D 30 40 40 80 40
E 40 20 40 60 20

空值处理

一个指标经常有空值,比如5年净资产收益率很多股票没有数值。无论是从大到小排,还是从小到大排,空值一直排在最后, 也就是指标为空的股票排名分最低, 值为空的股票都排在最后。


如何做排名分析

用户可使用排名分析判断排名策略是否有效。回测程序将所有股票按照排名总分分成5段,10段或更多段,计算每段里的股票总收益,输出一个年化收益柱状图和一个累计收益曲线,以便让用户检查是否排名越高的分段收益越好。

比如我们可将所有股票按排名条件分成5段,从低到高依次为0-20,20-40,40-60,60-80,80-100。 如果年化收益图(如下图所示)高低排列整齐,则表示此排名策略可能含有较强的投资意义,排名高的股票更有可能产生超额收益。专业对冲投资者也非常喜欢此类形状的图形,他们可以买入最高分段股票,卖空最低分段股票,以获得相对收益。 图中 0-20分段代表综合排名分在0-20之间的股票,0-20这个分段里的股票是排名分最低的股票,也就是排在最后的股票。80-100分段代表综合排名分在80-100之间的股票,80-100这个分段里的股票是排名分最高的股票,也就是排在最前面的股票。用户可以在每日选股里查看到每个股票的综合排名分。

整齐的高低排列代表较好的排名策略

图 1 整齐的高低排列代表较好的排名策略

与年化收益相应的累计收益曲线图展示各分段的股票收益在时间轴上的变化,用户可以获取更加详细收益变化的信息。

整齐的高低排列代表较好的排名策略

图 2 累计收益曲线展示更加详细的收益变化

反过来,如果在年化收益图中(如下图)各分段收益高低错落,则代表此排名策略的投资意义不强,即便排名策略在策略回测中收到较好的收益,也需要谨慎的使用这个排名策略。

整齐的高低排列代表较好的排名策略

图 3 高低不齐图形往往代表排名策略投资意义不强

如果排名指标里含有空值(NULL),那么无论从小到大排还是从大到小排空值一直排在最后。所以从大到小排名的80-100分段和从小到大排名的0-20分段收益不一定一样。 如果将指标中的空值筛掉, 从大到小的80-100分段和从小到大的0-20分段的收益将会一样或者非常近似。 数据空值代表数据库里就没有这样的数据, 比如有很多股票的预期盈利增长是空值,表明很多股票没有5年净资产收益率的数据。用户可以通过将指标放入到筛选条件来排除指标里的空值,只要指标在筛选条件使用, 指标的空值就会被筛掉。比如筛掉市盈率中的空值, 可用筛选条件市盈率 >0。


大盘择时

使用大盘择时可以有效减小由整体市场波动带来的系统性风险,减小策略的最大回撤率。市场择时可分为两类,一类是趋势择时,即根据大盘指数的均线金叉死叉来判断趋势的转换。趋势择时有一定的滞后性,即大盘趋势转换一定时间后,才会发出信号。另一类是反转择时,即抄底逃顶择时,就是在大盘跌破某个下限时转为买入,在大盘涨破上限时卖出。反转择时有一定的提前性,即大盘趋势还没有发生转换就会发出信号。在实际使用中,趋势择时更为常用,而趋势择时和反转择时可以结合使用。

趋势择时

趋势择时有4个技术面指标,分别是MA(移动平均),MACD,DMA(平均线差指标),和TRIX(三重指数平滑移动平均指标)。当指标出现金叉时,转为牛市,即买入;当指标出现死叉时,转为熊市,即卖出。大盘指数默认为上证指数,用户可以在指标编辑界面选择其它主要大盘指数和行业指数。

MA金叉和死叉的判定条件

DMA = MA短线 – MA长线(MA短线默认为上证5日均线, MA长线默认为上证60日均线。)

金叉条件: MA短线(t) > MA短线(t-1) and DMA (t) > 0 and DMA (t-1) < 0

死叉条件 MA短线(t) < MA短线(t-1) and DMA (t) < 0 and DMA (t-1) > 0

其中‘XX(t)’表示当日的指标, ‘XX(t-1)’表示前一日的指标。以下公式皆同。

MACD金叉和死叉的判定条件

DIF(快线) = EMA短线 - EMA长线(EMA短线默认为上证12日指数移动平均线,EMA长线默认为上证26日指数移动平均线。)

DEA(慢线) = EMA(DIF, M ) (DEA 默认为DIF的9日指数移动平均线。)

金叉条件:DIF(t) > 0 and DIF(t) > DIF(t-1) and DIF (t) > DEA(t) and DIF (t -1) < DEA(t-1)

死叉条件:DIF(t) < 0 and DIF(t) < DIF(t-1) and DIF (t) < DEA(t) and DIF (t -1) > DEA(t-1)

DMA金叉和死叉的判定条件

DMA = MA短线 – MA长线(MA短线默认为上证5日均线, MA长线默认为上证60日均线。)

AMA = MA(DMA, M)(AMA默认为20日DMA移动平均)

金叉条件: DMA(t) > DMA(t-1) and DMA (t) > AMA (t) and DMA (t -1) < AMA (t-1)

死叉条件:DMA(t) < DMA(t-1) and DMA (t) < AMA (t) and DMA (t -1) > AMA (t-1)

TRIX金叉和死叉的判定条件

TR = EMA(EMA(EMA(上证指数,N),N),N) (N默认值为120天)

TRIX = (TR(t) – TR(t-1))/TR(t-1)

MATRIX = MA(TRIX, M) (M默认为5天)

金叉条件: TRIX(t) > TRIX (t-1) and TRIX (t) > MATRIX (t) and TRIX (t -1) < MATRIX (t-1)

死叉条件: TRIX(t) < TRIX (t-1) and TRIX (t) < MATRIX (t) and TRIX (t -1) > MATRIX (t-1)

用户可以点击择时条件的编辑图标来修改条件参数。

成交量均线择时

成交量均线择时(MAVol金叉死叉)也是趋势择时的一种。MAVol是指数成交量的多日均线。量在价先,根据大盘成交量趋势来判定牛熊有可能比只用价格来判定取得更好的效果。

MAVol金叉死叉的判定条件

DMAVol = MAVol短线 – MAVol长线(MAVol短线默认为上证5日成交量均线, MA长线默认为上证60日成交量均线。)

金叉条件: MAVol短线(t) > MAVol短线(t-1) and DMAVol (t) > 0 and DMAVol (t-1) < 0

死叉条件MAVol短线(t) < MAVol短线(t-1) and DMAVol (t) < 0 and DMAVol (t-1) > 0

反转择时

反转择时根据主要板块两个基本面指标PE(市盈率)和PB(市净率)来实现。当PE小于某个值时,市场过于悲观,可以抄底买入,发出牛市信号,即买入信号;当PE大于某个值时,市场过于疯狂,需要逃顶卖出,发出熊市信号,即卖出信号。PB择时的工作机制和PE相同。板块默认为全市场,用户可以自己选择主板,中小板和创业板作基本面择时。

趋势加反转择时

MA_Bias均线择时附加根据乖离率的逃顶和抄底。设计源于网络大V持有封基的乖离率择时。

这个择时需要设置4个参数, MA短线和MA长线是MA择时参数,金叉就是牛市,死叉就是熊市。

当MA短线高于MA长线超过上限(默认10%)时,转为熊市逃顶。当MA短线低于MA长线超过下限时(默认-10%)时,转为牛市抄底。

同时使用多个择时条件

一个策略可以同时使用多个技术面条件来判断大市的牛熊转换。比如一个策略同时使用了3个择时条件,在择时的设置中,用户可以分别指定牛市转换需要满足几个条件,熊市转换需要满足几个条件,比如可以设置当3个条件同时满足牛市条件才能转牛,但只要其中2个满足熊市条件,就能转熊。

限制

市场择时条件只对策略回测有效,不影响每日选股或者排名分析的结果。

策略回测计算只在调仓日根据牛熊条件判定买或者不买股票,不会在调仓周期中间某一天买入或卖出股票。

市场择时条件


交易模型

一创策略研究界面将策略定义分成三个主要部分:选股、交易、择时。选股设置包括筛选条件和排名条件,交易设置包含交易模型I--定期轮转重平衡仓位的交易模型和交易模型II--根据是否满足卖出条件来作轮转、择时设置就是大盘择时。

交易模型I是一创原有的定期轮动模型,在每个调仓日,卖出不满足选股条件的股票,买进满足选股条件的股票,所有仓内股票在调仓日重新平衡为等权重(除了那些因停牌或涨跌停而无法操作的股票)。这种模型尤其适合快速轮动短周期策略。

交易模型II,交易模型II的特点是必须有单独的卖出条件。现在用户可以定义4个卖出条件,排名名次大于某个阈值,持有天数大于某个阈值,止盈和止损。仓内股票只要满足一个卖出条件,就会被卖出,也就是说卖出条件之间是或的关系。在调仓日,策略首先会卖出可以卖出的股票,然后使用仓内资金买入符合买入条件的股票。当仓内资金过少时(少于理想仓位的10%),就无法买入新股票。当股票不满足卖出条件时,就会被继续持有。所以如果卖出条件发生不频繁,即便是调仓周期只有1天,交易模型II的买卖次数也会比较少。相对于模型I,模型II的交易次数会比较少,而且个股的仓位一般不做重新平衡。

在交易模型I里,用户直接指定持仓股票个数,而在交易模型II里,用户使用个股理想仓位来间接指定持股股票个数。比如理想仓位是10%,则策略尽量用10% 的仓内资金买入新股票,策略大约持仓10只股票。用户可以设定个股仓位范围,只要在理想仓位的范围内,个股仓位不作调整。比如理想仓位是10%,股票仓位的范围是 7% 到13%,在这个范围内,仓位不作调整。当股票仓位低于这个范围而且在买入清单前面,则补仓至(尽量)理想仓位;当股票仓位高于这个范围,则卖出部分仓位,仓位调回到理想仓位。

在交易模型II里,用户还可设置新股票买入限制。进一步过滤来自于选股策略的买入清单。在买入清单的股票只要不满足一个限制,就会被过滤掉。注意:用户必须设置至少一个卖出条件,但不必设置买入限制。不设置买入限制,从选股策略来的所有股票都会被尝试买入。

选择模型I或模型II?

模型I更简单且容易理解,我们建议新用户首先使用交易模型I来研究策略。模型II不会在每个调仓日自动平衡仓位,交易频率较低,相对来说更容易操作。而且单独的卖出条件使模型II更加灵活。一些实盘的用户可以尝试使用模型II。

模型I策略如何变成摸型II策略?

比如下图1中模型I策略, 选股条件为成交量 > 0,按价格从小到大排序,调仓周期为5天,持仓股票为10只。这个策略买入价格最低的10只非停牌股票,每5天调一次仓。转换到模型II策略时,选股条件不变,调仓周期可依然设为5天,而理想仓位为10%,即表示策略大约可以持有10只股票。卖出条件为排名名次大于等于11,即如果排名不在10名以内就卖出。这样设置的模型II可以和模型I有类似的结果。

模型I变成模型II

图1 模型I变成模型II。

模型I和模型II有些不兼容的设置。在模型I里,个股最大买入仓位默认为100%,意思是如果选股策略选出来的股票只能买入1只,那么100%的资金会投入到同一只股票里。在模型II里,个股最大买入仓位就是理想仓位,无论选出1只股票还是10只股票,都使用10%的仓位买入。模型I里不允许仓位偏离,在每个调仓日都要重新平衡所有股票的仓位,在模型II,股票仓位在一定范围内不会调整。以上区别使同一个选股策略在模型I和模型II之间收益不同。

模型II可以实现更严格的买入限制:比如只买入排名在前5名的股票(不设这个限制,则和模型I类似,前10名股票+5只备选股票都可以被买入)。仓内同行业的股票不超过3只,以分散行业风险。距离上次卖出间隔大于等于20天,这样刚卖出的股票不会在下一个调仓或下几个调仓日被买入。(模型II默认在调仓日卖出的股票不会再同一调仓日买入。)这个限制可以防止止损股票被立即买回的情况。加入这些买入限制后,一次能被买入的股票就会变少,这时缩短调仓周期,比如设置调仓周期为1天,可以实现逐步建仓的策略,这样不必在一天只内一定要买入10只股票。

在卖出条件里,可以适当放宽按排名卖出的条件,比如到排名20名以后才卖出,这样可以减少交易频度。用户还可以按照持有天数卖出,假设一只股票在仓内最长持有天数为20个交易日,过了这个阈值,无论排名再高,也要卖出。止赢止损也分别可以设置条件对应的卖出条件。

模型I变成模型II

图2 模型II的参数设置。

图2显示了比图1 更复杂的模型II交易策略。所有的买入限制和卖出条件都被设置,调仓周期缩短为一天。通过这些交易条件的设置,我们可以看到模型II可以实现较为复杂的交易策略。

回测效果对比

将同样选股策略做过去4年回测, 图1模型I和图2模型II得到的结果在图3和图4中展示。

模型I变成模型II

图3 模型I的回测结果

模型I变成模型II

图4 模型2的回测结果。

我们可以看到模型II交易策略可以减小最大回测率,增加夏普比率。注意在这里作者只是为了讲解目的,并没有对模型II交易策略作任何调优。模型II有可能得到比模型I更好的结果。

牛熊转换的仓位控制

牛转熊时,比如熊市仓位是30%,在模型I里,尽量将总仓位压到30%,如果有的股票停牌无法减仓,其它股票的仓位会减小更多;在模型II里,30%一方面代表总仓位的30%,另一方面是指个股理想仓位的30%,比如牛市里个股理想仓位是20%,则在熊市里个股理想仓位为6%, 每只股票的仓位都会尽量向理想仓位靠,从而达到减仓至30%的目的。特殊情况是碰到停牌或涨跌停导致股票无法减仓,此时会继续以理想仓位(6%)持有不符合卖出条件的个股;而对于达到卖出条件的个股,将其卖出后如果仓位大于熊市仓位即30%,则不会买入新的股票。如果卖出后小于熊市仓位,则会根据排名条件依次以理想仓位(6%)买入新的股票,直到达到熊市仓位。

熊转牛时,模型I会将总仓位升到100%,满仓平权买入股票;模型II会将个股理想仓位复原,仓内的股票和新买入的股票仓位都会尽量向理想仓位靠拢。

排名分析是否受到交易模型的影响?

交易设置只影响策略回测的结果,对每日选股和排名分析都没有影响。排名分析使用类似于模型I的交易模型,但不会考虑停牌涨跌停的影响。它只受到选股设置的影响,完全忽略市场择时设置和交易设置。


调仓指令

一创有两个交易模型, 模型I和模型II, 它们的调仓指令有不同的含义。

模型I调仓

模型I是一个定期调仓并且重新平衡仓位的交易模型。模型I对持仓股票的最大数量做出了规定, 比如最多持有5只股票, 意思就是在每个调仓日策略都试图买入或持有5只股票, 每只股票的仓位是20%, 当可以买入的股票数小于5只时,比如只有3只,策略会按照33%的个股仓位买入3只股票。 (用户可以改变个股最大买入仓位100%的设置,设为比如20%, 在这种情况下,即便只能买入3只股票,策略依然会按照20%的个股仓位买入3只股票,空出40%的仓位为现金。)

调仓指令有5个信号, 卖出, 持有,买入,持有(备选),买入(备选)。 仓内的股票如果不符合选股条件, 就要被卖出, 如果依然符合选股条件,则继续持有。 卖出股票空出来的资金就可以买入新的符合条件的股票。两个备选信号的目的是为了应对由于停牌或涨跌停而引起的股票不能买卖的情况。信号是买入的股票有可能停牌或一字涨停而无法买入, 这时策略将会试图买入排在前列的备选股票,标记为买入(备选)。 如果被持仓的股票也在备选名单里,这只股票的信号就是持有(备选), 意思是如果排在它前面的股票可以被买入, 则卖出这只股票, 如果排在前面的股票不能被买入,则可以继续持有这只股票。

备选股票的数量默认是5只, 用户可以在0只(也就是不要备选)和20只之间做调整。

模型I调仓指令首先列出需要卖出的股票, 然后按排名顺序列出需要买入或持有的股票, 排在最大持有只数以外的股票会标记为备选。 举个例子, 一个模型I策略最多持有2只股票, 备选股票数为5只。当前持仓的股票为 股票A(60%)和股票B(40%)。调仓日的调仓指令是:

1. 股票A 卖出 
2. 股票C 买入 
3. 股票D 买入 
4. 股票B 持有(备选) 
5. 股票E 买入(备选) 
6. 股票F 买入(备选) 
7. 股票H 买入(备选) 
8. 股票G 买入(备选) 

以上调仓指令,如果没有停盘和涨跌停这些复杂的因素,调仓结果就是卖出A和B, 买入C和D, C和D的仓位各是50%。

以下例子列出一些停牌情况的调仓结果:

停牌情况      调仓后持有股票 
C停牌        B(50%)和D(50%) --卖出A, 无法买入C,顺位买入D和继续持有B。B和D的仓位重平衡。 
B和C停牌     B(40%)和D(60%) --卖出A, 无法买入C,顺位买入D和继续持有B。B的仓位不变。 
C和D停牌     B(50%)和E(50%) --卖出A,无法买入C 和D, 顺位继续持有B和买入E。 B和E的仓位重平衡。 
A停牌        A(60%)和C(40%) --无法卖出A,只有一个空位,卖出B, 买入C。 A的仓位不变。 
B停牌        B(40%)和C (60%) --无法卖出B, 只有一个空位,卖出A买入C。 B的仓位不变。 

以上策略,在调仓后,仓内两只股票的仓位将尽量调整为50%,即便是A和B一直持有下去它们的仓位也会每次重平衡为50%。 当A和B有停牌的情况时, 停牌股票的仓位不变。 模型I仓位总的原则是:当仓内股票停牌时,这只股票的仓位保持不变, 余下的资金平均买入或持有股票。

一字涨跌停会使一只股票不能买或不能卖,处理方式和停牌一样。 比如,当A一字跌停时,无法卖出,按照A停牌处理。 当C和D一字涨停时,无法买入, 按照C和D停牌处理。当B一字跌停时, 无法卖出, 按照B停牌处理, B一字涨停时,无法买入补平仓位。

模型II调仓

模型II定期卖出符合卖出条件的股票,再用空下的资金按顺序买入在清单里的股票。和模型I不同, 模型II不规定最多持仓股票数,而是规定个股理想仓位。 比如想持有两只股票的策略可以设定理想仓位为50%。当策略买入新股票时,将尽量按照50%的总仓位买入新股票,如果仓内资金不足50%, 则能买多少是多少。 当仓内资金小于理想仓位的十分之一时,则不再买入新股票,以避免造成碎片化持股。比如理想仓位是50%时, 仓内资金小于5%, 则不再买入新股票。 和模型I的一个重要区别是模型II有仓位偏离比例概念, 也就是说只要股票仓位在理想仓位的偏离范围之内,在调仓日就可以保持现有仓位,不作重新平衡。 如果股票仓位在偏离范围之外, 在调仓日就需要减仓或补仓。 比如理想仓位是50%,仓位偏离范围是30%, 则这只股票的最低合理仓位是 50% * (1 - 30%) = 35%, 最高合理仓位 50% * (1 + 30%) = 65%。 当股票仓位高于65%时, 策略会减仓这只股票到理想仓位;当股票仓位低于35%时, 而且被策略选中时,会尽量加仓至理想仓位。

模型II的调仓信号有5个, 卖出,减仓至目标仓位, 持有, 买入,加仓至目标仓位。 (目标仓位也就是理想仓位。)当仓内股票符合一个卖出条件时, 就被卖出; 当仓内股票不符合卖出条件时, 有三种情况, 第一种情况是仓位在偏离范围之内, 维持原有仓位不变, 标记为持有;第二种情况是仓位高于最高合理仓位, 减仓至理想仓位,标记为减仓至目标仓位; 第三种情况是仓位低于最低合理仓位而且被策略选中,加仓至理想仓位, 标记为加仓至目标仓位。一只新股票被策略选中时,将按理想仓位买入, 标记为买入

模型II也有备选股票的概念, 备选只数固定5只。 比如调仓日需要买入1只股票,模型II会推荐 1+5 = 6只买入(或加仓)的股票。 意思是如果排在前面的股票能买入, 就买入, 如果不能买入, 就试图买入排在后一名的股票,直到可以买入股票为止或者扫描完买入清单为止。 当策略有较严格的买入条件时, 比如在新股买入限制里设定排名名次小于等于3, 备选股票可能小于5只股票。

使用一个和模型I类似的例子,一个模型II策略的理想仓位是50%,仓位偏离范围是30%。 备选股票数为5只。当前持仓的股票为 股票A(60%)和股票B(40%)。调仓日的调仓指令是:

1. 股票A 卖出 
2. 股票B 持有 
3. 股票C 买入 
4. 股票D 买入 
5. 股票E 买入 
6. 股票F 买入 
7. 股票H 买入 
8. 股票G 买入 
 

模型II调仓指令首先列出需要卖出和减仓的股票, 然后列出继续持有的股票, 最后列出需要买入和加仓的股票。

上例中股票A满足卖出条件, 需要卖出。 股票B的仓位是40%, 在合理的仓位范围(35%到65%)之内,所以仓位不变,继续持有。 接下会有6股票按先后顺序在买入清单里。 如果所有的股票都可以买卖,调仓的结果是 B(40%),C(50%), D(10%)。也就是卖掉股票A后,将得到60%资金, 用50%买入C,用剩下的10%买入D。 (这里需要注意的是个股的仓位权重是按照调仓日前一天的收盘价算出, 在调仓日, 由于股票价格波动,股票的仓位会变化, 所以股票A被卖出后,得到的资金有可能比60%多,也有可能比60%少, 所以C和D 的仓位,尤其的是D的仓位,会根据调仓日的实际情况作出决定。 这里只是为了说明方便, 忽略价格波动引起的仓位变化。)

以下列出一些停牌情况和调仓结果的例子:

停牌情况      调仓后持有股票 
C停牌        B(40%),D(50%), E(10%)  --卖出A, 无法买入C,顺位买入D和E。 
A 停牌       A(60%), B(40%) 			--无法卖出A, 无法调仓。 
C和D停牌     B(40%),E(50%),F(10%)   --卖出A,无法买入C 和D, 顺位买入E和F。

以上例子表明, 模型II会尽量按理想仓位买入新的股票, 当资金不足时, 也会买入部分仓位的股票,而不是让资金闲置。比如用50%的仓位买入C, 用10%的仓位买入D,这时D的仓位小于最小合理仓位35%,所以到下一个调仓日, 如果有足够资金而且D排在股票清单前列,将被加仓。

模型II另一特点是不会频繁自动平衡仓位,只要个股仓位在合理范围之内,仓位就保持不变,这和模型I在每个调仓日重平衡仓位很不一样。

以上所介绍的都是一创量化引擎如何去执行调仓指令,一创的调仓历史和实盘收益是按照这一套规则计算出来的。 用户在实际执行调仓指令时,在仓位和买卖价格方面必然会有一些差别, 最后的结果可能比一创的结果好也有可能比一创的结果差。


股票池示例

用户有很多时候需要在指定的几只股票里制作轮动策略,比如在4只银行股票里轮动。这时候,就需要使用股票池。

一个股票池可被看作一个自定义投资域,股票池功能可以让用户为策略设定一个更灵活的投资域。用户可以到我的主页里创建股票池. 股票池分为三种:静态股票池,动态股票池和合成股票池静态股票池是一个手工键入的股票代码集合(或者拷贝粘贴一个股票代码表)。静态股票池是最常用的一个股票池,使用静态股票池用户可以实现几只股票之间的轮转策略,比如几个银行股票之间的轮转策略。 动态股票池是根据选股条件和排名条件产生的动态股票集合,股票清单可以每日动态变化。使用动态股票池,用户可以实现分层量化策略,也就是将筛选排名条件分在两步里完成,这样策略的表达能力更强。比如用户可以首先创建一个动态股票池:总市值和股价综合排名最小的100只股票,然后再在这个股票池里面选择市盈率最小的10只股票。动态股票池创建界面和策略创建界面及其相似,只是更简单些,没有策略回测那些设置。 合成股票池可以实现两个股票池之间的“交集”、“并集”、“排除”三类集合操作。

股票池使用示例

示例1 四大银行轮动策略

1. 点击策略研究页面的“加号按钮”如下图:

选择股票池类型

2. 创建一个4大银行的静态股票池,我们可以将四大银行(即工商银行 601398,建设银行 601939,农业银行 601288,中国银行601988)的股票代码直接输入到股票列表里,然后点击保存。如下图:

四大银行

3. 创建股票池完毕后,选股设置页面->我的股票池,点击下拉菜单,“四大银行”股票池出现在选择范围的下拉菜单里,如下图:

创建股票策略

4 选择四大银行股票池,就可以制作在四大银行之间轮动的量化策略。使用每日选股可以确认股票池里的股票确实是四大银行。如下图:

量化策略

5 然后可以创建一个量化策略,持有市盈率最低的一只四大银行股票,每20个交易日轮动一次。如下图:

策略结果


示例2 排除四大银行的银行股轮动策略

有用户认为四大银行没有增长潜力,需要制作非四大行的银行量化轮动策略。这时候,可以将四大银行股票池作为黑名单,从股票中排除。

1 创建一个合成股票池“排除四大行“,定义是”全部股票排除四大银行“。

排除四大行

2 在创建策略->]>择股设置页面,选择范围设定为“排除四大行“,行业为 “银行”,通过每日选股,可以看到银行股票列表里已经排除四大行。如下图。

排除四大行

排除四大行


示例3 动态股票池示例

使用动态股票池可以做出更加复杂或更加灵活的选股策略。比如从市盈率最小的100只股票里选出市值最小的5只股票持有策略。

1 创建一个叫做“小PE100”的动态股票池,定义是市盈率最小的100只股票。下图显示这个动态股票池的定义:

小PE100

2 基于这个股票池创建一个市值最小的5只股票策略。如下图设置:

5只股票

3 从2010年开始的回测结果如下:

回测结果


更新日期:2018-08-01