基于A股周内效应择时策略验证与思考(附代码)

基于A股周内效应择时策略验证与思考

本文思路来自于东吴证券研报《A股市场的周内效应》内容,对A股市场的日历效应在周内表现进行探索。

上述研报的核心内容简述:
1、A股市场在股票指数和个股上存在“V型模式”的“周内效应”:周一行情最亢奋,其后逐渐走低,周四最低迷,周五轻微反弹。
2、在交易行为的层面也存在周内效应:大单成交的占比,周一最高,随后逐渐递减。

基本验证思路:
1、首先验证该研报所述结论是否正确。
2、如果正确,基于该周内效应是否能研发出alpha策略,避开最低迷的星期。

验证周内效应

设计思路:

【1】观察一定时间范围内周内各不同交易日指数所有涨跌幅的中位数与涨跌概率与平均值。

【2】尝试构建基于周内异象的策略获取来自异象的超额收益

验证设计:

【1】时间范围:2006.01 ~ 2020.10.30

【2】研究指数:上证综指、沪深300、中证500等

【3】股票池:上证综指、沪深300、中证500指数等成分股以及全部A股

注:上述指数数据来源均来着tushare数据源,感谢tushare!分析工具使用python语言。

2006年1月至2020年10月上证指数等效组合对应的涨跌幅中位数,观察其在一周不同交易日内的变化趋势。
图一:2006年1月至2020年10月上证指数等效组合对应的涨跌幅中位数、胜率与均值。观察其在一周不同交易日内的变化趋势。
说明:涨跌幅中位数单位是%,胜率即该周内不同交易日的上涨概率。

该表对应上面的折线图
表一:对应上面的折线图。

从统计结果看来,其他日涨幅的均值和中位数均为正,只有周四为负。在胜率(每天的上涨概率)方面也只有周四的胜率低于50%。

除此之外,表现最好的是周一,平均涨幅高达0.26%,胜率接近60%,其次是周二。

不同指数的涨跌幅中位数的趋势
图二:不同指数的涨跌幅中位数的趋势变化。

在这里插入图片描述
表二:对应上面的折线图。

观察上述图表我们可以发现,周内的涨跌幅呈现出了强烈的“V”型趋势:周一A股行情最亢奋,其后逐渐走低,周四最低迷,周五轻微反弹。

分析代码后面附上。

由此可见A股的确存在这样的周内效应,验证研报结论正确。

关于√型模式的形成原因,我们认为与股票交易的T+1机制有关:周五卖出的股票,需等到下周一,才能通过银证转账取得现金;周末需要取用的现金,必须提早至周四将股票卖出。因此,周四的股票交易中,会存在一个额外的卖压,容易成为一周中行情最低迷的一天。还有一种原因是周四的国债逆回购收益最高,所以一般来说资金有抛掉股票去买入逆回购的动力。

那基于该周内效应如何获取超额的收益呢?
思路:既然周四普遍都是跌的,那就避开周四,即在周三收盘前或者周四开盘时卖出指数,周四收盘时或者周五开盘时买入指数。那又应该是前一天的收盘买入好还是当天开盘的时候买入好,基于这个问题,主要是存在指数的高低开问题,那我们分析一下A股指数在历史上普遍是高开还是低开。

周内效应中指数高低开的分析:
高低开分析
图三:不同指数中周内不同交易日中开盘前高低开中平均涨跌幅

由图三可以看出,只有周一时各指数是普遍高开的,其他的交易日都是普遍的低开的。
基于此发现,我们就可以确定应该是在周三收盘时进行卖出指数,周五开盘的时候进行买入指数。这样就可以避开A股普遍低开的情况。

构建策略

策略一的基本思路:
全仓指数或者固定资金投资指数,有仓位的情况下,在周三收盘时全仓卖出指数,然后在周五开盘是全仓买回指数。

策略回测:
回测周期:2006.1-2020.10.30
回测标的:上证指数,沪深300,中证500等指数
费用设计:(买入时手续费万分之三,卖出时手续费万分之三加千分之一印花税)

回测结果如下:
上证综指
图四:基于上证指数的回测结果,其中红色图线是上证指数的走势,棕色的是策略一的走势。

沪深300
图五:基于沪深300指数的回测结果,其中浅青色图线是沪深300指数的走势,橙色的是策略一的走势。

中证500
图六:基于中证500指数的回测结果,其中黑色图线是中证500指数的走势,灰色的是策略一的走势。

其他指数策略回测图表就不一一贴出来了,附件里有个文件是black_Thurs(第一版避开周四).html可以一一查看回测结果,是基于pyecharts的数据可视化,交互式非常地好。

从上述可视化回测结果可以看出,不同的指数运用上避开周四策略,都能收获到超与该指数的额外收益。也可以观察出在2006年到2012年之间,该策略收益并不明显高于指数走势,也就是周内效应存在不明显。在2019-2020上证指数中,该策略一直在回撤,上证指数在3000点徘徊振荡。图片如下:
在这里插入图片描述
图七:上证指数策略与上涨指数的比较。

由此可见:该策略的收益并不是总是优于指数的走势,在某个时间段策略走势并不如指数走势,基于这个点又应该如何改进与优化策略呢?

我们都知道市场熊市与牛市之分,那我们来观察一下熊市与牛市中的周内效应是否存在差异。但是我们又怎么知道当前的情况是处在与牛市还是熊市,只过后才知道的啊,你这不就是利用了未来函数吗?

我们在当下可以定义牛市与熊市,如何定义,我们简单的按照20日均线来区分:若今日收盘价高于20日均线则为牛市,否则为熊市。这个主观20日均线的超参数是可以更改的。

牛市的周内效应:
牛市中的周内效应
图八:牛市中(当天收盘价高于20日均线)的周内效应趋势

在这里插入图片描述
表三:上证指数牛市中(当天收盘价高于20日均线)的周内效应数据视图

通过图八与表三可知,在牛市中周一的表现变得更好了,周四的表现依旧很差。但是,周二的表现也变差了。

熊市的周内效应:
在这里插入图片描述
图九:熊市中(当天收盘价低于20日均线)的周内效应趋势
在这里插入图片描述
表四:上证指数熊市中(当天收盘价低于20日均线)的周内效应数据视图

通过图九与表四可知,一直表现得很好的周一确在熊市中表现得最差,当然周四的表现依旧很差。值得注意的是,周二的表现变好了。

基于以上牛熊市中周内效应的分析结果来看,为啥会存在如此的差异?
从投资者的行为来看,在牛市中,周一由于是开盘的第一天,情绪高昂,所以一般来说周一的表现会更好,熊市中投资者由于经过了周内的信息消化,使得他们情绪更加低落,故会导致周一变现会很差,股价在周一的剧烈波动下,周二与周三起到了一点的修复作用。故在牛市中,周二往往不疯狂,在熊市中,周二往往会起到情绪修复的作用。

基于以上的对牛熊市周内效应数据分析与投资者行为主观分析,因此我们可以根据此差异来改进我们的策略一(避开星期四)。

改进与优化的基本思路:
通过收盘价与n日均线的比较(均线)来判断市场状态为上涨市或下跌市
上涨市:下个交易日为周五或周一则做多,下个交易日为周二或周三则空仓
下跌市:下个交易日为周二或周三则做多,下个交易日为周一或周四则空仓
这里我们主观选择超参数20日均线,由于A股存在普遍微量低开的原因,所以我们做多的时候选择开盘时做多,卖出时选择前一天的收盘价卖出。

基于牛熊市周内效应策略二回测:
回测周期:2007.1-2020.10.30
回测标的:上证指数,沪深300,中证500等指数
费用设计:(买入时手续费万分之三,卖出时手续费万分之三加千分之一印花税)

回测结果:
在这里插入图片描述
图十:其中红色的时上证指数的走势,棕色的时策略二的走势。

策略并不复杂,但实际交易的效果很好,绝对收益远高于大盘指数,接近对应指数的8倍。

回测具体结果:
回测标的:上证指数
策略年化收益(%): 17.45
策略最终收益: 9.38044 基准收益 1.2208 回测时间段:2007-01-05-2020-10-30

策略二的分析与总结:虽然绝对收益看着还可以,但是在16年之后进行区域缩放比较,可以看出策略走势相对上证指数的超额收益是平的,近几年也只能打平上证指数。基于这个问题,又应该如何去优化该策略呢?

改进与优化思路:
可以从定义牛熊市出发,第一:在定义牛熊市的时候,我们主观地采用了当日收盘价高于20日均线则为牛市,否则反之。这个主观的超参数我们可以进行调整,可以直接利用python中rollings进行最优化均线周期。但是这样的方法个人觉得又会陷入过拟合的情况,在历史数据上回测得很完美,但是在未来的数据中表现得很糟糕。
第二:换一种定义牛熊市的方式,上述以均线定义的方式,很容易在震荡市中频繁地操作,而且也可以看出,震荡市中该策略表现平平。或者可以讲以上两种定义进行结合来分析。

下面时重新定义牛熊市的方式:
通过n日涨跌幅(动量)来判断市场状态为上涨市或下跌市。例如在10天内指数涨幅达10%以上判读为牛市,跌幅10%为熊市,其他情况为振荡市。

继续发表自己的思路:以上也提到了国债逆回购的情况,我们是否也可以更加国债逆回购的情况进行指数上的择时买卖。之前看到一篇博文也有提到过:市场好的时候,普遍缺钱,这时逆回购利率就要高一些,市场低迷的时候大家投资意愿降低,逆回购的利率也就低。由于我没找到国债逆回购的数据,这个验证就搁置了。如果有感兴趣的同学可以参照本人不成熟的思路去挖掘一下。

总结

一、A股存在明显的周内效应。在个股和指数上强烈地呈现出“V 型模式”:周一行情最亢奋,其后逐渐走低,周四最低迷,周五轻微反弹。
二、在定义下的牛熊市中,牛市与熊市的周内效应存在明显的差异。其中牛市中周一与周五表现好,周二与周四表现得差。熊市中周一与周四表现得差,周二与周三表现不错。
三、根据A股的周内效应,我们构建了完全避开周四策略一与牛熊市的择时策略并进行回测验证。两种策略在规定的回测周期中均明显好于指数收益(基准收益)。
四、提出另一种定义牛熊市的方式与结合国债逆回购的数据进行择时买卖的思路。

思考 :

1、指数的择时买卖来说,该策略周内操作频繁,能否加一下附加的指标,使得该策略能适时空仓,例如加入技术性指标水下MACD空仓不操作,这样就可以避免18年那波的下跌。以此来减小回撤从而提高整体收益。另外,对于市场状态的判断也可以使用其他指标或者加入一些阈值等等。

2、指数有周内效应,那么具体到某个股票是否也用这样的周内效应,比如根据市场状态来买卖股票,选择周一买入还是周二买入,周五卖出还是周四卖出。这也是本人不成熟的思考,暂时没有成熟的思路。

最后欢迎大家批评指正,有什么好的思路也可以一起交流。谢谢大家!

验证代码地址:https://gitee.com/qiu-an-song/quantshare/tree/master/%E5%9F%BA%E4%BA%8EA%E8%82%A1%E5%91%A8%E5%86%85%E6%95%88%E5%BA%94%E7%AD%96%E7%95%A5%E7%A0%94%E7%A9%B6

注:再次感谢tushare数据源提供如此优质的数据。
tushare注册链接:https://tushare.pro/register?reg=394245

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值