什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲跌。(3)Finlab回測

更新於 發佈於 閱讀時間約 4 分鐘
投資理財內容聲明
raw-image



前言

這篇會拿Finlab上的策略與機器學習預測線圖的因子進行結合。由於模型是透過2007-2011年的線圖作為訓練資料,回測的時候會從2012年開始以示公平。

還沒看過前面兩篇的可以點下面連結,會比較看得懂接下來的內容。

第一篇: 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲跌。(1)論文解析

第二篇: 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲跌。(2)台股實測


回測設定

回測區間: 2012年~2023年

回測日期: 2023/12/25

使用模型: I5/R5,有就是拿五日線圖預測五日後漲跌。總共依照四種線圖(參考下圖)對應的四種模型進行回測。

raw-image

為了方便表示,由左到右的線圖對應到的模型分別為I5/R5、I5/R5-m、I5/R5-v、I5/R5-mv。



模型預測因子導入Finlab

要讓模型預測2012~2023年的所有資料需要耗費很大的計算量及時間,所以這裡會把預測好的結果存在dataframe裡並存成.csv檔以便之後利用。之後就只需要更新最近一天的資料並存回.csv檔即可。

導入方法如下圖所示。

# 從csv檔案讀取
file_path = "cnn_5_5.csv"
cnn_factor_df = pd.read_csv(file_path, index_col="date")
# 轉換成FinlabDataFrame
finlab_cnn_factor = Finlab​DataFrame(cnn_factor_df)
# 設定columns及index
finlab_cnn_factor.columns = finlab_cnn_factor.columns.remane("symbol")
finlab_cnn_factor.index = pd.to_datetime(finlab_cnn_factor)


使用方法就和一般Finlab的資料相同,假設我想要"大於0.5"的條件,則可以這樣寫:

# 模型預測因子>0.5
cond1 = finlab_cnn_factor > 0.5



策略優化

接下來會從Finlab平台上選三個策略進行優化,這三個策略都是以週為單位進行轉倉的策略,剛好與模型預測五日漲跌相符合。實驗結果會將原始策略以及四個模型的報酬率、Sharpe Ratio、MDD、勝率進行比較。

這篇文章不會包含完整程式碼,因為有些是Finlab的VIP策略,故無法公開。

策略一: 超級績效台股版 VIP

修改方式: 將原先的rank乘上finlab_cnn_factor後進行排序,其餘程式碼都不變。

結果如下:

raw-image


可以看到除了I5/R5這個模型的表現比原始策略差之外,其他模型都表現得不錯。不管是在報酬、sharpe ratio、還是MDD上都較原始策略更優。

I5/R5-m這個模型甚至多了8.41%的年化報酬,且同時sharpe ratio更高MDD也更低。也可以發現,四個模型的結果都成功優化MDD,使MDD較原始策略提升3~8%不等。

策略二: 三頻率RSI策略

這個策略本身沒有限制持有檔數,所以我使用買進10及20檔做實驗,並且使用模型預測因子作為排序選擇前10/20檔作為買進標的。實驗結果如下。


買進前10檔

買進前10檔

買進前10檔的情況下,所有的模型都表現得比原始策略來的更好。

最好的模型是I5/R5-v,年化報酬提升了11%左右,同時Sharpe Ratio也提升了不少,不過MDD卻都變大了許多。

買進前20檔

買進前20檔

買進前20檔的情況下,除了I5/R5這個模型以外,其他的模型都表現得比原始策略來的好。這裡雖然報酬提升較少,但MDD整體都較原始策略下降且勝率、sharpe ratio提升。

策略三: 二次創高股票

原始策略一樣沒有限定檔數,這裡設定買進前20檔,並使用模型預測因子進行排序。

實驗結果如下。

買進前20檔

買進前20檔

從結果可以看到,使用模型預測的因子進行排序不管在報酬、Sharpe、MDD還是勝率上都有所提升。

而不同模型也有不同的優勢,例如I5/R5-v年化報酬最高,但MDD最大。I5/R5報酬相對較低,但MDD反而較小。I5/R5-m則是較I5/R5-v犧牲了一點報酬,但換來更高的sharpe ratio、更低的MDD以及更高的勝率。



總結

上面實測了一些策略都有很不錯的效果,然而這個因子不是萬能的,實測下來有時候不但沒有提升策略結果反而還讓策略表現的更差了。

整體來說,這個因子還是十分有淺力的,這次也只實測了I5/R5系列的模型。依據論文實驗所述,不同模型學習到的結果是不一樣的,I20/R20學習到的可能會比較適合月轉倉的策略,I60/R60學到的可能會很適合季轉倉的策略。有興趣的可以自行去實驗看看~。


如果對這篇的實驗有興趣,贊助500以上可以找我拿這四個csv檔(不包含模型及日後的資料)。

留言
avatar-img
留言分享你的想法!
avatar-img
Li way Cheng的沙龍
30會員
10內容數
這個專題會分享有關投資、量化、因子以及機器學習相關的內容。主要會以我有興趣的內容進行分享,希望能透過實際回測及實驗做為佐證,找尋股票市場中的ALPHA。
Li way Cheng的沙龍的其他內容
2024/07/24
近幾年來,個股期貨的流動性越來越好,也有越來越多靠著股票期貨發家致富的故事,當然也有人不當使用這個商品而破產。這篇文章不會教你如何靠股票期貨發財,而是利用股票及期貨之間的差異性進行短線風險性較低的類套利交易。
Thumbnail
2024/07/24
近幾年來,個股期貨的流動性越來越好,也有越來越多靠著股票期貨發家致富的故事,當然也有人不當使用這個商品而破產。這篇文章不會教你如何靠股票期貨發財,而是利用股票及期貨之間的差異性進行短線風險性較低的類套利交易。
Thumbnail
2024/03/22
前言 這次除了00940上市的話題很熱門之外,吃00940豆腐的話題也是非常火熱。老實說身邊有在吃豆腐的人比有買00940的人多非常多,這也導致高殖利率股票在這一周波動非常大。 可以看到前十大成分股之一的漢唐最近兩周上下波動非常劇烈,基本上都是長紅K或是長黑K所組成。 手中00940持
Thumbnail
2024/03/22
前言 這次除了00940上市的話題很熱門之外,吃00940豆腐的話題也是非常火熱。老實說身邊有在吃豆腐的人比有買00940的人多非常多,這也導致高殖利率股票在這一周波動非常大。 可以看到前十大成分股之一的漢唐最近兩周上下波動非常劇烈,基本上都是長紅K或是長黑K所組成。 手中00940持
Thumbnail
2024/03/15
前言 最近市場上最熱門的股票不是台積電也不是任何一檔飆股,而是還沒上市的00940元大臺灣價值高息。這檔ETF申購首日就突破650億元,最終規模應該很有機會接近2000億。2000億的資金湧入成分股勢必會造成股價被拉抬的情況發生,如果能夠提前在00940買進前先卡位的話,或許就能偷吃到00940的
Thumbnail
2024/03/15
前言 最近市場上最熱門的股票不是台積電也不是任何一檔飆股,而是還沒上市的00940元大臺灣價值高息。這檔ETF申購首日就突破650億元,最終規模應該很有機會接近2000億。2000億的資金湧入成分股勢必會造成股價被拉抬的情況發生,如果能夠提前在00940買進前先卡位的話,或許就能偷吃到00940的
Thumbnail
看更多
你可能也想看
Thumbnail
前言 這篇會拿Finlab上的策略與機器學習預測線圖的因子進行結合。由於模型是透過2007-2011年的線圖作為訓練資料,回測的時候會從2012年開始以示公平。 還沒看過前面兩篇的可以點下面連結,會比較看得懂接下來的內容。 第一篇: 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲
Thumbnail
前言 這篇會拿Finlab上的策略與機器學習預測線圖的因子進行結合。由於模型是透過2007-2011年的線圖作為訓練資料,回測的時候會從2012年開始以示公平。 還沒看過前面兩篇的可以點下面連結,會比較看得懂接下來的內容。 第一篇: 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲
Thumbnail
還沒有看過上一篇的可以點擊下面連結 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲跌。(1)論文解析。 這一篇會把注意力放在論文提到的技術並套用在台股市場,也會使用論文中的方法進行驗證,看看是否在台股也有一樣的超額報酬。 資料生成 第一步也是最難的一步-資料生成。 這裡
Thumbnail
還沒有看過上一篇的可以點擊下面連結 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲跌。(1)論文解析。 這一篇會把注意力放在論文提到的技術並套用在台股市場,也會使用論文中的方法進行驗證,看看是否在台股也有一樣的超額報酬。 資料生成 第一步也是最難的一步-資料生成。 這裡
Thumbnail
前言 這個系列打算分三篇來完成。 第一篇先來解析論文中的方法以及實驗結果。 第二篇會把這篇論文應用在台股上,評估效果如何。 第三篇會把這篇論文實作成因子套用在Finlab上進行回測。 動機 今天要介紹的論文是這篇 (Re-)Imag(in)ing Price Trends。會知道
Thumbnail
前言 這個系列打算分三篇來完成。 第一篇先來解析論文中的方法以及實驗結果。 第二篇會把這篇論文應用在台股上,評估效果如何。 第三篇會把這篇論文實作成因子套用在Finlab上進行回測。 動機 今天要介紹的論文是這篇 (Re-)Imag(in)ing Price Trends。會知道
Thumbnail
從 ChatGPT 開始再次引發人工智慧的熱潮討論,尤其 AI 可用於分析大量數據,是否可以幫助做出更明智的投資決策?不過大家都知道 ChatGPT 本質上是語言模型,作用在講出一段邏輯語意合理的話,雖然可以用在分析資料,但並不具備預測股市走向的功能,不過最近我試用了一款新的人工智慧驅動的股票分析工
Thumbnail
從 ChatGPT 開始再次引發人工智慧的熱潮討論,尤其 AI 可用於分析大量數據,是否可以幫助做出更明智的投資決策?不過大家都知道 ChatGPT 本質上是語言模型,作用在講出一段邏輯語意合理的話,雖然可以用在分析資料,但並不具備預測股市走向的功能,不過最近我試用了一款新的人工智慧驅動的股票分析工
Thumbnail
在 古有草船借箭,今有AI借鏡 寫到如何將CNN訓練好的模型訊號以一個新商品的方式匯入成歷史資料,藉此當為進場訊號的輔助,本文就簡單示範,當匯入訊號後,策略的程式如何撰寫。 首先描述這個模型的特性及策略的設計,CNN模型以「市場輪廓圖」為基礎訓練圖形,以「日」為單位,預測接下來的行情是否發生反轉,
Thumbnail
在 古有草船借箭,今有AI借鏡 寫到如何將CNN訓練好的模型訊號以一個新商品的方式匯入成歷史資料,藉此當為進場訊號的輔助,本文就簡單示範,當匯入訊號後,策略的程式如何撰寫。 首先描述這個模型的特性及策略的設計,CNN模型以「市場輪廓圖」為基礎訓練圖形,以「日」為單位,預測接下來的行情是否發生反轉,
Thumbnail
在AI浪潮下的訊號開發 提到可將AI訓練好的模型產生之訊號當成一個商品來匯入,今天將手把把示範如何把這訊號進行匯入成商品,並在策略撰寫時,可引用至此訊號,當為輔助資訊。 此表格為筆者使用的CNN模型訊號,在此利用開盤價、最高價、最低價、收盤價的技巧,讓多方趨勢的日期呈現紅K、空方趨勢的日期呈現黑K
Thumbnail
在AI浪潮下的訊號開發 提到可將AI訓練好的模型產生之訊號當成一個商品來匯入,今天將手把把示範如何把這訊號進行匯入成商品,並在策略撰寫時,可引用至此訊號,當為輔助資訊。 此表格為筆者使用的CNN模型訊號,在此利用開盤價、最高價、最低價、收盤價的技巧,讓多方趨勢的日期呈現紅K、空方趨勢的日期呈現黑K
Thumbnail
chatgpt說得一口好資料科學跟股票分析,我就來實際看看他會寫什麼出來
Thumbnail
chatgpt說得一口好資料科學跟股票分析,我就來實際看看他會寫什麼出來
Thumbnail
這篇論文是用來交易ETF,利用cnn神經網路去預測買點跟賣點由於CNN吃的是圖片輸入更精確來說是一個二維矩陣輸入因此論文作者將ETF的開高低收去計算出15種技術指標乘上15天剛好就可以作成15X15的矩陣(當作圖片)餵給CNN模型當作輸入
Thumbnail
這篇論文是用來交易ETF,利用cnn神經網路去預測買點跟賣點由於CNN吃的是圖片輸入更精確來說是一個二維矩陣輸入因此論文作者將ETF的開高低收去計算出15種技術指標乘上15天剛好就可以作成15X15的矩陣(當作圖片)餵給CNN模型當作輸入
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News