課程分享主題:
AI交易員在金融市場的應用 【課程內容重點提要】
#用手機看要【切換成桌機版網站】文章會較清楚
AI類神經網路交易與Multicharts程式交易,這兩種下單方式都可以稱之為人工智慧,也可以說是都程式交易,各分別有一些相似處與相異處。用AI來操作金融商品的心路歷程會讓使用者深刻感受到懷疑AI,人跟AI間充滿著信任到不信任,又從不信任到信任,這樣的天人交戰。也體會到要建立電腦程式下單的信任感不要從理解出發,還是從最後的結果去增加信任感會比較好。
許多人對於AI類神經網路交易或一般的程式交易無法分辨得那麼清楚,人工智慧這個字出現了近20多年,一開始可能是透過結構樹或窮舉法將所有的可能歸納推算,最後選擇最佳解。而類神經網路也有超過10多年的發展,但從2014年開始,類神經網路因電腦科學上的進步,突破了以往計算上的限制,從以前只能算一層,發展至今可以丟入大量數據去計算到很多層。也就是說用AI去模擬人類的大腦,再加上演算法,比如架構上有點像是人類視覺神經元件的CNN或是RNN,從模型的建構到丟入大量數據,再從電腦中去辨識,以上大概是初略的發展史。
人工智慧因為科技的進步,有了新的定義。以前可以做出很好辨識,但還沒辦法做出決策,直到2016年AlphaGo打敗棋王的重要事件指標出現,讓大家發現,以前只能讓AI去做定義、分類及辨識,而現在的AI只要透過一些技術,如reinforcement learning,給AI一個目標、一個環境,AI就可以開始自己發展出前往目標的策略,並達到這個目標。
以前AI可能做的只是分類,而現在的AI變成要做到決策。以前可能只能說用AI來辨識行情盤勢誰優誰劣,而現在的AI已經可以變成說:面對盤勢可以怎麼下策略做決策。透過AlphaGo戰棋王的經驗,證明了一件事情就是:對戰過程中,AI不需要知道所有會贏的可能,AI可以做到像人一樣,遇到某些特殊情況下,可以保有像人一樣的直覺,可以是有棋感、有盤感的。就好比你現在去問個棋士,為什麼這個時間要做多,為什麼要做空的時候,而他告訴你的真正原因其實只是一個:直覺..等。
當然有的人的直覺可能是用猜的,但也有些人的直覺就是很準,可以一次又一次的度過危機,他的操作及performance就是比別人好..等。投資人就是想要複製一個這樣的頂尖交易員與績效很好的大腦,把這個大腦設計成類神經網路,把過去任何股票、期貨等金融商品的資料丟進這個類神經網路,給它一個目標,協助使用者在這個目標環境下賺到錢。
過去的演算法與機器學習的侷限在於需要由人類來制定策略,當目標環境改變的時候,需要由人來調整及改變策略。而現在透過深度學習,你丟入新的數據資料後,它可以從新的資料自動找到可行策略。但是並不代表說傳統的演算法績效一定比新的AI績效來的差,因為有一些工作還是傳統的做的比較好。比如說有些人他的交易勝率是接近百分百,當然這個一定不可能會公開,但是只要他有找到這樣的可能性,他的勝率就是比AI好。目前大部分的Multicharts程式交易,就是由人來制定交易策略,而AI類神經網路交易不同的地方在於:給AI一個目標環境(比如說:期貨市場),由AI自己去想策略及制定交易決策。
現在的人工智慧我們應該有感覺到應用的相當廣泛,有的人用它來做自動駕駛,也有的人用它來做疾病上醫療研究,其正確率可能已經超過人類。機器學習在人工智慧上的突破就是用這樣的理解語言,透過數據辨識特徵制定策略(何謂特徵,比如說:黃金交叉為偏多,或者是用算利的方式把特徵找出來..等),讓AI自主推倒與自我學習。以前的AI沒有辦法去改變設計,現在的AI可以比較簡單的告訴它:把賺錢的函式設計進去,你要幫我賺錢,AI就自行去尋找該怎麼樣去賺錢,該找甚麼樣的特徵..等,從資料中找出達到目標的可能解法。
深度學習應用在投資交易上,架構大概就是先虛構設定一個目標環境,可能是最近20年台指期貨的歷史資料,並告訴機器它可以做多也可以做空。做了多或做了空之後,當隔了一段時間的某個時間點之後,將之後產生的正負報酬紀錄起來。以大部分Multicharts程式交易者的經驗來說,回測要讓績效跑到多好都是可以的。但這邊的回測指的是AI精益求精的地方,不只是簡單回測,還要將過去的資料分成用來訓練的跟用來驗證的兩塊。訓練出來的策略要再到驗證區,它在驗證區也必須要達到一定的獲利標準,才讓它出策略學校。而這些策略實際把它放在現實的市場上時,它當然還是會遇到很多的變數,比如說是用CNN還是RNN、歷史資料時間長短、實際上線交易的滑價太大,或是該成交沒成交或是沒回報回來等,這些也都是未來AI一定會遇到問題及需要調整的地方。
將訓練用的資料、驗證用的資料及實際上線用的資料,分別讓AI去訓練、驗證、實際上線交易,讓AI去排除投資大眾在會犯上的交易問題,比如說人性或情緒影響到當下的交易決策(有賺錢就想先出場,或是賠錢就凹單..等)。如果把這些變數變成是Multicharts程式交易者寫好的策略(制定好交易規則),也會怕這些策略會不會有遺漏的地方,這也就是為什麼這麼多人會想用人工智慧做程式交易。因為如果可以透過AI去複製一個交易員的大腦,而這個AI也證明了它能夠應付過去金融市場上的各種狀況,它可以像人一樣變通反應,它也不會像一般的程式交易者被自己所制訂的策略規則給限制住..等。
因此,信任感就會變成特別的重要,因為你今天如果信任一個交易員,因為他是人類,他會有感覺,他做錯了他會反省。而AI明明這些功能都有設計進去,但是使用者可能還是會選擇不去相信它。舉例來說,現在是2018年初,自動駕駛很夯,如果你想讓AI幫你操盤,就像現在的你開車啟動自動駕駛一樣,在高速公路上幫你自動跟車、自動限速、自動轉彎等。在高速公路上開車,放開雙手雙腳談何容易,所以如果要信任AI,必須要有很強烈對AI的信任感,要達到對AI的信任,不是看過多少論文,也不是做過多少研究,只要實際上線讓自駕車載過一次,體會它的表現,才有可能去信任,交易亦是如此。一定會先經過不信任,再從不信任到信任,甚至跟AI做PK賽,比賽久了如果都是AI贏,才會因此建立起對AI的信任。
那要怎麼定義AI會賺錢?!比如說你AI的交易模式都是設定當沖不留倉,還是設定成做波段趨勢的留倉策略。因為同一個neural Network不可能同時學會到兩種不同的模式,所以要根據不同的交易模式及變數做設計。以期貨來說,當沖交易的變數可能相較於部位留倉的變數來的少,雖然說現在台指期有開放盤後交易時段,但是行情還是有可能會受到國外新聞等其他變數的影響。如果今天是做股票,那變數可能就更多了,可能包含到新聞的真真假假、法說會、財報、月營收狀況等。
歷史資料的部分,AI可以用ticks、小時、分鐘、日線的歷史資料來開發。以台灣市場的金融商品來說,期貨歷史資料數據的部分會比股票市場上單一個股的數據來的夠一些。所以初期開發AI來說,期貨市場會相對比股票市場好開發許多,因為現在的AI開發,並不是只要丟歷史資料進去AI就會自己找策略的,中間還會有許多的細節需要注意。
如果今天是有程式技術背景的人來開發AI,也可以參考2017年有位google工程師,分享了有關 Tensorflow的應用,在開發AI程式交易的過程中也可以用到。舉這位工程師分享的應用:第一個就是怎麼樣讓AI去認得數字或是認得現在的行情走勢是多方還是空方?!
比較簡單的方法是在一開始如果只有一層的類神經網路,假設是一個矩陣,把數字數位化後,在用這個矩陣就可以把正確答案算出來,而這樣算出來的準確率約92%,類似接近你的AI讀10個銀行帳號,會錯1碼的概念。2014年至今的最大改變就是,以前是一層類神經網路,現在可以變成是多層,可能用Deep Learning把各神經元連在一起,透過多層的神經元結合、預值及不斷地計算,算出正確數字。
以金融商品交易來說,第一件事情就是先把商品的行情資料編碼,第二步來決定我的預值,第三就是不斷的訓練AI,讓AI接受到它沒看過的資料也要表現得跟有看過的資料一樣好。歷史資料假設可能是10年或20年,AI類神經網路就是負責把以前發生過的案例背起來做應對。但是做人工智慧最終當然不會希望AI只是光會背答案,更重要的是希望要能夠找到feature,透過feature運用它到以前從沒看過的資料(未來行情),它的表現跟用過去訓練資料所訓練出來的績效要一樣的好,這樣才有意義。
人工智慧的演變,從結構樹>>類神經網路一層>>類神經網路多層>>多層以外加上一些演算法做設計(如CNN、RNN、GRU)…等。至於類神經網路層數需要幾層,要越大層還是越小層或哪種比較好,至今沒有一個準則也沒有上限。很多論文也在探討,但最終還是需要依照你的訓練跟Data去做調整。
做AI就必須要做到不斷的嘗試及改變模型架構,改變類神經網路的大小,不斷的訓練及加入最新論文的研究方法。舉例來說,有個memory network應用,有一些是需要不斷去計算的,有的則是需要一些記憶空間的,在遇到某些狀況發生時,應該事先去記憶空間中找出以前有沒有發生過類似狀況,沒發生過AI再來推論等。看到新的研究論文就要去試做,看AI用新的方法在效率或名次排名上有沒有顯著提升等。
AI在數字辨識上有很多武器,調整目標函式、調整目標模型、對資料做處理,或者是想辦法拿到更好的資料做訓練…等。一般的程式交易可能是不斷的嘗試尋找交易上的feature。而跟AI類神經網路交易不太一樣的是:AI是可以自己設計交易的feature。金融商品比較像是一個time series,因為前一分鐘的漲跌可能會影響下一分鐘的行情,加入CNN或RNN..等用來專門處理time series的實驗方法,當然實驗時間也可能會是目前的研究的最大成本,因為實驗久了才會知道哪些路可能比較順。
AI類神經網路交易與一般的程式交易的不同在於AI不會去制定策略方向(如:RSI策略、CDP策略等)。而是給AI一個環境及目標,讓AI在這個環境中間想辦法去學到策略,驗證這個策略,然後在現實世界讓我們來使用這個策略。
程式交易在海外國際間已經盛行了好一段時間,一個performance好的交易程式非常的貴,要訓練出一個好的trader,訓練的時間也需要很長,資料數據量只會越來越多,人類會有一定的侷限在。而人工智慧在理論上不太會有這樣的限制。當然,人工智慧是人設計的,人設計的AI當然也有可能會有侷限,或是想辦法讓AI沒有侷限。就好像天氣,如果氣候資料未來成為影響金融商品行情的重要因素,當然就應該丟進去AI。
Input Data 丟進AI類神經網路裡面後,透過CNN或RNN 把feature提煉出來,設計者可能也會想要去了解AI提煉出來的feature,想了解現在AI
看多或看空到底是為什麼,最後可能會發現沒辦法。因為透過太複雜的類神經網路,就像是AlphaGo,可以計算出來現在下棋要下這步,但並不會知道為什麼要這麼下,最後變成無招勝有招,每步的棋路不一定都是人類所能理解的,完全就是一個計算出來的結果。
一開始可能會想要去理解為什麼AI要這樣下,到後來就會發現,雖然不應該去期待AI,但是還是會去想AI為什麼不幫使用者多賺一點..等。到最後還是不要用理解的方式去了解為什麼要這樣下,就純粹看AI的結果。因為,如果想要透過理解來增加信任感,到後來可能也會發現這條路不太通,怎麼了解還是理解不了,所以最好的方式還是用結果來增加信任感會比較好。大部分人也會對AI有著過高的期待,雖然也會說服自己不應該要求AI天天賺錢,但是實際上如果一個策略超過三天沒出手,懷疑開始就來了…
如果您喜歡我的文章,請在文章最末 按5下 Like! 我將得到 likecoin的回饋。回饋由 likecoin基金會出資,您只要註冊/登入帳號( FB、Google帳號都可以登入(註冊),流程超快),按五次左鍵,可以贊助我的文章且完全不會花到錢!
hiHedge -Trading with
Machine Learning
TECHNOLOGY
We use the
similar technology to Google DeepMind’s AlphaGo, using a combination of deep
learning and reinforcement learning algorithms.
Our AI
trader extracts hidden trends, information, and relationships through
convolutional neural networks, which can recognize large amounts of high
dimensional data sets, while considering micro, macro and news data.
With deep
reinforcement learning, our AI traders can constantly learn and
self-develop significant trading decisions.
Recognize patterns
Our AI
trader can recognize trading patterns undetec-table by human from a
variety of inputs, including price and volume from exchanges
around the world, news from various sources in multiple languages,
macroeconomic and company accounting data, and more.
Self-develop trading strategies
We build up a
framework so that our AI traders can study how these various factors have
interrelated historically, and learns an ensemble of tens of thousands of
predictive models that appear to have predictive value, based on its study of
historical data in the trading data. Thus, our AI trader can constantly
learn and self-develop significant trading decisions.
Adapt to market changes
In the past, it
takes 20 year to train a top trader. Now our AI traders can practice millions
times to excel in trading in less than 10 hrs. They can even come up with
clever strategies that human never imagine before. When the market changes, our
AI traders can react and find new strategies for the new market faster than
human.