历史市场事件窗口与市场阶段日期
代码 pyfolio
总结
本文提供一份预设日期范围目录,涵盖重要市场事件和较长的市场阶段。事件窗口包括互联网泡沫时期、11 年九一一袭击事件、全球金融危机、闪电崩盘、福岛核事故、US 年美国信用评级下调与欧洲债务危机,以及 2015 年市场下跌。目录还将更长时段标注为低波动牛市、崩盘、复苏和新常态。
这些日期范围可用于考察策略在不同事件窗口或市场环境下的表现。然而,该文件只记录标签及起止日期;它不提供特定资产的收益、因果分析,也不能证明所选时期对所有市场都产生了所述影响。这些日期范围属于历史惯例,研究人员在得出结论前应核实日期,并根据所研究的工具和问题进行调整。
核心观点
- 目录将市场事件标签与历史起止日期对应起来。
- 目录同时涵盖短期事件窗口和较长的市场阶段区间。
- 标注的时段有助于按背景整理历史策略分析。
- 仅有日期并不能证明市场影响,也不构成表现证据。
标签
全文
# interesting_periods.py
```py
#
# Copyright 2016 Quantopian, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Generates a list of historical event dates that may have had
significant impact on markets. See extract_interesting_date_ranges."""
import pandas as pd
from collections import OrderedDict
PERIODS = OrderedDict()
# Dotcom bubble
PERIODS['Dotcom'] = (pd.Timestamp('20000310'), pd.Timestamp('20000910'))
# Lehmann Brothers
PERIODS['Lehman'] = (pd.Timestamp('20080801'), pd.Timestamp('20081001'))
# 9/11
PERIODS['9/11'] = (pd.Timestamp('20010911'), pd.Timestamp('20011011'))
# 05/08/11 US down grade and European Debt Crisis 2011
PERIODS[
'US downgrade/European Debt Crisis'] = (pd.Timestamp('20110805'),
pd.Timestamp('20110905'))
# 16/03/11 Fukushima melt down 2011
PERIODS['Fukushima'] = (pd.Timestamp('20110316'), pd.Timestamp('20110416'))
# 01/08/03 US Housing Bubble 2003
PERIODS['US Housing'] = (
pd.Timestamp('20030108'), pd.Timestamp('20030208'))
# 06/09/12 EZB IR Event 2012
PERIODS['EZB IR Event'] = (
pd.Timestamp('20120910'), pd.Timestamp('20121010'))
# August 2007, March and September of 2008, Q1 & Q2 2009,
PERIODS['Aug07'] = (pd.Timestamp('20070801'), pd.Timestamp('20070901'))
PERIODS['Mar08'] = (pd.Timestamp('20080301'), pd.Timestamp('20080401'))
PERIODS['Sept08'] = (pd.Timestamp('20080901'), pd.Timestamp('20081001'))
PERIODS['2009Q1'] = (pd.Timestamp('20090101'), pd.Timestamp('20090301'))
PERIODS['2009Q2'] = (pd.Timestamp('20090301'), pd.Timestamp('20090601'))
# Flash Crash (May 6, 2010 + 1 week post),
PERIODS['Flash Crash'] = (
pd.Timestamp('20100505'), pd.Timestamp('20100510'))
# April and October 2014).
PERIODS['Apr14'] = (pd.Timestamp('20140401'), pd.Timestamp('20140501'))
PERIODS['Oct14'] = (pd.Timestamp('20141001'), pd.Timestamp('20141101'))
# Market down-turn in August/Sept 2015
PERIODS['Fall2015'] = (pd.Timestamp('20150815'), pd.Timestamp('20150930'))
# Market regimes
PERIODS['Low Volatility Bull Market'] = (pd.Timestamp('20050101'),
pd.Timestamp('20070801'))
PERIODS['GFC Crash'] = (pd.Timestamp('20070801'),
pd.Timestamp('20090401'))
PERIODS['Recovery'] = (pd.Timestamp('20090401'),
pd.Timestamp('20130101'))
PERIODS['New Normal'] = (pd.Timestamp('20130101'),
pd.Timestamp('today'))
```在遵守原作品许可的前提下,附作者信息全文展示。 许可协议: Apache-2.0
此摘要由 Stratmill 研究智能体根据原文撰写,并非原文副本。