人跟機器的對奕,機器贏了,於是,腦筋動的快的朋友就問了: AlphaGO能打敗棋王! 能不能也打敗市場?
這種問題問我這種文組背景的,那真是問道於盲了,但表面上我還是得裝堅強,於是只好找資料來作功課,以下是我作完功課的報告。
要回答AlphaGo 的演算法能否打敗主力之前,我們先來了解AlphaGO是怎麼設計出來的?
以下象棋為例,我們可以定出一個決定勝負的函數,例如這函數包括
1。帥的安全度。
2。有多少攻擊力。
3。有多少防守力。
4。佈了多少個陷阱。
5。有多少個空檔。
然後算出每一步的決策會對這個函數產生什麼變化,然後找出對這個函數最正向的那一步。
在下棋人工智慧演算法的演進過程中,我們可以發現,審局函數是一個很重要的元素,如果我們把投資當成個人與市場日復一日的對奕,我們可以仿效電腦下棋的邏輯,建構一個審局函數,這個函數有點像在預測擲銅板的正面還是反面,就像我們每天在預測特定金融商品今天會上漲或下跌,只是擲銅板出現正面或反面的機率是一半一半,而我們則希望透過過去一段時間金融商品的價格表現,建構一個審局函數,並且給予不同的預測指標不同的權重,然後透過人工智慧讓電腦不斷的修正各個權重,用以預測接下來市場到底是會上漲還是下跌。
如果大家可以接受上述的說法,那麼接下來我們的功課就會聚焦在審局函數的建構上。
傳統的程式交易,只用一個指標來建構審局函數,例如海龜交易用週移動平均線來作為判斷後市看漲抑或看跌的唯一標準。當年的電腦運算能力有限,這麼作有其不得不然的原因,現代的電腦運算能力如此強大,我們應該要效法AlphaGo的精神,想辦法提高審局函數的精確度。
我可以仿效AlphaGo,把各項的歷史數據拿給電腦去跑,讓電腦幫我兩件事
這樣一天決策一次,電腦可以慢慢算,但大家常說金融市場瞬息萬變,我們也可以用當沖者的思考模式,一天下一盤,一分鐘下一次,這時候能用來作為審局函數的指標就更少了,可能只能用一分鐘K線的開高低收成交量,內外盤成交量,委買委賣量的變化等資料而已。小弟才疏學淺,目前還無法用XS寫出機器自己學習的程式,但上述的思考理路應該是可以循序發展的。舉個例子我們可以看看幾個大家常用的技術分析工具應用在加權指數上時,過去三年的回測報告
當我們單獨使用 MACD 作為買進的訊號,回測報告如下:
總報酬率很高,但勝率低且最大連續虧損率超過100%
如果改成用MTM>10來當進場點時
情況更慘,勝率更低
但如果我們把多個技術指標都考慮進出並且給予不同的權重,我們可以跑出下面的回測報告
交易次數少,會賺錢,不會賠到血本無歸。
如果我們讓電腦來學習幫我們調整權重,那麼我們就更能打造出風險更低的交易策略了。
綜合上面的說明,如果我們假設市場就只有電腦跟整體市場兩個玩家,把各式各樣的策略通通拿下去try,然後找出對特定金融商品在特定時空下勝率最高的策略,然後根據這個策略的指示來操作,大概就是AlphaGo對我們這些操作者的最大啟發了。
至於怎麼try,容小弟再想想!! 當然希望以後可以讓電腦來想想。