Quant Buffet放轻松,别过度思虑

利用经济预测摘要进行 FOMC 公告交易

登录后收藏

学术论文

Relief Rallies after FOMC Announcements: How Much Do Investors Care About Uncertainty?

作者Chen Gu

机构
  • Shanghai Business School
  • ?Shanghai Business School - Research Center of Finance

策略概要

投资者在美国联邦公开市场委员会(FOMC)声明(包括SEP发布)前五分钟买入近月E-mini标准普尔500指数期货合约,并在公告发布后持有该头寸55分钟。

II. 策略合理性

作者将这种现象归因于联邦公开市场委员会(FOMC)发布包含SEP的公告后不确定性(以VIX指数衡量)的降低,这尤其是因为SEP包含有关未来货币政策方向的信息。

回测表现

波动率5%
夏普比率1.78
胜率62%

完整 Python 代码

from AlgorithmImports import *
#endregion

class TradingFOMCAnnouncementsSummaryEconomicProjections(QCAlgorithm):

def Initialize(self):
self.SetStartDate(2007, 1, 1)
self.SetCash(100000)

self.symbol = self.AddEquity("SPY", Resolution.Minute).Symbol

csv_string_file = self.Download('data.quantpedia.com/backtesting_data/economic/fed_summary_economic_projections.csv')
dates = csv_string_file.split('\r\n')
dates = [datetime.strptime(x, "%Y-%m-%d") for x in dates]

self.liquidate_next_day = True

self.Schedule.On(self.DateRules.On(dates), self.TimeRules.BeforeMarketClose(self.symbol, 1), self.DayBeforeAnnouncement)
self.Schedule.On(self.DateRules.EveryDay(self.symbol), self.TimeRules.BeforeMarketClose(self.symbol, 1), self.Rebalance)

def DayBeforeAnnouncement(self):
if not self.Portfolio[self.symbol].IsLong:
    self.SetHoldings(self.symbol, 1)
    self.liquidate_next_day = True

def Rebalance(self):
if self.liquidate_next_day:
    self.liquidate_next_day = False
    return

if self.Portfolio[self.symbol].IsLong:
    self.Liquidate(self.symbol)