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變成
【非線性模型(以預測價格點為例)】
三個步驟同線性模型一致。以下主要列出第二部的模型分類。
- 泰勒級數展開模型 (將非線性模型用線性模型來估測,再用線性模型來建模),前提是你知道非線性模型的形式是怎樣的。
2. 臨界自相關模型(threshold autoregressive - TAR):AR + jump threshold
3. 馬可夫變換模型(Markov switching):加了概率分布的TAR
4. 非參數估計模型(nonparametric estimation)- Kernel function
5. 機器學習(神經網絡等)