SamSuka
阿程量化交易
阿程量化交易

patreon


免費公開 - 【關於日內數據Part 4 - 使用 Intraday/Overnight 時段的策略】

在上一篇關於日內數據的文章,我們探討了在這15.5年來,是日間交易時間回報較好,還是夜間交易時間回報較好。

今篇文章我們會再進一步,去探討:

策略1: 用日間交易時間回報去決定是否在夜間交易時間買入/沽出

策略2: 用夜間交易時間回報去決定是否在日間交易時間買入/沽出

重溫日內數據Part 3 - 深入分析 4 個交易時段的回報

E-mini S&P 500期貨(ES)的價格由 2008年1月2日的 1,316 到2023年5月5日的 4,149

這15.5 年來總回報為 (4149 / 1316) - 1 = +2.15倍

我們把交易時段分為 4 個時段:

時段1 - intraday   : 09:30:00 - 16:00:00

時段2 - post_intra : 16:00:00 - 18:00:00

時段3 - overnight  : 18:00:00 - 09:30:00

時段4 - skip_period: 所有不屬於時段1-3的時段,例如 Fri 17:00 to Sun 18:00

在這15.5年來,夜間交易(Overnight period)時間的回報較好!是日間交易(Intraday period)時間回報的兩倍多,而Post-Intraday period外和 skip period的回報則是蝕少許。


策略1: 用日間交易時間回報去決定是否在夜間交易時間買入/沽出

策略1A:

    (1) 如果日間交易時段的回報(log return) 大於 0.0001

    (2) 就在下一個夜間交易時段開始時買入

    (3) 在同一個夜間交易時段結束時平倉

    最後計算總回報(Log Return 和 Simple Return)

    Remark: 如果改為在(2)是沽出,只需把 Log Return 總回報乘以 -1

策略1B:

    (1) 如果日間交易時段的回報(log return) 小於 -0.0001

    (2) 就在下一個夜間交易時段開始時買入

    (3) 在同一個夜間交易時段結束時平倉

    最後計算總回報(Log Return 和 Simple Return)

    Remark: 如果改為在(2)是沽出,只需把 Log Return 總回報乘以 -1

我們會去Python去探討以上策略的回報

策略1 Python Step 1: Data Input 是每一行代表一個period的Excel File

例如:

每一個 period 都有這個 period 的回報,以及open price

我們用pandas DataFrame 去讀取這個 excel

策略1 Python Step 2: 在df_boundary 製造 Buy-and-hold Cumulative Log Return 的 column

Cross Check 個 cumulative return 沒有計錯:

策略1 Python Step 3: 製造包含 上一個Intraday period 和今個overnight period 的 DataFrame

每一行都有 LAST_PERIOD=Intraday, CURR_PERIOD=overnight 的資料,

各自period都有 period start time, period end time, period首尾的 open price, 以及 period 的 log return

策略1 Python Step 4: 計算用日間交易時間去決定是否在夜間交易時間買入的回報

策略1A:

    (1) 如果日間交易時段的回報(log return) 大於 0.0001

    (2) 就在下一個夜間交易時段開始時買入

    (3) 在同一個夜間交易時段結束時平倉

    總回報(Log Return) = 0.299579

    平均回報(Log Return) = 0.000142

策略1B:

    (1) 如果日間交易時段的回報(log return) 小於 -0.0001

    (2) 就在下一個夜間交易時段開始時買入

    (3) 在同一個夜間交易時段結束時平倉

    總回報(Log Return) = 0.583477

    平均回報(Log Return) = 0.000329

對比夜間交易時段的回報:

    總回報(Log Return) = 0.961286

    平均回報(Log Return) = 0.000242

小結:

    策略1A的 平均回報只有0.000142,比夜間交易時段的0.000242更差

    策略1B的 平均回報有0.000329,比夜間交易時段的0.000242好少少

策略1 Python Step 5: 用Python 去 Plot Cumulative Return Graph (In Simple Return)

策略1A:

策略1B:


策略2: 用夜間交易時間回報去決定是否在日間交易時間買入/沽出

策略2A:

    (1) 如果夜間交易時段的回報(log return) 大於 0.0001

    (2) 就在下一個日間交易時段開始時買入

    (3) 在同一個日間交易時段結束時平倉

    最後計算總回報(Log Return 和 Simple Return)

    Remark: 如果改為在(2)是沽出,只需把 Log Return 總回報乘以 -1

策略2B:

    (1) 如果夜間交易時段的回報(log return) 小於 -0.0001

    (2) 就在下一個日間交易時段開始時買入

    (3) 在同一個日間交易時段結束時平倉

    最後計算總回報(Log Return 和 Simple Return)

    Remark: 如果改為在(2)是沽出,只需把 Log Return 總回報乘以 -1

由於Coding 大部分和策略1相似,所以我們直接去策略2的結果:

策略2 Python Step 4: 計算用夜間交易時間去決定是否在日間交易時間買入的回報

策略2A:

    (1) 如果夜間交易時段的回報(log return) 大於 0.0001

    (2) 就在下一個日間交易時段開始時買入

    (3) 在同一個日間交易時段結束時平倉

    總回報(Log Return) = 0.829270

    平均回報(Log Return) = 0.000389

策略2B:

    (1) 如果夜間交易時段的回報(log return) 小於 -0.0001

    (2) 就在下一個日間交易時段開始時買入

    (3) 在同一個日間交易時段結束時平倉

    總回報(Log Return) = -0.282712

    平均回報(Log Return) = -0.000161

對比日間交易時段的回報:

    總回報(Log Return) = 0.556603

    平均回報(Log Return) = 0.000141

小結:

    策略2A的 平均回報只有0.000389,比日間交易時段的0.000141好

    策略2B(在(2)改為沽出)的平均回報有0.00161,比日間交易時段的0.000141好少少

策略2 Python Step 5: 用Python 去 Plot Cumulative Return Graph (In Simple Return)

策略2A:

策略2B:



總結:

Input file 和 Code 放在會員專屬文章:

https://www.patreon.com/posts/data-code-guan-4-105435463

----------------------------------------------------------------------------------------------------------------

阿程量化交易 -> 1個月至少4篇精華文章

----------------------------------------------------------------------------------------------------------------

【真‧搵Alpha策略系列】

搵Alpha方法1 :

https://www.patreon.com/posts/zhen-wen-fa-1-ce-100421185

搵Alpha方法2:

https://www.patreon.com/posts/jiao-ni-yi-ge-fa-102776585

搵Alpha方法3:

https://www.patreon.com/posts/mian-fei-gong-yi-104969423

----------------------------------------------------------------------------------------------------------------

【公開量化策略系列】

策略 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

策略 5 - 公開一個 Sharpe ratio 2.42 的交易策略

https://www.patreon.com/posts/gong-kai-yi-ge-2-103636466

策略 6 - 免費公開點樣用一個穩定蝕錢策略黎大賺Alpha? (Sharpe 1.44)

https://www.patreon.com/posts/mian-fei-gong-yi-104969423

----------------------------------------------------------------------------------------------------------------

【程式交易編程系列】

1. 真正深入回測恆指每月第一個交易日/最後交易日規律:

https://www.patreon.com/posts/zhen-zheng-shen-99709770

2. 關於日內數據(Intraday Data)你不知道的二三事

https://www.patreon.com/posts/guan-yu-ri-nei-101348214

3. 關於日內數據Part 2 - 從數據了解ES交易時間

https://www.patreon.com/posts/guan-yu-ri-nei-2-103392012

4. 關於日內數據Part 3 - 深入分析 4 個交易時段的回報

https://www.patreon.com/posts/guan-yu-ri-nei-3-104523407

----------------------------------------------------------------------------------------------------------------

【行內秘聞】

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


免費公開 - 【關於日內數據Part 4 - 使用 Intraday/Overnight 時段的策略】

More Creators