Jacobb75 发布于2024-07-12
回复 33
浏览 3818
178
#引言
本次研究在择时,选股与仓位管理上系统整理了我自己的研究的结果,力争构建出一个相对稳健,风险收益比高,且具有长期业绩表现优势的权益资产投资组合,为投资者朋友做好交易提供一些自己的看法。
为此,我会在接下来的四个部分中详细阐述择时,选股,仓位管理以及动态风格追踪上的研究思路,并在第五部分进行初步的因子分析。
首先,我会描述择时的具体逻辑。我会构造一个虚拟的追涨型投资者不断地参与市场,在参与者投资逻辑保持不变的前提下,通过模型调整该投资者参与市场的时间点位动态判断最有利的择时位置。
其次,我会详细描述我的选股逻辑。根据一些基本面的指标,动态筛选出符合基本面要求的股票并进行交易模拟。
之后,我会介绍仓位管理的一些具体思路。仓位管理分为纵向和横向仓位管理。纵向仓位管理是指根据某一时点所有股票池中依据某些标准股票排序的先后来差异化安排仓位,一般来说,排序靠前的股票会更重仓;横向仓位管理则是指根据某股票目前价位和历史股价的高低判断仓位,长期下跌的股票会更重仓。仓位管理的研究结果表明,科学合理的差异化仓位安排有助于提高模型整体的夏普比率和投资体验。
接下来,我会叠加动态的风格追踪模块,依据某些数据判断市场某种风格(大盘小盘)的相对强弱,定期对标的股票的排序作出判断,力争做到“某一风格强势时重仓该风格股票”,尽量捕捉结构性行情,规避单一风格暴露的风险。
最后,我会初步构建一些简单的因子,以避免仅通过市值对股票进行排序的局限性。
本次研究的基本结论如下:
每个交易日中午收盘前一段时间交易,长期来看能够带来稳健的收益体验;
小市值暴露往往具有更高的超额收益,暴露的风格越极端波动就会越大;
通过合适的仓位管理可以在不大幅增加回撤的前提下实现更高的收益;
通过一些因子构建和量化指标追踪市场风格切换有助于我们及时调整策略,规避风格集中的风险。
#1.1.择时规律探究:模型搭建
考虑这样一种情况:
某投资者每周选择一天某一时刻观测股市,如果当时股市行情不错,则买入当天涨幅最好的宽基指数ETF并持有到下一周同一时刻;
如果股市当天行情不够好,则选择空仓;
到下一周同一时刻继续观察,如果大盘仍旧强势,则切换到涨势最好的宽基指数ETF继续持有,如果大盘弱势,则清仓。
这样一种策略,长期来看究竟能不能为投资者带来收益呢?
粗略观察,这是很多散户典型的操作方式:追涨;由于是周频,这个散户盯盘的频率也不是很高。根据经验来判断,盲目追涨并不是一个优秀的策略,很有可能会导致严重的亏损。但是事实真的如此吗?我们用一个简单的策略模拟出这样的交易习惯,结果出人意料:在某些特点的时间段追涨反而有良好的收益体验。
具体的策略细节如下:
1、给定大盘指数:上证,深成指,创业板指数,沪深300,中证500,中证1000指数;
2、给定跟踪以上宽基指数的ETF基金;
3、判断指数基金是否正常上市;
4、判断沪深300指数在观察时刻5日均线并未呈现空头发散形态,即认为大盘相对强势;
5、计算步骤1中宽基指数的中期BBI指标(牛熊分界线指标,即多周期加权平均均线),并计算当时动量因子(
动量因子=BBI指标/观察时刻价格,动量因子小于1表示观察时刻价格在多周期加权平均的分界线之上,视为多头市场);
6、如果步骤4中判断市场今天相对强势,则买入步骤5中动量因子最小的指数基金;
7、下一周期重新进入1-6的判断,
如果大盘不好(沪深300 5日均线空头排列),清仓,买入银华日利基金;
如果表现最好的宽基指数是上涨的,则买入动量因子最小的基金,清空持有的基金,套现的钱买银华日利;
如果拟买入动量因子最小的基金已经持仓,则不操作。
根据以上的设定可以发现,观察时刻对模型净值走势影响巨大;不同日期的观察时刻都不相同,不同的观察时刻会观察到不同的价格,进而会计算出不同的BBI指标和动量因子,对交易决策也有影响。简单来说,有可能早上观察认为是多头行情应该开仓,换个时间下午观察可能就是空头行情了。由于这种特点,我们可以运用量化技术模拟出一个交易周期内所有不同时刻进行交易的净值走势,从中寻找出一段时间内的开仓时间对交易模型净值影响的规律。
#1.2.不同时间下的择时模型的净值走势
时间
回测时间范围选择为2015.4.27到2024.5.31.共9年
佣金
设定为万分之五。
观察时刻设定
周一到周五每天观察,共五天;每个交易日从9:45——14:45每15分钟观察一次,共计5*15=75个观察时刻。
每个观察时刻,我都会在运行一遍程序,以获取每个时刻模型在回测时间范围内的累计收益,夏普比率和最大回撤。
结果展示

以每个子表格中最左上方的数据为例,该结果表明如果周一上午9:45运行策略,累计收益-10.88%,夏普比率-0.31,最大回撤36.92%,以此类推。
通过以上结果,我们可以发现以下结论:
从累计收益率的角度观察,交易时间确实有非常大的影响。最高的收益率能达到176%左右,而相应的最差的收益体验会亏损6成。
从夏普比率来看,好的时机能够达到0.5左右的夏普比率,已经达到合格交易策略的水平线了,差的入场时机夏普-0.9,体验很糟糕。
最大回撤来看差别并不大,最好的情况回撤在25%左右,平均30%,差的入场时机会在70%以上。
总体来看,每周第三个交易日中午左右开仓交易,策略的表现具有显著的优势。周三11:15开仓,能够实现累计175%左右的收益,最大回撤28%,具有长期稳健的持有体验。
一个可能的原因在于周三是一周的中间时刻,交易相对清淡,周三的中午又是周中的周中,交易量有可能会进一步萎缩。在缩量的情况下,如果股市仍旧能保持住一个稳健多头的态势,一定程度上可以说明这个多头的趋势是比较强势的,在多头势力强势的时刻入场胜率和赔率都会比较高。最近几年行情发生重大转折的关键节点(2021.7.28,2022.3.16,2022.4.27.,2024.2.6.等),大都发生在周二周三,而且很多时候影响大的坑都是上午砸下来从下午开始拉升的,比如22年4月27日:

周三中午开仓能够捕捉这些交易机会,因而模型净值表现具有优势。策略净值走势在市场beta较好的时候能够跟上行情,同时在市场近年相对疲软的时刻降低了交易频率保住了大部分利润。如果未来A股的交易规则没发生太大变化,这种规律有望延续。
相应的净值走势展示如下:

#1.3.择时模型的核心要点
尽管模型主观性比较强,交易的ETF品种有限,存在过拟合的风险,相关的规律没有经过长期的时间验证,但是模型帮助我们找到了比较好的入场时间点:每周三的中午11:15左右。为了简化代码并尽可能保持鲁棒性,未来在选股和仓位管理方面我们都会在这个时间入场。
#2.1.选股+纵向仓位管理模型的核心逻辑
选股的思路可以简化成一个股票池,具体标准为:
市净率>0
营业收入同比增长率>0
净利润同比增长率>0
经营活动产生的现金流量净额/经营活动净收益>1
按照总市值选择最小的100支股票。
符合以上四个条件的上市公司,营业状态相对稳健,经营异常风险较低。尽管市值较小,不过具有业绩支撑,退市等极端的情况发生的概率低,同时上涨的空间较大,适合长期做波段投资,为我们更好的研究仓位管理提供支撑。
纵向仓位管理是指根据股票池中各种股票的特性采取差异化权重的一种仓位管理思路。本次研究我采用的是市值下沉的思路,即在股票池中更多的重仓小市值股票,以判断仓位管理的有效性。为了对比,也会回测大市值下沉的仓位管理方式。具体的逻辑如下:
将所有100只股票按照流通市值排序编号,每个股票权重=(101-个股排序编号)/(总编号之和)。
举例来说,如果按照市值由小到大进行排序,市值最小的股票编号为1,则该股票的权重为:(101-1)/5050=1.98%,市值最大的股票编号为100,权重为(101-100)/5050=0.0198%。反之大市值下沉亦然。
#2.2.选股+纵向仓位管理模型的净值走势
时间
回测时间范围选择为2021.2.22到2024.6.10.共3年,分钟级别数据,时间太长模型回测耗时更长。
买入时间借用择时规律探究的结论,设定为每周三中午11:15,即每周三重新筛选股票池对持仓股票做动态调整,根据相应仓位买入股票池中对应的股票;
同时每日做止盈止损和涨停开板观察:止损在5%,止盈在30%,昨日涨停的观察时刻如没有继续涨停则卖出;止盈止损和涨停判断做到每5分钟观察一次以提高模型运行效率。
佣金
设定为万分之五。
多个模型对比
运行程序三次:一次是等权重配置,一次是根据小市值高权重配置(小市值下沉),一次大市值高权重配置(大市值下沉),比较三次模型结果的的风险收益特征。
结果展示
|模型类型| 累计收益| 夏普比率| 胜率 |盈亏比| 最大回撤|
|---|---|---|
|大市值下沉| 91.00%| 0.863| 0.123| 1.63| 25.37%|
|等权重 |64.69% |0.673 |0.137 |1.642 |22.11%|
|小市值下沉| 83.22%| 0.668 |0.134| 1.71 |26.72%|
上表的结果表明,在同样选股范围下,不同的仓位管理会带来风格迥异的投资体验。在选出的100只股票中,我们可以发现等权重配置具有最低的回撤。等权重是最有效率分散风险的一种投资方式,根据以上4个标准选出的股票没有明显的行业偏好,等权重能够更好的分散风险;同时由于缺乏明显风格集中,过于均衡的配置导致累计收益相对较低。
另外两个策略来看,我们发现无论是大市值下沉还是小市值下沉,都能有更高的累计收益。一个可能的原因在于单一风格的暴露能够更好的把握近年来行情的beta。在回测的区间内,A股市场经历了3轮风格切换:21年初——21年9月新能源成长股行情,21年9月——23年12月小微盘暴露,24年1月至今的大盘股暴露。从直观感受,在新能源成长股行情阶段,三者差异应该不大;在小微盘风格明显的时间,小市值下沉应当会有更好的收益体验,而在24年至今中特估成为主线的期间,重仓相对大市值的股票更有可能避免小盘股踩踏的行情。我截取了三个时段的模型净值表现如图:
2021.2.22——2021.9.13.
|模型类型| 累计收益| 最大回撤|
|---|---|---|
|大市值下沉| 33.42%| 5.23%|
|等权重| 22.24%| 4.05%|
|小市值下沉| 26.48%| 6.38%|
2021.9.14——2023.12.31.
|模型类型| 累计收益| 最大回撤|
|---|---|---|
|大市值下沉| 57.94%| 15.86%|
|等权重| 56.33%| 14.34%|
|小市值下沉| 82.50%| 16.61%|
2024.1.1.——2024.6.10.
|模型类型| 累计收益| 最大回撤|
|---|---|---|
|大市值下沉| -8.98%| 24.05%|
|等权重| -13.85%| 21.78%|
|小市值下沉| -20.69% |26.20%|
上述结果可以表明,尽管模型筛选出的100只股票已经是全市场市值最小的一批了,但是在大盘风格不同的时期,我们并非只能体验到一种极致的小盘股风格:通过不同的仓位管理模式可以带来不同的收益体验。首先,在大盘beta相对不错的时间段,大市值下沉由于更有可能重仓了行业龙头,所以净值表现最好;在小微盘风格为主的时间段内,更进一步的重仓小市值股票给我们带来了更高的绝对收益;在最近一段时间的小盘股踩踏的行情中,“在小市值中重仓大市值”帮助我们减轻了恐慌性下跌的风险,实现了更稳健的收益体验。
#2.3.选股+纵向仓位管理模型的核心要点
选股模型告诉我们,选择基本面稳定的小市值公司,在过去的3年中具有显著的相对指数的超额收益;通过合适的纵向仓位管理思路,适度集中在小市值股票上,往往在额外承担适量波动的基础上可以得到更高的回报和夏普比率。
#3.1.横向仓位管理模型的核心逻辑
横向仓位管理是指根据股票池中各个股票价格相对一段时间内其历史价格的高低作出不同的仓位管理。简单来说,股票池中某股票如果经历长期下跌(上涨)达到目前的价格水平,我们可以适当超配(低配),根据历史走势的趋势动态调整仓位。
之前有不少投资者研究过,股票某一时刻的价格是一个随机变量,根据大数定理,该随机变量的分布随着样本数量的增加最终会收敛于某一正态分布。通俗解释即为:在某N天内,股票的价格p作为一个随机变量会服从某一随机分布,随着天数N的不断增加,这个随机变量p最终会趋近于服从某一正态分布,即
$$
p-N(\mu,\sigma^2)
$$,其中$\mu$代表均值,$\sigma^2$代表方差
我们可以更进一步,假设第N+1天股票的价格仍旧服从这个分布,那我们可以利用这个分布计算第N+1天股票价格的分位数。分位数代表了第N+1天当某一价格p出现的概率为q时,这个价格p的具体数值。简单来说,如果价格服从这个分布,当给定概率为5%时,粗略计算的分位数为2和-2;这表明如果价格仍旧满足这个分布,那么我们看到股价大于2或者小于-2的概率应该不超过5%。
这表明,如果我们假设之前的分布不变,而我们实际观测到了股票价格大于2或者小于-2,那表明这样的事情发生的概率非常小(不超过5%)。如果我们观测到价格大于2或者小于-2,说明小概率事件发生了,那就证明大于2(或者小于-2)是一个相对异常高(低)的价格,在这样异常的价格水平下,我们就要做好低配(超配)某一资产的准备,从而为实际仓位管理做好基础。
具体的计算思路如下:
1,计算一段时间内(N=21一个月)标的价格的平均数$\mu$,$\sigma^2$方差。
2,计算第N+1天某时刻的价格p的相对均值的偏离数$K=\frac{p-\mu}{\sigma^2}$。
3,查表计算5%概率的分位数,粗略可以理解为2和-2。
4,比较K,2和-2的大小。如果K>2,表明价格异常高,可以适当减仓;如果K< -2,表明价格异常低,可以适当加仓;如果2>k>-2,则价格相对合理,可以正常建仓。
看下实际例子:

上图中列示了2021年底至今的上证指数走势的K线。K线图下方的折线代表了计算的分位数K的大小。上方的黄线代表异常高的价格,下方的绿色水平线代表异常低的价格,从图中可以看到,每当上证分位数折线K接近黄色水平线时,基本表明行情短期到了高位回调的可能性大,每当折线接近绿色水平线时,往往预示着行情会止跌反弹。所以从仓位管理的角度来说,如果个股的K线达到黄色水平线,我们可以轻仓,达到绿色水平线,我们就可以重仓。低吸高抛,从而做到平滑收益曲线的目的。
需要指出的还有,并不是每一次打到黄(绿)线,价格都会见顶(见底)。股价的价格走势随机性很大,只能说达到黄(绿)线时,价格反转的可能性大;做交易在这些位置适当地减仓(加仓),往往比盲目的交易胜率要更高,因而这样的交易思路更具有稳健性。
另外,如果判断适合超配(低配)某只股票,具体超配(低配)的仓位按照股票池中该股票的排序位置来决定。根据经验超配的最大比例不超过500%,低配的最小比例不超过50%。
由于100只股票如果若仅仅参与纵向仓位管理,排名第一的股票仓位占比近2%,所以在横向仓位管理中,上述参数选取的逻辑保证了单只股票最大仓位不超过10%(2%*500%),符合分散投资的基本要求。具体的细则如下表所示:
|股票名称| 排序位置| 是否超配| 是否低配| 超配最大比例| 低配最小比例| 实际建仓比例| 建仓比例计算方法|
| --- | --- | --- |
|A |1| | |500%| 50%| 100.00%| |
|B |2| 是| |500% |50%| 492.00%| 1+(超配最大比例-100%)*(当前排序位置/总股票数)=1+400%*(1-2/100)|
|C |3| | |500%| 50%| 100.00%| |
|D |4| |是 |500% |50%| 52.00% |1-低配最大比例*(1-当前排序位置/总股票数)=1-50%*(1-4/100)|
|E |5| | |500%| 50%| 100.00%| |
|F |6| 是 | |500% |50%| 476.00%| 1+(超配最大比例-100%)*(当前排序位置/总股票数)=1+400%*(1-6/100)|
|G |7| | 是 |500%| 50%| 53.5%| 1-低配最大比例*(1-当前排序位置/总股票数)=1-50%*(1-7/100)|
|H |8| | |500%| 50%| 100.00%| |
|…… |……| …… |…… |……| ……| ……| |
|ZZZ| 100| | |500%|50%| 100.00%| ||
举例来说,排序位置为2的股票,如果根据上述分位数规则判断应该超配,那么会按照492%比例建仓,即实际买入仓位为9.65%((101-2)/5050*492%)以此类推。
#3.2.加入横向仓位管理后模型的净值走势
本次回测重点对比两个模型的结果:其一是在第2部分中列示的小市值下沉模型,其二是采用上述纵向动态仓位管理的小市值下沉模型,其余参数和交易逻辑均相同,我们得到以下结果:
|模型类型 |累计收益| 夏普比率| 胜率| 盈亏比| 最大回撤|
| --- | --- | --- |
|小市值下沉| 83.22%| 0.668| 0.134| 1.71| 26.72%|
|小市值下沉(动态仓位管理)| 86.96%| 0.707| 0.132 |1.708| 27.38%|
从上述结果可以看出,在选股股票池以及其他交易逻辑完全相同的情况下,仅仅根据标的现在价格相比历史价格的位置,动态调整相应建仓的仓位,完全可以在最大回撤保持稳定的情况下实现更高的夏普比例。前后两个模型的胜率和盈亏比没有变化表明在回测阶段每一笔交易的结果都是一致的(即两个模型都交易了A股票,并且买入卖出的时间价格都相同),只是是改变了每次交易股票的数量,就能实现更高的累计收益和夏普比率。这表明我们之前的动态仓位管理的思路能够较好地实现更有效率的净值增长。
小市值下沉(动态仓位管理)

#3.3.横向仓位管理的核心要点
横向仓位管理的核心在于根据股票历史价格高低决定现在买入的仓位多少,模型根据股票池中的股票数量合理设定了超配低配的参数比例,在控制回撤相对稳定的同时实现了更高的夏普比率。
#4.1.动态风格追踪模型的核心逻辑
市场波动起起伏伏,有时候大盘股强,有时候小盘股强。那么我们能不能通过一些方法,预判大盘股走强的时候买大盘股,小盘股走强的时候及时换仓小盘股,及时追踪到市场最占优势的风格呢?根据相对强弱RSRS的计算思路,我找到了一个相对有效的择时逻辑,力争在任何时候都能重仓强的板块。
大盘股的代表指数是上证50,中小盘的代表指数是中证1000.如果一段时间内,上证50涨的比中证1000要好,那我们大概率会认为大盘股目前相对强势,而且这个强势应该还会持续一段时间,所以应该重仓大盘股,反之亦然。
根据“聚宽课堂“RSRS(阻力支撑相对强度)择时策略(上,下)”两部分来看,通过一些简单的回归算法可以粗略的计算出一段时间内的某个指数的涨幅,如果这个指数的涨幅估算较大,那么我们认为这个指数所代表的板块强势,应该买入这个板块的一些股票。
具体来说,比如上证50。我们可以取N日内上证50每日的收盘价作为时间序列,通过一个简单的线性回归来做判断:
$$
price=a+b*t+e
$$
上式中price就是收盘价,t代表时间,e是误差项,那么斜率b其实可以粗略代表估算的日收益率。更稳妥可以把日收益率进行年化的换算($b^{250}-1$),再用相关系数做一个调整,我们可以估算出N日的年化收益率,即年化收益率
$$r=R^2(b^{250}-1)$$
如果上证50的年化收益率r高于中证1000,那么我们这段时间应该买大盘股,反之亦然。
随着时间的推移,N日的估算的年化收益率其实是滚动计算的,这段时间50比1000强,但是如果下个月1000比50估算年化收益率高,我们就要及时调仓赶上新的行情。这样达到择时的目的。
根据多次数据测算,最优解的参数为N=144,即用每个季度的数据做回归,模型表现更好。滚动计算的频率是月频。即每个月计算当月和之前3个月的大盘指数和小盘指数的估算年化收益率r,r值高的指数更强势,则当月重仓相应板块股票。由于本模型关注中小盘,所以判断风格的指数为中证1000(相对大盘)和国证2000(相对小盘)。
#4.2.最终模型中动态风格追踪的思路
回测时间范围,止盈止损规律和涨停开板判断与之前的模型保持一致。
横向仓位管理买入的时候根据超买超卖指标动态选择,如果某一个标的短期价格过低,会根据第3模块中的横向仓位管理思路进行相应的建仓比例调整,即超跌的股票多配置,超买的股票少配置,以达到平衡净值波动的目的。
纵向仓位管理方面,每个月进行大小盘年化收益率的大小比较以进行风格的判断。如果当月判断大盘风格强势,那么按照第2部分中纵向仓位管理思路,本月进行大市值风格的下沉,本月每个周三的调仓买入时刻都按照大市值下沉的逻辑进行判断;如果次月风格切换,则进行小市值风格的下沉。每月风格下沉仅对账户中可用资金进行仓位管理,不对已经持仓的股票进行动态调整。
简单来说,当大市值风格持续一段时间之后,持仓的股票有涨有跌,途中会有股票止盈止损卖出释放出新的资金;如果未来市场风格切换,那么新一个月对可用资金的仓位管理采用小市值下沉的方式进行。这样的操作方式能够比较有效地利用资金,在市场泥沙俱下大部分股票止损卖出的时候,运用上述计算的风格追踪模型能够较好的跟上市场的风格,动态适应结构性行情转变的节奏。
#4.3.最终模型的结果展示
最终模型的结果如图所示:

小市值模型具体的表现结果前后对比:
|模型类型|累计收益| 夏普比率| 胜率| 盈亏比| 最大回撤|
| --- | --- | --- |
|小市值+横向仓位管理+纵向仓位管理+动态风格追踪| 130.5%| 1.01| 0.336| 2.051| 30.98%|
|小市值等权重| 64.69%| 0.673| 0.137| 1.642| 22.11%|
可以看出,经过动态风格追踪模型的优化,传统的小市值模型展现出了良好的投资体验,夏普比率达到1以上,3年左右的时间累计收益130%多,真正实现了“3年翻一倍”的目标。相比于最初始的等权重小市值模型,以最大回撤增加40%的代价实现了累计收益翻2.5倍左右的效率,夏普比率也提高了50%,大大提高了投资者的投资体验。
#5.1.因子分析
本部分重点关注因子的构建以及对交易模型的影响。之前我们重点探讨了如何对股票池中的股票进行交易,但是股票池中股票的先后排序我们运用了“小市值”逻辑简化了。实际上,每一只股票具有多种多样的特点,每时每刻都有交易量,价格等交易信息以及市盈率,市净率等基本面信息可供参考,仅仅通过市值因子来判断股票所处排名是不全面的。因此本部分希望通过初步的因子构建逻辑,同时利用股市中的量价信息和基本面信息,更全面准确地判断股票池中股票的排序。
#5.2.因子构建核心逻辑
本次模型的选股标准为:
市净率>1
市盈率>0且< 1000(剔除妖股)
营业收入同比增长率>30
净利润同比增长率>50
经营活动产生的现金流量净额/经营活动净收益>10
符合以上四个条件的上市公司,营业状态相对稳健,经营异常风险较低。兼顾了价值和成长属性,风格均衡。适合长期做波段投资,为我们更好的研究因子提供支撑。
在因子构建方面,我初步构建5个因子,以量价因子为主,结合之前的选股标准
更全面地对股票排序。具体的因子为:
换手率:反映标的当时市场关注度
流通市值:反映标的目前风格
现时刻价格:反映标的目前的价格
最近1个月度累计成交量:最近一个月市场关注度
最近1季度累计涨幅:最近1个季度炒作的热度
每个因子根据统计学要求做均值化归一化处理,并且等权重构建。最终判断上市公司股票得分的逻辑如下:
$$P_j=\sum_{i=1}^5 w_{i,j}*ln(\frac{x_{i,j,min}}{x_{i,j}})$$
其中$w_{i,j}$某上市公司j中因子i的权重(等权重表示所有$w_{i,j}=1$),ln表示自然对数运算符,$x_{i,j}$表示归一化之后上市公司j中因子i的值,$x_{i,j,min}$表示归一化因子i的最小值,$P_j$表示上市公司j根据上述规则构造因子的得分。
依据上述因子构造规则,我们会发现上市公司换手率越低,市值越小,现价越低,近期成交量和涨幅越低,则因子打分越高;如果我们按照因子数值从大到小筛选100个股票,就能选出相对不受市场关注的小市值股票。通过合适的止盈止损手段,叠加股票池构建时的基本面筛选,这些股票在未来有望回归市场关注的正常水平从而做出超额收益。
#5.3.因子构建模型回测设置
回测时间范围选择为2021.2.17到2024.7.10.共3年,分钟级别数据,时间太长模型回测耗时更长。
买入时间借用择时规律探究的结论,设定为每周三中午11:15,即每周三重新筛选股票池对持仓股票做动态调整,根据相应仓位买入股票池中对应的股票;同时每周三买入股票时做因子的计算以及股票池中标的的排序,根据股票因子从大到小的顺序筛选出100只股票做交易。
同时每日做止盈止损和涨停开板观察:和之前的模型不同,根据黄金分割法则做出的简单计算,止损定在5%左右,止盈在161.8%,昨日涨停的股票在任意观察时刻如没有继续涨停则卖出;止盈止损和涨停判断做到每5分钟观察一次以提高模型运行效率。为了降低交易频率,在仓位85%以上的时候不做买入操作。
纵向仓位管理方面,根据股票因子得分大小进行差异化仓位安排:得分较高的股票重仓,得分较低的股票轻仓。
横向仓位管理买入的时候根据超买超卖指标动态选择,如果某一个标的短期价格过低,会根据横向仓位管理思路进行相应的建仓比例调整,即超跌的股票多配置,超买的股票少配置,以达到平衡净值波动的目的。
动态风格追踪管理方面,判断大小盘的指数是中证1000(大盘)国证2000(小盘),每个月进行大小盘年化收益率的大小比较以进行风格的判断。如果当月判断大盘风格强势,那么按照纵向仓位管理思路,在因子计算公式中,本月动态对大市值股票赋予更高权重,本月每个周三的因子计算都通过大市值更高权重的逻辑来实现,调仓买入时刻都按照大市值下沉的逻辑进行判断;如果次月风格切换,则进行小市值风格的下沉。每月风格下沉仅对账户中可用资金进行仓位管理,不对已经持仓的股票进行动态调整。
#5.4. 因子模型最终结果展示
我把之前第四部分“小市值+横向仓位管理+纵向仓位管理+动态风格追踪”的模型简称为“最终模型,最终模型结论对比如图所示
| 模型类型 |累计收益 | 夏普比率 | 胜率 |盈亏比 | 最大回撤 |
| --- | --- | --- |
|最终模型|130.5%| 1.01| 0.336| 2.051| 30.98%|
|最终模型+5因子| 84.87%| 0.954| 0.269| 1.267 |18.76%|
从上述结果可以看出,添加量价因子之后,股票池中对小市值因子的暴露相应减弱,因此在去年的小市值风格暴露最明显的时候涨势不如最终模型;但是由于有多个量价因子综合评估市场风险,新模型的最大回撤明显降低,夏普比率明显提升。因此,我认为添加简单的因子之后模型的鲁棒性得到了改善,单一风格暴露的风险得到缓解。
#参考文献
20231013-中信期货-浅谈量化超额的日历效应
20240115-民生证券-迈向价值之路:竞争壁垒分析框架下的选股逻辑
20231210-中信建投金融产品-调仓优化及约束设计
聚宽课堂“RSRS(阻力支撑相对强度)择时策略(上,下)
https://www.joinquant.com/post/1024
评论
厉害!文章内容够我研究一整天了
2024-07-12
@BigGu 感谢支持,欢迎多多交流
2024-07-14
@熟悉的陌生人1 感谢支持,欢迎多多交流
2024-07-14
@FROSTAR 感谢支持,欢迎多多交流
2024-07-14
大佬请我代码中的2.382是什么意思呢
2024-10-10
@hhdhdhdjsh 从黄金分割数演变的,我比较喜欢。换成自己偏好的止盈止损价格比例也可
2024-10-11
回测十年,运行了330多分钟,扣了好多积分,分享给大家参考。
2024-10-12
@熟悉的陌生人1 一天就能研究清楚,已经非常厉害了
2024-12-22