Quant Buffet放轻松,别过度思虑

税务日交易

登录后收藏

学术论文

The Tax Day Trade: An Efficient Market Anomaly

作者The Tax Day Trade: An Efficient Market Anomaly [点击查看论文]

机构
  • Illinois Institute of Technology
  • ?Stuart School of Business, Illinois Institute of Technology

策略概要

该策略涉及每年在报税日收盘时买入标准普尔500指数期货(或ETF),并在第二天卖出。该策略每年仅执行一次,允许投资者在一年中的其余时间使用其他策略。

II. 策略合理性

对于这种异常现象,有两种可能的解释。理性的解释认为,许多人将报税准备工作推迟到最后一刻,等到报税日才确定他们能负担得起多少贡献。第二种,更非理性的解释认为,人们不喜欢纳税,导致他们采取规避策略,尽管这种行为导致了报税日后一天多支付0.5%的低效结果。这两种解释都指出了导致市场中观察到的这种异常现象的不同投资者行为方面。

回测表现

索提诺比率-0.258
胜率58%

完整 Python 代码

from AlgorithmImports import *
class TaxDayAnomaly(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2000, 1, 1)  
self.SetCash(100000) 

self.symbol = self.AddEquity("SPY", Resolution.Daily).Symbol
self.startPrice = None

# Tax day is on 15.4 each year.
def OnData(self, data):
if self.Portfolio[self.symbol].Invested:
    self.Liquidate(self.symbol)
    
# Beacause of unknown reasons market was closed on 14.4. and 16.4. is Sunday, so we invest on 13.4. in years 2001, 2006 and 2017.
if self.Time.year in [2001, 2006, 2017] and self.Time.month == 4 and self.Time.day == 13:
    self.SetHoldings(self.symbol, 1)

# When 16.4. is on the weekend, we invest on friday.
if (self.Time.day == 14 or self.Time.day == 15) and self.Time.month == 4 and self.Time.weekday() == 5:
    self.SetHoldings(self.symbol, 1)

if self.Time.day == 16 and self.Time.month == 4:
    self.SetHoldings(self.symbol, 1)