投资者通过使用ETF、基金、CFD或期货等简单工具在美国股票市场获得敞口,时间限于假日前几天(如元旦、马丁·路德·金纪念日、总统日等)。在其他交易日,投资者保持现金头寸。这种策略不仅适用于美国市场,在其他国家的本地假日前几天同样有效,具备扩展潜力。

策略概述

投资者通过使用一些简单的投资工具(ETF、基金、CFD或期货)来获得美国股票市场的敞口,时间仅限于假日前几天(元旦、马丁·路德·金纪念日、总统日、耶稣受难日、阵亡将士纪念日、独立日、劳动节、选举日、感恩节、圣诞节)。在其他交易日,投资者保持现金头寸。这种异常现象不仅限于美国市场,在其他国家似乎也同样有效,因此可以扩大到包括其他市场的本地假日前几天。

策略合理性

这一异常现象的主要解释因素是行为学方面的原因。一种解释认为,空头卖家在假期前平仓其风险头寸。另一种原因可能是投资者在假期前心情较好,对未来前景更为乐观,从而增加了市场正向波动的概率。

论文来源

Testing the significance of calendar effects [点击浏览原文]

<摘要>

本文研究了股市收益中的日历效应测试。为了避免虚假结果,有必要控制所有可能的日历效应。作者通过测试特定日历异常的显著性,为日历效应文献做出了贡献。这种测试方法通过条件控制可能的日历效应干扰,产生稳健的数据挖掘结果。然而,控制大量日历效应的尝试会削弱测试的效能,使得实际发现异常变得更加困难。作者表明,他们的测试具有良好的效能,因为它利用了与研究的日历效应相关的(超额)收益的相关性结构。我们通过自助法实现了测试,并将其应用于丹麦、法国、德国、香港、意大利、日本、挪威、瑞典、英国和美国的股票指数。自助法的p值揭示了大多数股市中的日历效应是显著的,但年底效应尤为突出。还显示,从20世纪80年代末开始,日历效应有所减弱,但小盘股指数除外。

回测表现

年化收益率6.39%
波动率N/A
Beta0.072
夏普比率-0.239
索提诺比率-0.104
最大回撤13.5%
胜率53%

完整python代码

from AlgoLib import *

class PreHolidayEffect(XXX):

    def Initialize(self):
        self.SetStartDate(2000, 1, 1)  
        self.SetCash(100000)           
        
        self.symbol = self.AddEquity("SPY", Resolution.Daily).Symbol

    def OnData(self, data):
        calendar1 = self.TradingCalendar.GetDaysByType(TradingDayType.PublicHoliday, self.Time, self.Time+timedelta(days=2))
        calendar2 = self.TradingCalendar.GetDaysByType(TradingDayType.Weekend, self.Time, self.Time+timedelta(days=2))
        
        holidays = [i.Date for i in calendar1]
        weekends = [i.Date for i in calendar2]
        
        # subtract weekends in all holidays
        public_holidays = list(set(holidays) - set(weekends))

        if not self.Portfolio.Invested and len(public_holidays)>0:
            self.SetHoldings(self.symbol, 1)
        elif self.Portfolio.Invested and len(public_holidays)==0:
            self.Liquidate()

Leave a Reply

Discover more from Quant Buffet

Subscribe now to keep reading and get access to the full archive.

Continue reading