做市商是賣方的主要參與者,為市場(chǎng)提供流動(dòng)性。投機(jī)者站在買方一邊,進(jìn)行實(shí)驗(yàn)和研究,希望從中獲利。最終用戶是向零售經(jīng)紀(jì)人咨詢建議和交易的散戶投資者??傮w而言,金融公司有興趣評(píng)估金融機(jī)器學(xué)習(xí)( ML )算法,以發(fā)現(xiàn)哪些算法最有利可圖。
研究人員最近發(fā)表了許多版本的這種類型的算法。我們?cè)噲D利用高頻數(shù)據(jù)和隨機(jī)森林( RF )模型的可解釋性,并選擇了本文中提出的 RF 方法研究短期價(jià)格預(yù)測(cè)的限價(jià)訂單簿特征:一種機(jī)器學(xué)習(xí)方法.
我們的研究發(fā)現(xiàn),使用 GPU 的硬件加速減少了金融 ML 研究人員獲得預(yù)測(cè)結(jié)果所需的時(shí)間。由于大部分運(yùn)行時(shí)間都可以用于分類器訓(xùn)練,因此人們當(dāng)然對(duì)更有效的訓(xùn)練方法感興趣。
本文介紹了我們的研究,包括生成的數(shù)據(jù)集,使用限價(jià)訂單簿( LOB )數(shù)據(jù)進(jìn)行價(jià)格預(yù)測(cè),以及 ML 訓(xùn)練的推薦步驟。我們解釋了所研究的 GPU 配置如何顯著加快 ML 訓(xùn)練時(shí)間,從而實(shí)現(xiàn)更高效和更廣泛的模型開發(fā)
數(shù)據(jù)集
本研究使用顯示實(shí)時(shí)股價(jià)的時(shí)間序列數(shù)據(jù)集來更好地理解 LOB 結(jié)構(gòu)和方向預(yù)測(cè)。市場(chǎng)數(shù)據(jù)公司提供Intrinio,本研究的數(shù)據(jù)集包含紐約證券交易所和納斯達(dá)克股票代碼的實(shí)際市場(chǎng)價(jià)格樣本,以 1 秒為基礎(chǔ),來自道瓊斯 30 指數(shù)股票。
1 秒的報(bào)價(jià)被用作 ABIDES (基于代理的交互式離散事件模擬)的輸入,以生成看起來像市場(chǎng) LOB 的 LOB 數(shù)據(jù)。每條記錄上的時(shí)間戳都在第二個(gè)標(biāo)記處;例如: 2019 年 1 月 2 日的 2019-01-02T14 : 09 : 18Z ,即 2019 年的第一個(gè)交易日
輸入到 ABIDES 的 CSV 文件由這一列作為第一列,后面是 30 列 DOW 30 的美元價(jià)格(到兩位數(shù))。本文將 AAPL 股票行情作為一個(gè)測(cè)試案例。
使用 ABIDES 生成合成數(shù)據(jù)
ABIDES 是一種模擬金融市場(chǎng)運(yùn)作的方法。在最近的論文中進(jìn)行了解釋,ABIDES: Towards High-Fidelity Multi-Agent Market Simulation,由佐治亞理工學(xué)院、佐治亞大學(xué)和摩根大通銀行的研究人員撰寫
ABIDES 模擬了許多通過交易所代理買賣資產(chǎn)的個(gè)人交易代理。模擬中的每一筆交易和其他事件都會(huì)被記錄下來,并與執(zhí)行交易的代理人聯(lián)系在一起。這使市場(chǎng)研究人員能夠詳細(xì)分析不同的代理人策略和事件如何影響模擬市場(chǎng)。重要的是,給定交換的 LOB 可以在模擬之后重建
ABIDES 模擬中的一些代理基于時(shí)間序列來評(píng)估資產(chǎn),該時(shí)間序列表示代理在某個(gè)頻率下觀察到的資產(chǎn)的真實(shí)價(jià)值,并添加一些噪聲。這個(gè)時(shí)間序列被稱為基本價(jià)值股票的價(jià)格。為了在宏觀尺度上模擬一個(gè)更現(xiàn)實(shí)的市場(chǎng),我們使用真實(shí)的歷史數(shù)據(jù)作為基本值。
為了創(chuàng)建合理的 LOB 數(shù)據(jù)來訓(xùn)練我們的 RF 模型,我們使用 Intrinio 提供的 1 秒報(bào)價(jià)作為 ABIDES 模擬的歷史基本值。圖 1 將輸出 LOB 數(shù)據(jù)的中間價(jià)與用作 AAPL 歷史基本面的 1 秒報(bào)價(jià)進(jìn)行了比較。
圖 1 。將 Intrinio 的 1 秒輸入 AAPL 報(bào)價(jià)數(shù)據(jù)(藍(lán)線)與單個(gè)交易日輸出 ABIDES 模擬的中間價(jià)(黑線)進(jìn)行比較的圖表
LOB 作為短期價(jià)格變動(dòng)的預(yù)測(cè)指標(biāo)
在貿(mào)易交易的投標(biāo)方,買方希望盡可能少地支付購(gòu)買給定證券的費(fèi)用。在要求方,賣方希望以盡可能高的價(jià)格出售證券。限價(jià)單是在買賣雙方設(shè)定這些限制的一種方式。
給定證券的 LOB 是一個(gè)訂單大小列表, x 軸為證券價(jià)格, y 軸為該價(jià)格下買賣雙方的總交易量。例如,買家愿意以每股 580 美元的價(jià)格購(gòu)買 100 股谷歌證券,因此出售者必須有足夠的股份來完成這 100 股。請(qǐng)參見圖 2 以獲取 LOB 示例。
LOB 分為出價(jià)部分(圖 2 中紅線左側(cè))和要價(jià)部分(圖 2 紅線右側(cè)),前者的價(jià)格低于中間市場(chǎng),后者的價(jià)格較高。
圖 2 :將 GOOG 安全的訂單簿快照限制在相隔 292 微秒的兩個(gè)時(shí)間點(diǎn)。訂單量顯示在 y 軸上,價(jià)格顯示在 x 軸上。中間報(bào)價(jià)由買賣盤之間的紅線標(biāo)記。
簡(jiǎn)單地說,買方希望在市場(chǎng)上支付更低的價(jià)格,而賣方希望獲得更高的價(jià)格。時(shí)間點(diǎn)在小數(shù)點(diǎn)后有九位數(shù),這反映了現(xiàn)代證券交易所的納秒精度
兩個(gè)框架中的第一個(gè)框架(位于圖 2 頂部)的一個(gè)顯著特征是,從高點(diǎn)(高于標(biāo)記為 5 . 80 的點(diǎn))可以看出,以 580 美元的價(jià)格出售的需求量很大。觀察這是如何主導(dǎo) LOB 的,預(yù)示著中間報(bào)價(jià)向右移動(dòng),美元價(jià)值更高。
圖 3 顯示,當(dāng)向分類器提供更多的 LOB 深度時(shí),預(yù)測(cè)價(jià)格走勢(shì)即時(shí)方向的準(zhǔn)確性會(huì)提高。這是直觀的,因?yàn)榉诸惼髟谟?xùn)練過程中有更多關(guān)于市場(chǎng)兩側(cè)的可用信息(出價(jià)水平和要價(jià)水平)。
圖 3 。限制訂單簿深度可能會(huì)有所不同。 ML 中間價(jià)格方向預(yù)測(cè)的準(zhǔn)確性在書中有更多級(jí)別時(shí)更加穩(wěn)健
圖片來源:費(fèi)薩爾·庫(kù)雷希
使用 RAPIDS 加速隨機(jī)森林訓(xùn)練
我們訓(xùn)練了一個(gè)隨機(jī)森林模型,以 LOB 數(shù)據(jù)作為輸入來預(yù)測(cè)短期價(jià)格走勢(shì)。我們訓(xùn)練了一個(gè)分類器來預(yù)測(cè)給定的股價(jià)是向上、向下還是持平
具體來說,目標(biāo)是預(yù)測(cè)未來 20 個(gè)中間價(jià)格( m下一個(gè)) 將小于或大于之前 20 個(gè)中間價(jià)格的平均值( m上一個(gè)) 以一定的幅度。我們將這一差額定義為 0 . 5 美分,這是我們數(shù)據(jù)集中任何兩個(gè) LOB 幀之間中間價(jià)格的最小非零差異。
標(biāo)簽為 2 表示價(jià)格上漲( m下一個(gè)–米上一個(gè)> 0 . 5 美分),標(biāo)簽為 1 表示中性價(jià)格變動(dòng),標(biāo)簽為 0 表示向下價(jià)格變動(dòng)( m下一個(gè)–米上一個(gè)< -0 . 5 美分)
以下實(shí)驗(yàn)是在一個(gè)NVIDIA A100用于 RAPIDS cuDF 和 RAPIDS cuML 的 80 GB SXM ,以及用于 scikit learn 和 pandas 的兩個(gè) AMD EPYC 7742 64 核處理器。使用 RAPIDS cuDF 庫(kù)和 pandas 計(jì)算中間價(jià)、平均值和標(biāo)簽
圖 4 顯示了運(yùn)行時(shí)的比較。平均預(yù)處理時(shí)間是根據(jù)每種配置的 10 次運(yùn)行和 10 次預(yù)熱計(jì)算得出的。這是在 ML 訓(xùn)練運(yùn)行之前的一個(gè)標(biāo)記步驟,如圖 5 所示。
圖 4 。 CPU 與 pandas 以及 GPU 與 cuDF 的平均預(yù)處理時(shí)間的比較
我們使用 scikit learn 和 RAPIDS cuML 訓(xùn)練了一個(gè)由 100 棵樹組成的隨機(jī)森林分類器,并比較了兩者的訓(xùn)練時(shí)間。 RAPIDS cuML 是 scikit learn 的免費(fèi)替代品,它使許多流行的 ML 算法能夠在 GPU 上加速
圖 5 顯示了一個(gè) NVIDIA A100 80 GB 與 RAPIDS cuML 以及兩個(gè) AMD EPYC 7742 64 核處理器與 scikit learn 上訓(xùn)練工作負(fù)載的運(yùn)行時(shí)間的比較。 CPU 上的訓(xùn)練是多線程的,有 128 個(gè)線程,使用 scikit learnn_jobs參數(shù)
五次熱身的平均時(shí)間是 50 分以上,而 scikit 的學(xué)習(xí)時(shí)間是五次熱身平均 10 分以上。使用 GPU 進(jìn)行訓(xùn)練的速度大約快 10 倍。這些結(jié)果與 2022 年 GPU 研究結(jié)果一致,詳見Accelerating Machine Learning Training Time for Limit Order Book Prediction.
圖 5 。 scikit 在 CPU 上學(xué)習(xí)和在 GPU 上學(xué)習(xí)的訓(xùn)練運(yùn)行時(shí)間(秒)
GPU 上的培訓(xùn)可為這一工作量提供 10 倍以上的加速。 ML 分類器開發(fā)的迭代性質(zhì)使其時(shí)間密集,特別是考慮到金融市場(chǎng)中使用的大量時(shí)間序列數(shù)據(jù)。簡(jiǎn)而言之, GPU 是 ML 算法研究的游戲規(guī)則改變者。
金融數(shù)據(jù)集日益增長(zhǎng)的計(jì)算需求
雖然前面的例子使用了一個(gè)股票行情器,但這些高頻交易和限價(jià)訂單的用例需要多個(gè) AI 系統(tǒng)運(yùn)行相當(dāng)于多個(gè)的算法NVIDIA DGX SuperPODs通常,專門研究此類用例的組織需要多個(gè)資產(chǎn)類和跟蹤器
因此,這種算法的分析和應(yīng)用可以很容易地并行化,案例可以擴(kuò)展到需要加速時(shí)間和大量計(jì)算的多個(gè)人工智能系統(tǒng)。例如,定量金融、機(jī)器學(xué)習(xí)(如 RAPIDS cuML )和深度學(xué)習(xí)應(yīng)用(如 LOB 數(shù)據(jù)集之上的神經(jīng)網(wǎng)絡(luò))。
為了在開發(fā)金融 ML 算法時(shí)加快培訓(xùn)速度,您可以使用 RAPIDS 庫(kù)套件來利用 GPU 加速:
RAPIDS cuDF 取代 pandas Python 庫(kù)
RAPIDS cuML 取代 scikit 學(xué)習(xí) Python 庫(kù)
下載并安裝 RAPIDS開始為您的數(shù)據(jù)科學(xué)工作負(fù)載啟用 GPU 。記得事先安裝 NVIDIA 驅(qū)動(dòng)程序和 CUDA 工具包。
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4990瀏覽量
103118 -
人工智能
+關(guān)注
關(guān)注
1791文章
47314瀏覽量
238648 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8420瀏覽量
132685
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論