量化交易就字面上的意思,就是通過計算得到的數據可以幫住你做決策的交易方式。

你要交易裡要做的任何決定,都需要使用計算的方式,得到一個”最佳”的決定。

我做量化分為兩個步驟,評估(evaluation) 和 決策 (decision)。

具體我們要計算什麼東西呢? 這取決於你想做的策略,不同的策略想要計算的目標是不同的。

舉例來說, 如果你做的是優化你的投資組合,你要計算的就是每個標的預計的成長空間跟如何調整持倉比例,可以考慮多臂老虎機演算法 (名字很鳥我知道)。 如果你做的是尋找進出場點,你要計算的就是每次進出的點位,預計獲利跟風險的評估。

建構策略

第一步是要先建構你的策略,最基本會由何時買、何時賣 這兩個組成。

策略本身是非常自由的,可以是任何方法、或是任何你想驗證 可以獲利的猜想。

以多空訊號為例,設計找進場點跟出場點的方法 :

  1. 第一個要找的就是進場點,這個部分很簡單,完全按照班森的數據流做法,根據多空比下降 持倉比上升 價格上升的方式做為進場點,8小時的變化超過閾值則條件成例,進行買入。
  2. 出場點的計算我是以config optimization的方式進行,設定我策略裡面可以調整的參數,例如止盈止損比例,最久持倉時間,持倉比例等等,這裡沒有把出場點寫死,而是等待下一個回測步驟的時候去找出最好的出場點參數。

回測

建構好策略之後,接著要做的就是回測,也就是根據歷史資料去計算我們策略的表現。回測之後我們會取得一些評估指標(evaluation metric)來幫助我們判斷這個策略的優劣。

評估指標 是用來評斷一個策略優劣的指標,可以是獲利率,可以是夏普值 (每分風險獲利),beta 係數等,不同指標提供的資訊都不盡相同,如果熟悉原裡也可以自己設計自己想看的評估指標。

回測是一種offline evaluation , 這時候做的評估是在上帝視角,因為我們已經知道所有發生的交易了,因此我們可以嘗試調整不同的參數來讓獲利最大,但是這樣找出來的參數應用到未來的情況下不一定會有用,原因有兩個:

  1. 資料過擬合 overfit : 找到的策略只適用於過去的資料,並不是一個通用的獲利模式,因此處理未來資料時會無法得到跟回測結果一樣的表現,通常會使用交叉驗證的方式確保沒有過度擬合的狀況發生。

Untitled

  1. 資料飄移 (data drift, concept drift) : 資料分佈確實變了,策略失效,但這種情況通常不是立馬失效,而是慢慢獲利減少,因為原先回測的結果如果是通過交叉驗證的,代表他是長期下來有穩定的獲利模式,你開始上線實測就馬上失效的機率很低。這種情況可以透過data drift detection 演算法跟指標來監控策略的有效性。

Untitled