古有草船借箭,今有AI借鏡 - 訊號撰寫

2023/11/22閱讀時間約 2 分鐘
  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。

古有草船借箭,今有AI借鏡 寫到如何將CNN訓練好的模型訊號以一個新商品的方式匯入成歷史資料,藉此當為進場訊號的輔助,本文就簡單示範,當匯入訊號後,策略的程式如何撰寫。

首先描述這個模型的特性及策略的設計,CNN模型以「市場輪廓圖」為基礎訓練圖形,以「日」為單位,預測接下來的行情是否發生反轉,訊號的產生也是以日為單位產生,但日資料拿來當交易的週期太長,於是就另外再加入一條五分K的資料數列,當為進出場時間的依據。

進場訊號

進場訊號

本策略為示範說明用,因此只簡單定義了停損及移動出場二個參數,因為CNN的模型判斷是以「日」為單位,在程式中,就以判斷是否換日當條件,當換日的K棒時,就讀入CNN的模型訊號,以CurrentDirection來儲存目前CNN的訊號方向,當方向有發生變化時,就將NeedChange的值,設為CNN預做的方向,讓5分K在開盤時,可以依據NeedChange的值來觸發進場訊號,當CNN的訊號不變或預測為盤整時,就將NeedChange值設定為0,則不會觸發方向。

停損及移動出場

停損及移動出場

當MarketPosition不為零時,即代表目前有部位,則將停損及移動出場的參數傳入出場的函式中,在此特別說明:

If Date + 19000000 >= 20230408 And Time >= 1300 Then

這是因為CNN的最後日期只到 2023/04/08, 因此當大於這個日期時,若手中有部位,則在 13:00時就發出平倉的訊號,避免一直持有讓倉位。

在MC的日期起始日期是 1900年,因此我們可以將系統日期,加上19000000後,就可直接與目前的日期比較,不用再手動計算,目前日期與1900年的年份差距,增加程式的可讀性。

若不使用加 19000000的方式,則需表示為1230408,不常撰寫策略的開發者很容易搞錯年度,在此就運用了這個小技巧,讓日期可以直接以西元年的方式來表示。

本篇只是以一個簡單的範例說明如何結合AI的模型訊號,筆者可依此進行擴充,以結合更多的外部模型,充分發揮MC的強項。





15會員
55內容數
金融市場入門新手所必知的基本知識
留言0
查看全部
發表第一個留言支持創作者!