“该策略在美国大选前五天买入标准普尔500指数,并持有至选举日收盘,对国会选举和总统选举一视同仁,以利用选举期间的市场行为。”

I. 策略概要

该策略涉及在美国大选前五天收盘时买入标准普尔500指数(通过ETF、差价合约等),并持有至选举日收盘。美国举行两种类型的联邦选举:每偶数年的国会选举和每四年一次的总统选举。该策略对这两种事件一视同仁。根据美国法律,选举日定为11月第一个星期一之后的星期二,这意味着它总是在每偶数年的11月2日至8日之间。这种简单的交易方法利用了选举期间的历史市场行为。

II. 策略合理性

在美国大选前五天买入标准普尔500指数并持有至选举日收盘的策略是基于一个观察到的异常现象,该现象带来了显著的回报。从1950年到2018年,在35个选举期间,该策略的平均表现范围从-2.47%到10.79%。这种波动性并非美国独有;其他发达国家也观察到类似的模式。Białkowski、Gottschalk和Wisniewski在其论文《国家选举期间的股市波动》中分析了经合组织国家选举期间的股市波动,进一步证实了这一现象的重要性。

III. 来源论文

Pre-Election Drift in the Stock market [点击查看论文]

<摘要>

选举这样的特定事件制造了大量噪音,不仅在我们的日常生活中,我们应该参与并投票给我们偏好的候选人/政党。这个过程也影响着金融市场。选举结果带来的不确定性会影响金融市场的波动性,这种波动性很容易翻倍。在本文中,我们只关注一个特定的市场,我们试图寻找任何可以通过构建投资策略来获利的模式。通过分析美国股市,那里的选举每偶数年都在确切的日期举行,我们发现在选举前几天存在一个特定的模式。这种积极的漂移从选举日前第五天开始,并在选举日结束时结束,平均表现接近2.5%。这种选举前模式的另一个优势是它独立于选举结果,即使它与选举相关。过去几年,由于政治原因导致的不确定性增加,选举期间的市场波动更大,这种不确定性如今并未消退。因此,无论选举结果如何,选举前时期都可能更有利可图。

IV. 回测表现

年化回报2.46%
波动率N/A
β值0.023
夏普比率N/A
索提诺比率-0.133
最大回撤N/A
胜率62%

V. 完整的 Python 代码

from pandas.tseries.offsets import BDay
from AlgorithmImports import *
from dateutil.relativedelta import relativedelta, MO
class PreElectionDriftStockMarket(QCAlgorithm):
    def initialize(self) -> None:
        self.set_start_date(2000, 1, 1)
        self.set_cash(100_000)
        
        self.symbol: Symbol = self.add_equity("SPY", Resolution.MINUTE).symbol
    def on_data(self, data: Slice) -> None:
        if self.time.year % 2 == 0:
            election_day: datetime.date = ((date(self.time.year, 11, 1) + relativedelta(weekday=MO(1))) + BDay(1)).date()
            
            # This condition make sure, that we invest into market six business days before election day
            # and position will be open right after hurricane Sandy, when market is open.
            if self.time.date() >= (election_day - BDay(6)).date() and self.time.date() < election_day and not self.portfolio[self.symbol].invested:
                self.set_holdings(self.symbol, 1)
                
            # Liquidate.
            elif self.time.date() == election_day:
                if self.portfolio[self.symbol].invested:
                    self.liquidate(self.symbol)

发表评论

了解 Quant Buffet 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读