本文主要使用強化學習對三支股票進行資產組合,并與傳統的投資組合理論進行比較。實驗結果表明,基于強化學習的方法,可以對資產進行有效的配置,在特定的情況下優于傳統的投資組合理論。
1.背景
強化學習是人工智能中最有趣的分支之一,在眾多的問題中已經顯示出其力量,震驚世界,包括擊敗世界象棋冠軍,圍棋冠軍,甚至在游戲 DotA 2中勝出 [1]。使用強化學習進行股票交易,一直被數據科學家認為是一個“圣杯”。
使用機器學習進行股票交易有多種方式。一種方法是使用預測模型對股價的波動進行建模,然后使用基于啟發式的機器人根據預測值進行操作。另外一種方法是建造一個機器人,這個機器人可以直接根據股票的波動進行操作,包括買、賣、不操作。這是一種十分適合強化學習的環境,因為我們只有當交易結束的時候才知道我們操作的累積結果。
2.問題描述
我們可以將問題描述為:給定三支不同的股票的歷史數據,我們應該如何將固定總量的資金分配到這些股票上,使得最終收益最大。隨著時間的改變,策略需要根據最新的信息重新構建投資組合,做出最優的分配。
我們的解決方案就是構造出一個強化學習模型,然后智能體在每一個時刻根據每個股票的指標值進行資金分配。我們將基于強化學習的策略與馬科維茨 (Markowitz) 的有效邊界理論作對比——對于大部分的基金經理都是使用馬科維茨的理論以及各種直覺做出資產配置的 [2]。
3.強化學習
強化學習的主要任務是設計出一個“智能體”,然后這個“智能體”不斷地與“環境”交互,通過系統性地試錯,得出最終的“行動方案”。“環境”可以是游戲,如象棋或者圍棋,也可以是更加具體的任務,如走出迷宮,或者拿到一個物品。“智能體”就是執行動作的機器人。
通過與環境交互,“智能體”將得到“獎勵”。智能體不斷學習各種“行動”,期望能從環境中得到更多的“獎勵”。如果智能體得到的累積獎勵超過一定的閾值,則我們認為它已經很好地適應了環境。
我們將設計出一個智能體,使用某種策略與交易環境進行交互,以達到最大的投資組合收益。對于我們的問題,就是要決定投資組合的維持比例,如:30%股票A,40%股票B,20%股票C,10%現金,然后智能體就會得到一個正的或者負的反饋。通過反復的嘗試,智能體將不斷迭代策略,直到得出在給定的環境狀態下的最佳行動方案。
4.環境設置
為了模擬真實的交易環境,智能體可以與環境進行以下的交互:
步驟 1:環境提供三支股票的當前狀態的指標;
步驟 2: 智能體對環境做出一個動作。這個動作就是資產組合的分配。例如:10%現金,40%股票 1,35%股票 2,15%股票
步驟 3:環境狀態更改,前進一個時刻點,返回新的狀態,并且得到之前資產組合的獎勵。
步驟 1 到步驟 3 不斷重復直到一次實驗的結束。每一步驟得到的獎勵累積起來就是總的獎勵。我們的目標就是要最大化每次實驗的總的獎勵。
每次環境重置都會從全體數據庫中抽取出不同的片段。每次的環境都不相同,這能夠避免智能體記住了環境。更進一步,智能體的訓練和評價,都是在不同的環境下進行的。因此,智能體從數據中的一部分中學習策略,從另一部分數據中進行評估。我們評價強化學習模型和馬科維茨模型都是使用相同的步驟。
5.馬科維茨有效邊界模型
馬科維茨的有效邊界模型是評價資產組合的風險與收益的框架模型。投資組合的收益是投資組合每一個時間點的收益的均值。風險是每日收益的標準差,用于評價股票的波動率。基金經理根據每一種投資組合的風險與收益,畫出有效邊界然后做出決策。有效邊界上的每一個點都顯示了在給定風險組合的情況下得到的最高收益。在我們的實驗中,我們設計了一種智能體,能根據之前 30 個時刻的投資組合表現,構造出一個中等風險高收益的組合。
6.實驗結果比較
對于強化學習,我們使用了未經調優的 Actor Critic 模型,運行了 100 次的環境實驗,平均收益為 +20%。對于馬科維茨模型,其實驗結果為-1%。有效邊界模型的表現并不好,也許是因為我們所挑選股票的高波動性。當所有的股票價格下降時,基于強化學習的模型會賣出股票增加手里的現金。并且,強化學習模型可以捉住每一次價格的波動并利用起來。因此,基于強化學習的資產組合配置,其表現優于傳統的馬科維茨模型。
參考文獻
[1] https://www.geeksforgeeks.org/what-is-reinforcement-learning/
[2] https://zhuanlan.zhihu.com/p/166163706
作者簡介:羅曉牧(出生年月1980-),性別:男,廣東省廣州市(籍貫),現職稱:副教授,學歷:工科博士研究生畢業,研究方向:機器學習,無線傳感器網絡,生物信息獲取.廣州中醫藥大學醫學信息工程學院.