该策略利用30年期美国国债期货,在与通胀相关的经济公告发布日(如生产者价格指数报告、消费者价格指数报告、新屋开工报告和个人收入报告)持有多头仓位,其余时间保持现金头寸。

I. 策略概述

投资者识别与通胀相关的宏观经济公告。学术论文建议以下公告为主要关注点:生产者价格指数报告(PPI)、消费者价格指数报告(CPI)、新屋开工报告以及个人收入报告。投资者可以使用30年期美国国债期货进行交易,在公告发布日持有多头国债仓位,其他时间保持现金头寸。

II. 策略合理性

学术研究指出,投资者面临的经济条件变化风险会直接影响资产价值。这类非分散化风险(如宏观经济不确定性)需要通过溢价进行补偿。在重大宏观经济报告发布日,市场对不利消息的风险更高,投资者因而要求更高的风险溢价以应对这种不确定性。这种风险溢价体现在这些公告日期间持有资产的额外收益中,作为承担不可避免经济风险的补偿。

III. 论文来源

Information Content Drives Risk Premium of Macroeconomic News on Bond and Stock Markets [点击浏览原文]

<摘要>

我们发现,在宏观经济报告发布日,股票和债券均能获得显著的超额收益。然而,股票和债券的风险溢价来源于不同的公告日。股票投资者仅在与GDP增长相关的新闻发布日获得风险溢价,而债券投资者仅在与通胀相关的新闻发布日获得补偿。在样本期(1985年至2009年)内,股票投资者在增长相关公告日的年化收益超过5%,而在其他交易日股票市场并未产生正向风险溢价。在长期债券市场,通胀相关公告日的年化收益率超过3%,占全年风险溢价的45%。这些发现对资产配置等方面具有重要意义,表明投资者可以通过市场时机策略(如提前或推迟市场进入)来获取风险溢价。

IV. 回测表现

年化收益率7.3%
波动率4.98%
Beta-0.036
夏普比率0.66
索提诺比率N/A
最大回撤N/A
胜率55%

V. 完整python代码

from AlgorithmImports import *
#endregion
class ScheduledEconomicAnnouncementsEffectBonds(QCAlgorithm):
    def Initialize(self):
        self.SetStartDate(2002, 1, 1)
        self.SetCash(100000)
        
        self.symbol = "TLT"
        data = self.AddEquity(self.symbol, Resolution.Minute)
        csv_string_file = self.Download('data.quantpedia.com/backtesting_data/economic/scheduled_economic_announcements_bonds.csv')
        dates = csv_string_file.split('\r\n')
        dates = [datetime.strptime(x, "%Y-%m-%d") for x in dates]
        self.liquidate_next_day = False
        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)




发表评论

了解 Quant Buffet 的更多信息

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

继续阅读