量化交易終的學習目的就是為了實際應用,那么我們對于量化交易為什么要做一些強化呢?以及它所適用的市場環(huán)境是什么?
交易策略的相關指標
思考這樣一個問題:構建交易算法的優(yōu)化目標是什么?一個很顯然的答案是利潤,但是這還不是全部。你還需要將你的交易策略和一些基準進行對比,同時需要考慮風險、波動等指標。關于交易策略相關的評價指標有很多,以下列舉了一些基本介紹。
Net PnL (Net Profit and Loss)
計算在一定時間內(nèi),交易策略所賺的或虧損的資金,同時考慮交易成本。
Alpha 和Beta
Alpha可以理解為相對于某個無風險資產(chǎn)(如政府債券投資)的超額收益,如果這個超額收益是正數(shù),表明你的投資相對于無風險資產(chǎn)更優(yōu)。Beta是描述和市場波動相關程度大小的指標,舉個例子,beta=0.5表明市場在波動$2的時候,你的投資組合波動$1。
夏普比例(SharpeRatio)
風險調(diào)整收益指標,將波動和無風險收益率考慮在內(nèi),表明所承受的單位風險所帶來的收益,該值越高越好。
回撤(MaximumDrawdown)
某個局部值到局部小值的減小比例,這是關于風險的另一種刻畫。例如50%的回撤表明你在某個時間點虧損了50%的本金,那么需要獲得100%的收益才能回本。顯然的,該值越小越好。
風險價值(VaR)
在一段時間和一定概率情況下,可能遭遇的損失。例如,1天5%的VaR=10%表明,在一天之內(nèi),有5%的可能性發(fā)生超過10%的損失。

監(jiān)督學習
在正式學習強化學習之前,我們先來介紹如果通過監(jiān)督學習的方式構建交易策略,然后我們會發(fā)現(xiàn)這種方式存在的問題,以及為什么我們需要使用強化學習。
對于監(jiān)督學習建模,顯然的方式就是預測價格方向。假設我們可以預測價格上漲,就買入持有,直到價格發(fā)生上漲之后賣出;類似的,如果預測價格下跌,則可以選擇做空,當價格下跌的時候買入平倉。但是,這種方式存在一些問題。
首先,我們預測的是什么價格?從以上的介紹我們可以看到,我們可以買入的價格并不,終成交的價格基于不同價格檔位可供出售的數(shù)量、以及交易成本。一種簡單的方式是預測中間價格,即買入和賣出價格的平均值,這也是大多數(shù)研究者采用的方式。但是,這只是一個理論價格,并不是終實際的成交價,事實上有可能大幅偏離于實際成交價格。
另一個問題是預測周期。我們預測的是下一個交易?還是下一秒?或者下一分鐘或者下一天?從直觀上來看,預測的周期越長,不確定性越大,那么預測模型也越復雜。
舉個例子,假設當前BTC的價格是$10000,我們準確地預測了后一分鐘的價格是$10050,這是否意味著你可以獲得$50的收益呢?
我們以賣出價格$10000買入,大多數(shù)情況下這個價格可供出售的數(shù)量不足,假設只有0.5BTC,實際情況是以$10000買入0.5BTC,以$10010的價格買入另外0.5BTC,平均價格是$10005。同時需要付出0.3%的交易手續(xù)費,即$30。
正如我們所預測,當價格移動到$10050時賣出。由于市場價格變化迅速,當我們的交易指令到達交易所的時候,價格已經(jīng)發(fā)生了移動,假設此時的價格是$10045。和之前的情況類似,大多數(shù)情況下無法在這個價格賣出1.0BTC,或許需要在$10045賣出0.5BTC,在$10040賣出另外0.5BTC,平均價格是$10042.5。此外還需要付出0.3%手續(xù)費,大約是$30。
終,雖然準確預測了下一分鐘的價格,但我們的收益是:-10005- 30 - 30 + 10042.5 = -$22.5,而不是$50,原因可總結為以下三點:
價格檔位沒有足夠的流動性
網(wǎng)絡延遲
交易成本
而監(jiān)督學習模型無法考慮以上三個因素。
從這個案例中我們能學到什么?如果想從簡單的價格預測中獲取收益,我們需要預測更長的時間周期以及更大范圍的價格變化,或者更加智能的成本和訂單管理,但這是一個非常困難的預測問題。當然,我們可以使用限價單而不是市價單,但對于訂單的成交就無法保證了,并且需要搭建一個非常復雜的系統(tǒng)來執(zhí)行訂單管理。
監(jiān)督學習模型的另外一個問題是,它缺少行動策略(policy)。在上述案例中,我們執(zhí)行買入訂單,因為預測價格上漲,我們所做的決策是基于計劃的。但假如價格下跌該怎辦?賣出或是持有倉位并等待?假如價格是小幅上漲而后下跌呢?假如我們對于預測并不確定呢?比如65%的概率上漲,35%的概率下跌,你仍然會買入嗎?如何選擇一個合適的時機買入?
因此,你需要的不僅僅是一個簡單的價格預測模型(除非你的模型非常準確和穩(wěn)定)。我們同時也需要一個基于規(guī)則的行動策略:輸入的是價格預測值,然后決定如何行動,比如執(zhí)行訂單、不操作或者取消訂單等。那么,這個行動策略如何構建?如何優(yōu)化參數(shù)和決策邊界?答案不是固定的,許多人采用啟發(fā)式算法或是簡單的直覺。
典型交易策略開發(fā)流程
以上問題已有不少解決方案,但是這些方案往往不太有效,一個典型的交易策略開發(fā)流程如圖所示:

數(shù)據(jù)分析。通過描述性數(shù)據(jù)分析來尋找交易策略,包括各種圖表、計算數(shù)據(jù)統(tǒng)計指標等等,這些分析結果可以為交易策略提供初的想法。
監(jiān)督學習模型。很多時候,可以訓練多個監(jiān)督學習模型來預測交易策略所需要的核心指標,比如價格預測模型、成交量預測模型等。
行動策略(Policy)開發(fā)?;诋斍笆袌鰻顟B(tài)以及監(jiān)督學習模型的輸出,構建一個基于規(guī)則的策略以用于決策。這個行動策略也有相應參數(shù),比如需要優(yōu)化的決策臨界值。
交易策略(strategy)回測。通過模擬器和歷史數(shù)據(jù)進行交易策略的模擬,這個模擬器通??梢钥紤]訂單簿流動性、網(wǎng)絡延遲、交易成本等因素。假設交易策略在回測中表現(xiàn)良好,則可進入?yún)?shù)優(yōu)化的環(huán)節(jié)。
參數(shù)優(yōu)化。通過模擬器和歷史數(shù)據(jù),搜索行動策略參數(shù)。在這里,過擬合的風險是很大的,你必須仔細地選擇合適的驗證和測試數(shù)據(jù)。
模擬交易。在實盤交易之前,基于市場實時數(shù)據(jù)的模擬成為模擬交易(paper trading),這可以防止過擬合。只有當交易策略在模擬盤上成功運行,才可以進入實盤交易階段。
實盤交易。交易策略在交易所的實盤交易。》》》點擊學習量化交易策略長久更新班(AQF實訓項目+策略大講堂策略集錦)
這是一個復雜的過程,并且不同的公司和研究員之間也有細微差別,但是這個流程大致相同。另一方面,這個過程很多時候并不有效,主要有以下幾個原因:
迭代周期太慢。1-3步很大程度基于直覺,在4-5步結束之前你都不知道交易策略是否可行,在這其間的每一步都有可能失效,那么就不得不重頭開始。
模擬測試的階段過于靠后。直到第4步之前,你都沒有考慮實際交易中的環(huán)境因素,比如系統(tǒng)延遲、手續(xù)費、流動性等。這些因素應該融入模型開發(fā)和參數(shù)優(yōu)化的流程。
行動策略的開發(fā)獨立于監(jiān)督學習模型,即使二者緊密相關。監(jiān)督學習模型的輸出是行動策略的輸入,因此需要考慮二者同時優(yōu)化。
行動策略過于簡單,受限于人們所能想到的可能。
參數(shù)優(yōu)化不有效。例如,你的優(yōu)化目標是化夏普比例,往往通過網(wǎng)格搜索的方式,而不是基于梯度的方法,效率低下,很難達到全局。
基于以上介紹,我們需要進一步關注如何通過強化學習來解決這些問題。
深度強化學習用于交易
強化學習問題可以通過馬爾科夫決策過程(Markov Decision Process,MDP)來描述,工作原理可以簡化如下:環(huán)境中有一個Agent,在每一個時間點t,Agent以當前的狀態(tài)St為輸入,采取動作為At,然后接受獎勵Rt+1和下一時刻的狀態(tài)St+1。Agent基于行動策略π做出動作,At=π(St)。我們的目標是尋找一個行動策略以化一段有限時間內(nèi)的累計獎勵∑Rt。
對上述涉及的一些名詞做一些解釋說明:
Agent
從簡單的開始,Agent可以理解為一個人工交易員,在交易軟件面前,根據(jù)當前市場狀態(tài)做出各種交易決策。
環(huán)境(Environment)
交易所可以理解為這里的環(huán)境,在這個環(huán)境中有許多其他的Agent,包括人工玩家以及算法交易玩家。假設基于分鐘級別的時間周期,我們采取行動,等待一分鐘,得到一個新的狀態(tài),然后采取下一次行動,周而復始……新的狀態(tài)是基于市場環(huán)境的反饋,而市場環(huán)境由其他許多Agent的行動決定,因此站在自身的角度,其他的Agent也構成了環(huán)境的一部分,這些因素往往是我們無法控制的。
如果把其他所有Agent放入一個大而復雜的環(huán)境中,那就無法顯式地對這些Agent進行建模了。例如,我們可以根據(jù)其他交易員的行為來制定反向交易算法,以及從中挖掘出有用的信息。這就涉及到Mult-Agent強化學習問題(MARL),一個目前研究活躍的領域。在這一小節(jié)中,我們先考慮比較簡單的情況,僅僅和一個綜合環(huán)境進行交互,這個環(huán)境涵蓋了其他所有Agent的行為。
狀態(tài)(State)
交易過程中,我們無法觀測到交易所這個環(huán)境的完整狀態(tài),比如我們不知道其他Agent的交易情況、他們的數(shù)量有多少、賬戶余額、訂單狀況等,這意味著我們處理的是一個部分可見的馬爾科夫決策過程(Partially Observable Markov Decision Process, POMDP)。每個Agent觀測到的狀態(tài)并不是環(huán)境的真實狀態(tài)St,而是它的某種衍生Xt,二者符合某種函數(shù)關系Xt~O(St)。
在我們的案例中,每個時間t上的觀測為歷史時間序列上直到t時刻的所有事件,歷史發(fā)生的事件可以用來構建交易所的當前狀態(tài)。此外,對于Agent做出決策,觀測的內(nèi)容還需要包括當前賬戶余額、還未取消的限價訂單等其他信息。
時間尺度(Time Scale)
在何種時間尺度上進行決策是很重要的,每天?每小時?每分鐘?或是毫秒?微秒?納秒?或是某個變量?不同時間尺度的處理方式也不相同。有些人買入資產(chǎn)之后持有幾天、幾周甚至幾個月,這是一個相對長期的決策,例如“比特幣是長期有價值的嗎?”,這種決策由外部事件、新聞、或者基本面價值決定。由于這種分析通常需要了解世界如何運行,因此很難通過機器學習模型自動化運行。另一方面,對于高頻交易(HighFrequency Trading, HFT)等技術,決策幾乎完全基于市場微觀結構給出的信號,這種時間尺度可以短至納秒級別,交易通過專線連接至交易所,算法相對簡單,運行在FPGA硬件上確保極快的速度。關于這兩個極端,可以從“人性”的角度來理解。前者需要一個宏觀的視角,理解世界運轉的規(guī)律,人類判斷的直覺,以及一些分析;而后者關注的是簡單、極其快速的模式匹配問題。
神經(jīng)網(wǎng)絡是目前炙手可熱的算法,只要有足夠數(shù)據(jù),它學習復雜模型的效果比比線性回歸或者樸素貝葉斯更好,但它的速度相對較慢。它無法在納秒級別上做出決策,很難滿足HFT算法對于速度的要求。這就是為什么位置應該處于兩個極端之間,在這個時間尺度下,可以以超越人類的速度分析數(shù)據(jù),同時可以擊敗那些快速而又簡單的算法。這個時間尺度大概在幾毫秒到幾分鐘之間,人類交易員可以在這段時間內(nèi)做出決策,但速度肯定比不上程序;而對于一些相對復雜的模型,計算機也有足夠的時間處理,這是我們的優(yōu)勢。
在較短的時間尺度上做決策的另一個優(yōu)勢在于,數(shù)據(jù)之間的模式更加明顯。例如,很多人工交易員在交易軟件上關注完全一樣的技術指標(如MACD),他們的決策依據(jù)僅限于這些指標給出的信號,因此只能產(chǎn)生少數(shù)特定的模式。通過深度強化學習,我們希望從市場微觀結構中挖掘更多的模式。
基于不同的信號,我們還可以在變化的時間尺度上面進行決策,例如我們可以根據(jù)市場的大額交易來采取行動。這種基于條件觸發(fā)的Agent也大致對應于某個時間尺度,這是由事件觸發(fā)的頻率決定的。
行動空間
強化學習理論中,離散/有限行動空間和連續(xù)/無限行動空間是不一樣的,基于Agent的復雜性程度,行動空間可以有不同的選擇,簡單的方法就是三種行動:買入、賣出和持有。這是一種可行的方法,但僅限于市價交易,以及每次投入同等數(shù)量的資金。更復雜一些的方法是Agent可以學習每次應該投入多少資金,比如基于模型的不確定性給出這一決策。這種方法已經(jīng)涉及到連續(xù)行動空間了,因為我們需要決定離散的買賣行為,以及連續(xù)的買賣數(shù)量。更復雜的方法中,我們可以執(zhí)行限價訂單,在這種情況下,價格和數(shù)量都屬于連續(xù)的行動空間。同時,還需要考慮到未成交訂單的取消操作。
獎勵函數(shù)(Reward Function)
這是一個很有趣的部分,獎勵函數(shù)可以有多種選擇,顯而易見的方式是Realized PnL。每次平倉之后,Agent都會得到一個獎勵,數(shù)額由凈利潤決定。在Agent化累計獎勵的過程中,它逐漸學習到如何交易才能盈利。這個獎勵函數(shù)在理論上是正確的,并且終可以達到一個的行動策略,但它同時是稀疏的,因為在所有的行動決策中,大多數(shù)時候是持有,而買入和賣出的次數(shù)是很少的。
另外一種頻率更高的反饋是Unrealized PnL,這是假設立刻平倉的情況下,Agent所能得到的凈利潤。例如,在買入之后價格下跌,那么將得到一個負獎勵,即使沒有賣出平倉。由于Unrealized PnL在每個時間t都發(fā)生改變,Agent可以更頻繁地獲取到反饋信號。但是,當和衰減因子共同作用時,直接的反饋可能使Agent的短期行動發(fā)生偏差。
以上兩種獎勵函數(shù)都是簡單地對凈利潤進行優(yōu)化,而實際情況中交易員還希望能小化風險,優(yōu)化的目標應該綜合考慮收益和風險。夏普比例就是一種常用的風險調(diào)整收益指標,除此之外,我們還可以考慮使用回撤、收益風險比等許多指標,目的都是在收益和風險中取得一個平衡。
通過上面的這些是不是覺得aqf中的量化交易還是很不好學的?其實在學習還是要掌握一些基本的量化知識,》》》點擊學習量化交易策略之策略大講堂課程集錦




