高頻交易建模 - 線性模型和非線性模型


https://zhuanlan.zhihu.com/p/73883325

目標:讓身邊對交易不熟悉的朋友快速了解我的工作

結果:從2017年11月到2019年6月實盤累計收益122.6%, 夏普率6.8,最大回撤13.3%。

2019年六月到七月月收益10%,夏普4.6,最大回撤5.7%,利潤表現如下圖:

2019年六月到七月實盤利潤圖

我做的交易系統主要特征有高頻(交易頻率);量化(信號由數學模型處理);程序化(全自動運行);虛擬貨幣(交易標的);做市商(訂單類型)。



本文假設你已經有一定的計量經濟學,機器學習,統計學,數學基礎。

 

假設我們得到了比特幣每分鍾的歷史價格數據 ,我們可以構造每分鍾的價格回報(價格差)- 設這個變量為 x。接下來開始分析 x (只是簡單的分析這個時間序列自身的性質, 並沒有引入任何策略,可以認為是在做策略前對市場的觀察)。

【基本統計指標】:

  • 平均回報:衡量當我們每分鍾買賣一次后的平均利潤(忽略交易費等市場摩擦)。

 

  • 回報方差:衡量回報的波動率。

 

  • 自相關系數:衡量趨勢(反轉)關系是否統計顯著,是否具有可持續性。如果統計顯著,我們則可以使用此關系來進行交易。

【建模】

  • 線性模型(預測未來價格

第一步: 檢驗時間序列x是不是穩定的(stationary)- 可以用Dick Fuller test(DF)

時間序列如果不是穩定的,那么用線性模型得出的參數都是虛假的(spurious regression)。解決辦法一般通過做差(differencing)- 這也是為什么最開始我們不直接分析價格數據而分析回報數據。因為價格序列一般來說是非穩定的(non-stationary),而回報是穩定的。

 

第二步:當用統計檢驗確定x是穩定序列后,開始建模。

可以用最簡單的自相關估計模型(AR esimation)

 

或者移動平均估計模型(MA)

或者自相關移動平均模型(ARMA)[1]

 

第三步:估計完模型參數后可用實盤數據和構建的模型來預測未來價格

  • 線性模型(預測未來價格波動性

為什么需要預測波動性?主要是價格點預測不可能百分百准確。(如果可以預測出在未來每秒中的價格點,就不需要預測波動性了)還有一點是對於一個做市商來說,需要用未來價格波動這個數據來定價。

預測波動性的步驟和線性模型與價格點預測基本一致,只是時間序列x不再是價格點,而變成了歷史方差:比如ARMA變成

【非線性模型(以預測價格點為例)】

三個步驟同線性模型一致。以下主要列出第二部的模型分類。

  1. 泰勒級數展開模型 (將非線性模型用線性模型來估測,再用線性模型來建模),前提是你知道非線性模型的形式是怎樣的。

2. 臨界自相關模型(threshold autoregressive - TAR):AR + jump threshold

3. 馬可夫變換模型(Markov switching):加了概率分布的TAR

 

4. 非參數估計模型(nonparametric estimation)- Kernel function

5. 機器學習(神經網絡等)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM