用資工的角度聊聊程式交易與AI選股 #10 上
程式交易

用資工的角度聊聊程式交易與AI選股 #10 上

contributed by <Tim096>

前言

寫這個主題,其實筆者自己也沒有多大自信可以寫得多好,畢竟自己雖然是資工背景,但是對於這一塊還算是非常門外漢的。不過為了對大家負責,筆者上個月也乖乖花錢去上了一些課程,並且也有自己實作一次機器學習的選股程式,因此如果您本來就是這方面的專家,或是研究一陣子的人也歡迎糾正筆者有錯誤的地方,大家一起討論,互相進步~
以下 4 大部分來聊
1. 什麼是程式交易?
2. 破除程式交易迷思
3. 程式交易的優缺點
4. 程式交易小結

程式交易

用資工的角度聊聊程式交易與AI選股 #10 上
程式交易流程 (來源 : Tim096 )

什麼是程式交易?

程式交易顧名思義就是用程式進行交易,現今幾乎所有的金融商品交易,都會使用電子化的方式,透過交易平台進行買賣,但是在下單之前所有的決策,都是由「人」去進行判斷的,而最一開始程式交易的想法就是,將這些判斷決策寫好一個程式後,交給電腦去執行,電腦可以跟人一樣,每天自行完成完整的交易流程,完全不需要人為介入,這樣的交易形式,就稱作程式交易。

「程式交易,就是把你自己的交易策略交給程式執行。」

下面用一個簡單範例,讓大家更好的理解什麼是程式交易?程式交易策略就是將人為的交易策略用數值化的形式描述出來。

就拿最近很夯的台積電(2330)來舉例吧,股價大於300 時候就賣出,小於 250 的時候就買進。就可以把程式交易策略寫成以下判斷式,最後把自己的策略寫成程式,再交給程式自動交易即可~

程式交易
下單程式碼 (來源 : Tim096 )

當然上面的舉的例子非常簡單,甚至是根本不符合實際情況,那真正的程式交易員呢?在交易市場裡,有各式各樣的分析數據,基本面、技術面、籌碼面的分析,不論何種層面的數據,只要可以把自己想法寫成一套嚴謹的規則,那麼就可以寫成程式,進行程式交易。

如果今天有一個人使用技術指標在股市當中賺錢,假設他看的是二十日均線突破,就透過寫程式把二十日均線當成一個訊號,如果二十日均線突破了就觸發下單程式,進行交易。

當然近幾年來由於 AI 的興起,當然人們就開始去思考 AI 是否能夠用在程式交易當中呢?在後面會介紹到~

破除程式交易迷思

以前的程式交易,更多的是利用技術指標來寫成策略交給程式進行交易,風報比、加速度指標、布林通道等等技術指標,將這些都數據化後,就可以進行交易啦~ 但就如同大家知道的,越多人知道的技術指標通常就越沒有效果,在這個資訊如此發達的年代,其實很多的技術指標大家也都知道了,況且一個真正有用的技術指標,通常都是一家程式交易公司秘密,不會讓大家知道的。

在寫這篇文章參考其他人的論點時,好像很少看到有人在說程式交易的弱點,我們以傳統的主觀交易來比較,來突顯程式交易的優勢,但絕非貶抑主觀交易,事實上程式交易的策略靈感從何而來?當然不是憑空想像或是東抄西抄來的,如果沒有第一線面對市場,深入地觀察行情甚至參與行情,就絕無可能歸納出交易規則並進而發現交易機會,可以說好的主觀交易者更有可能發展出成功的程式交易。說到底程式交易也就是一項好工具,但要怎麼用它?給它注入怎麼樣靈魂?才是成敗關鍵。程式交易就是一個工具,千萬不要認為程式交易是什麼萬靈丹,一個工具是沒有所謂的好壞之分。

程式交易的優缺點

優點

1. 處理大量資料,同時操作更多股票
* 相較起人工交易一次頂多只能關注 2-3 檔股票,程式交易則可以處理大量的資料並且同時操作多檔股票。

2. 遵守交易紀律,絕不會感情用事 (算準天體的運行,算不出人性貪婪)
* 有在股票交易的人,相信都會深刻的體會到一件事情,學會財報、分批、基本面等等,一切的東西,但事實上股票交易上,其實最後且最重要是和你自己內心中的「貪婪」、「恐懼」作戰,因此在這邊程式交易的優勢就完美的解決了此問題。

3. 機器人不會累,自動交易,節省時間
* 程式能夠替我們看盤,並自動執行交易,能夠省下我們很多的時間,多出來的時間可以用來優化交易策略或是做更有意義的事情。

4. 歷史數據回測,將策略數據化
* 有時我們在網路或自己想一些不錯的策略,但這些策略真的如自己想像中的這麼好嗎?此時程式交易則能夠對策略以歷史數據進行回測,讓我們能夠看清策略的盈虧、勝率等數據,並讓我們能夠進一步優化交易策略。

缺點

1. 機會成本
* 學習程式,寫程式,把自己的策略變成一套可用且嚴謹的程式,這些事情本身是非常花時間,而且不簡單的,如果拿這些時間去研究更多的基本面或是看多的報告,會不會更好呢?這件事情就很見仁見智了,不過這些的成本是確實存在且需要被考慮的。

2. 市價進場的陷阱
* 基本上所有的程式交易要能有效,應該全部用訂價進場,且要確保能穿價或點價。一般解盤用的軟體為了能看圖說故事,市價會變成一個很好的藉口,但使用市價會遇到的實戰問題可能超乎大家想像。首先最嚴重的問題就是滑價,此外,這也是盤整盤多數軟體會發生買在最高賣在最低慘事的原因之一。再來,如果是市價那麼你的風險也無法控制不是嗎?事實上許多的交易策略看起來極其有效,也是因為這個原因,市價事後來看這個其實是一個落後指標。

3. 回測的陷阱
* 舉例來說,今天收盤了,程式抓出來的,其實是昨天的預測,因此這中間會造成一天的價差,實際操作時,就可能發生程式用昨天 19 塊算出來報酬率是 ok 的,但是今天漲了5%,很可能已經吃掉了漲幅。

4. 過度交易
* 這是一般人從事程式交易的觀念錯覺,很多人都認為縮短交易週期,所承受的風險比較小,因為來回操作獲利比較多,這情況尤其在期指更加明顯。實際上如果你對程式交易有真實的了解,你會發現獲利與風險真正的重點不在操作的週期,而是跟系統本身設計原理有關。就如同很多人做指數喜歡用三分線、兩分線甚至一分線,搞到最後自己精神緊繃,訊號過多忙進忙出結果不只沒賺到錢,更繳了很多的手續費,這都跟過度交易有關。至少現在來說當沖都是有成本。

5. 擬合過度(Overfitting)
* 當今天你找到了一個看似完美的策略,就要去思考看看會不會有 Overfitting 的問題,會不會其實這一個策略只不過是你用未來人的身分去制定了一個看似完美的策略,在現實生活當中事實這一個策略是無法運作的,在下篇機器學習篇會更詳細的描述這一問題。

程式交易小結

程式交易能帶給我們什麼好處?程式交易協助我們進出有據以及克服心魔,此外,程式交易提供績效回測、完成的統計數據,有利於我們快速修正與複製策略;再進一階,把程式交易概念的應用到其他投資領域等等,都可賦予我們更多交易上的優勢。

最後,下一期讓我們一起窺探 AI 選股、機器學習的奧秘
機器學習究竟是如何運作的?
機器學習選股,其實很不理性?
機器學習的問題?
同一個機器學習跑結果會不同?
機器學習值得我們學習的地方?
除了上面的問題以外,大家還有什麼想了解機器學習、AI 選股的問題也都可以提出來喔~筆者在下一篇文章會一併回答,並且也會透露一點筆者自己機器學習選股的方法,回饋各位讀者們。

Gooaye AI 推薦閱讀機器學習中: