如果你有留意美股,相信你也會常常聽到 S&P500指數,S&P 500指數是美國股市最廣泛使用的股票指數之一,包含了500家領先的大型美國公司。交易ES期貨可以讓你在一個交易中參與這些公司的整體表現。(E-mini S&P 500期貨(ES)是一種金融衍生品,它的價格是根據 S&P 500 的表現而定。)
當我想制定ES的日內數據交易策略時,首先我會獲取ES的日內數據。
作為一個Quant Researcher,去分析 ES 日內數據時,我會睇以下呢啲野:
Data Vendor 所提供的數據是否Clean?
ES 的交易時間是何時?在以往的交易時間有改變過嗎?
怎樣透過交易時間去調整我的交易策略和回測?
之前的文章【關於日內數據(Intraday Data)你不知道的二三事】中有介紹過用 Python 做數據處理
用 Python DataFrame 的 .describe() function去找關於DataFrame中每個數值列的統計摘要
ES日內數據的缺失資料的問題,以及如何用 Python 去填補缺失的資料(Fill missing data)
根據 Chicago Mercantile Exchange(CME),ES 的交易時間是:
週日6:00pm 至 週五 5:00pm
週一、週二、週三以及週四的 5:00 pm - 6:00 pm會暫停交易
(美國東部時間)
Reference: https://www.cmegroup.com/markets/equities/sp/e-mini-sandp500.contractSpecs.html
數據方面,我會沿用上次介紹日內數據所用的 ES intraday data,這個數據的時間間隔為一分鐘,數據所包含的時間由2008年1月2日到2023年5月5日。

"datetime_diff_from_last" 是我們製造的新column,是為每一行交易數據去尋找和上一行數據的時間差
重溫如何製造時間差:
1. 製造一個叫"last_datetime" 的新column:將datetime 的 column 用 .shift(1) 去把整個column shift去下一行。當datetime 是2008-01-02 06:02:00, last_datetime 就會是00-01-02 06:01:00
2. 製造一個叫"datetime_diff_from_last" 的新column:將datetime 的 column 減去 last_datetime 的 column,這就是今行交易數據和上一行交易數據的時間差
之後,我們把時間差為2至14分鐘中間缺失的資料(Fill missing data) 去填補

接着下來,我們會用這個 ES intraday data 去尋找以往的交易時間有沒有改變過
Step 1: 找出沒有交易的時段
只把時間差>1秒的 row 留下,剩下來的 row 就可以見到沒有交易的時段
例如 datetime = 2018-01-03 18:00:00, last_datetime = 2018-01-03 17:29:00,我們就得知17:30-18:00這段時間沒有交易,我們之後會看 17:30-18:00 是否恆常的停止交易時段。
我們用 .to_excel() 這個function把dataframe export 成一個excel file

Step 2: 尋找不同年份的交易時段
在 2008 年,我們觀察到ES 的交易時間是:
週日6:00pm 至 週五 4:15pm
週一、週二、週三以及週四的 4:15pm - 4:30pm 以及 5:30pm - 6:00pm 會暫停交易

但由 2012年11月18日開始,我們觀察到ES 的交易時間變成:
週日6:00pm 至 週五 5:15pm
週一、週二、週三以及週四的 4:15pm - 4:30pm 以及 5:15pm - 6:00pm 會暫停交易
週五的 4:15pm - 4:30pm 會暫停交易

之後,我們還發現 2015年9月20日和 2021年6月27日的交易時間也有變動。
總結2008年1月2日到2023年5月5日 ES 的恆常交易時段為:
2008年1月2日 - 2008年11月18日:
週日6:00pm 至 週五 4:15pm
週一、週二、週三以及週四的 4:15pm - 4:30pm 以及 5:30pm - 6:00pm 會暫停交易
2008年11月18日 - 2015年9月20日:
週日6:00pm 至 週五 5:15pm
週一、週二、週三以及週四的 4:15pm - 4:30pm 以及 5:15pm - 6:00pm 會暫停交易
週五的 4:15pm - 4:30pm 會暫停交易
2015年9月20日 - 2021年6月27日:
週日6:00pm 至 週五 5:00pm
週一、週二、週三以及週四的 4:15pm - 4:30pm 以及 5:00pm - 6:00pm 會暫停交易
週五的 4:15pm - 4:30pm 會暫停交易
2021年6月27日 - 2023年5月5日(數據結束日期):
週日6:00pm 至 週五 5:00pm
週一、週二、週三以及週四的 5:00pm - 6:00pm 會暫停交易
在數據結束日期,ES 的恆常交易時段和 Chicago Mercantile Exchange(CME) 最新所提供的時間是一樣的
如果你的日內數據交易策略在暫停交易前和後有特別操作,你需要在回測ES時調整你的交易時間
例如策略於暫停交易前10分鐘平倉,開盤後10分鐘才開始入市,你需要調整不同年份的交易時間:
2008年1月2日 - 2008年11月18日:
開盤後10分鐘:週日,週一、週二、週三以及週四 6:10pm
暫停交易前後10分鐘:週一、週二、週三、週四 5:20pm,以及週五 4:05pm
2008年11月18日 - 2015年9月20日:
開盤後10分鐘:週日,週一、週二、週三以及週四 6:10pm
暫停交易前後10分鐘:週一、週二、週三、週四以及週五 5:05pm
2015年9月20日 - 2021年6月27日:
開盤後10分鐘:週日,週一、週二、週三以及週四 6:10pm
暫停交易前後10分鐘:週一、週二、週三、週四以及週五 4:50pm
2021年6月27日 - 2023年5月5日(數據結束日期):
開盤後10分鐘:週日,週一、週二、週三以及週四 6:10pm
暫停交易前後10分鐘:週一、週二、週三、週四以及週五 4:50pm
如果你想於回測時統一交易時間,你可能會把你的交易時間改為週日至週五 6:10pm - 4:05pm(這個時段在不同年份都有交易)
另外,了解ES期貨交易的不同時段的特點,觀察不同時間段的策略表現,這可以幫助你判斷那些時段適合你的策略,並找出最佳進出點。下一篇日內數據文章會一起探討不同時段的特點和回報!
----------------------------------------------------------------------------------------------------------------
阿程量化交易 -> 1個月至少4篇精華文章
每月分享 2 個高 Sharpe Ratio 策略 (授人以「魚」)
每月分享 「搵 Alpha 策略」 方法 (授人以「漁」)
每月至少4篇文章
無數學費的操盤心得
行內秘聞
程式交易編程經驗
----------------------------------------------------------------------------------------------------------------
【公開量化策略系列】
策略 1 (Sharpe Ratio 1.4):
https://www.patreon.com/posts/gong-kai-liang-1-98710085
策略 2 (Sharpe Ratio 1.84):
https://www.patreon.com/posts/zhen-wen-fa-1-ce-100421185
策略 3 (Sharpe Ratio 1.34) - Long+Short 美期:
https://www.patreon.com/posts/gong-kai-liang-3-101097951
教你一個方法即搵高Sharpe策略
https://www.patreon.com/posts/jiao-ni-yi-ge-fa-102776585
策略 4 - Trend Following
https://www.patreon.com/posts/gong-kai-liang-4-103345268
----------------------------------------------------------------------------------------------------------------
【程式交易編程系列】
1. 真正深入回測恆指每月第一個交易日/最後交易日規律:
https://www.patreon.com/posts/zhen-zheng-shen-99709770
2. 關於日內數據(Intraday Data)你不知道的二三事
https://www.patreon.com/posts/guan-yu-ri-nei-101348214
----------------------------------------------------------------------------------------------------------------
【行內秘聞】
1. 量化基金如何保護他們的交易策略:
https://www.patreon.com/posts/liang-hua-ji-jin-95730512
2. 行內交易員對Alpha的看法:
https://www.patreon.com/posts/xing-nei-jiao-yi-97170473
3. 上司如何得知一個初級量化交易員的悟性?:
https://www.patreon.com/posts/shang-si-ru-he-99299074