Quant BuffetRelax, Not Over Thinking

Trading FOMC Announcements with Summary of Economic Projections

Log in to collect

Academic paper

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

AuthorsChen Gu

Institute
  • Shanghai Business School
  • ?Shanghai Business School - Research Center of Finance

Strategy in a nutshell

An investor buys nearby E-mini S&P 500 index futures contracts five minutes before the FOMC statements including the release of SEP and holds the position for 55 minutes after the announcement

Economic rationale

The author attributes the phenomenon to decreasing uncertainty (as measured by the VIX index) following the FOMC announcements with the SEP, which is especially due to SEP containing information about the future direction of monetary policy.

Backtest performance

Annualised return8.9%
Volatility5%
Beta0.008
Sharpe ratio1.78
Win rate62%

Full Python code

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)