利用線性回歸、Lasso、彈性網針對4種商品建構策略
一、迴歸模型
$$
{y_i = \alpha + \beta_1x_{1, i} +…+\beta_nx_{n, i}}
$$
MSE(Loss Function)
$$
{\min L = (\sum_{n = 1}^N \beta_ix_i - \alpha - y_i)^2}
$$
- Loss Function 分布
二、正規化模型(Regularization Model)
核心思想
在模型訓練的過程中,越是非線性的參數修改的越嚴重(如高次方$$x$$之係數$$\beta$$),故隨著模型的次方數提高,模型會更複雜,模型會為了追求更小的損失進而有 over-fitting 的現象。
為了抑制 over-fitting,加入了懲罰項,用以限制模型的複雜度。
1. Lasso Regularization(L1)
處罰函數
$$
L = {(\sum_{n = 1}^N \beta_ix_i - \alpha - y_i)^2} + {\sum_{n = 1}^N \vert \beta_n \vert}
$$
意義
因為 Lasso 之值域為絕對值相加,故其分布為多邊形(圖示為二維,若更高維則會產生更多邊角),故值域與最低 Loss Function 之交點應為最低點,故多為頂點、或是易在最接近邊上滑動。
因 Lasso 所述的特性,使得最佳點常為頂點,意即 Lasso 會降低影響力較低、不顯著之變數的權重,甚至降低至 0。
2. Ridge Regularization(L2)
處罰函數
$$
L = {(\sum_{n = 1}^N \beta_ix_i - \alpha - y_i)^2} + {\sum_{n = 1}^N \beta_i^2}
$$
意義
由於是每個係數 Beta 的平方項總和值域為一個圓,故接近最低時會較穩定,且不會使任一係數為 0。
故較為常用。
3. Elastic Net
處罰函數
$$
L = {(\sum_{n = 1}^N \beta_ix_i - \alpha - y_i)^2} + \lambda
{\sum_{n = 1}^N \vert \beta_n \vert}+
(1-\lambda)
{\sum_{n = 1}^N \beta_i^2}
$$
意義
$$L_1 + L_2$$ 之組合,使迴歸式具有彈性。
三、資料來源與建模流程
1. Data
- S&P500:SPDR S&P 500 ETF (SPY)
- 台灣 50: TEJ (0050tw)
- 黃金價格:SPDR Gold Shares (GLD)
- 美元對台幣:Invesco DB US Dollar Bullish (UUP)
2. Rolling
每三個月,以過去 500 天的價格資料,重新 train 一次模型,概念如下
四、績效
1. Linear Model
資產代碼 | 平均報酬 | 年化報酬 | 累積報酬 | 標準差 | 夏普值 | 最大報酬 | 最小報酬 |
---|---|---|---|---|---|---|---|
0050tw | 0.53% | 3.36% | 34.16% | 2.71% | 0.34 | 11.88% | -6.53% |
GLD | -0.86% | -8.92% | -39.16% | 4.56% | -0.79 | 6.02% | -26.26% |
SPY | 1.13% | 8.29% | 52.71% | 2.27% | 0.83 | 10.62% | -4.78% |
UUP | 0.15% | -0.57% | -2.99% | 1.65% | -0.11 | 7.65% | -4.01% |
資產代碼 | 勝率 | 交易次數 | 最大回撤率 | 獲利因子 |
---|---|---|---|---|
0050tw | 61.81% | 55 | 18.42% | 1.92 |
GLD | 35.55% | 45 | 41.00% | 0.43 |
SPY | 72.00% | 50 | 10.56% | 6.67 |
UUP | 53.7% | 55 | 16.47% | 1.35 |
交易策略報酬率直方圖,X 軸為單次交易之報酬率,Y 軸為交易次數,如此可方便檢視該產品在特定方法下,報酬率的分布狀況。
2. Lasso
資產代碼 | 平均報酬 | 年化報酬 | 累積報酬 | 標準差 | 夏普值 | 最大報酬 | 最小報酬 |
---|---|---|---|---|---|---|---|
0050tw | 1.03% | 7.00% | 43.36% | 3.77% | 0.58 | 16.49% | -10.69% |
GLD | -1.97% | -7.57% | -34.21% | 7.36% | -0.79 | 5.31% | -26.63% |
SPY | 2.20% | 11.63% | 79.52% | 2.20% | 1.05 | 35.30% | -7.32% |
UUP | 0.24% | 0.12% | 0.63% | 1.83% | 0.02 | 3.57% | -4.47% |
資產代碼 | 勝率 | 交易次數 | 最大回撤率 | 獲利因子 |
---|---|---|---|---|
0050tw | 76.08% | 46 | 20.11% | 2.80 |
GLD | 50.00% | 18 | 34.34% | 0.32 |
SPY | 64.70% | 17 | 16.02% | 4.48 |
UUP | 60.0% | 20 | 8.88% | 1.48 |
3. Elastic Net
資產代碼 | 平均報酬 | 年化報酬 | 累積報酬 | 標準差 | 夏普值 | 最大報酬 | 最小報酬 |
---|---|---|---|---|---|---|---|
0050tw | 1.00% | 6.65% | 40.86% | 3.87% | 0.55 | 19.57% | -10.70% |
GLD | -2.59% | -6.18% | -28.79% | 8.30% | -0.72 | 2.27% | -26.63% |
SPY | 2.52% | 11.39% | 77.46% | 9.86% | 1.02 | 35.29% | -9.01% |
UUP | 0.17% | -0.20% | -1.09% | 1.53% | -0.03 | 3.57% | -4.39% |
資產代碼 | 勝率 | 交易次數 | 最大回撤率 | 獲利因子 |
---|---|---|---|---|
0050tw | 71.74% | 46 | 20.23% | 2.92 |
GLD | 45.45% | 11 | 28.80% | 0.24 |
SPY | 71.42% | 14 | 17.17% | 4.11 |
UUP | 63.3% | 30 | 10.85% | 1.43 |
4. 各產品績效方法比較
a. 0050tw
可以發現正規化後平均報酬、累積報酬、年化報酬、夏普比率、最大報酬、勝率等有提升,但一方面最小報酬與最大回撤率也變大了,交易次數降低幅度不大。
方法 | 平均報酬 | 年化報酬 | 累積報酬 | 標準差 | 夏普值 |
---|---|---|---|---|---|
Linear Model | 0.53% | 3.36% | 34.16% | 2.71% | 0.34 |
Lasso | 1.03% | 7.00% | 43.36% | 3.77% | 0.58 |
Elastic Net | 1.00% | 6.65% | 40.86% | 3.87% | 0.55 |
方法 | 最大報酬 | 最小報酬 | 勝率 | 交易次數 | 最大回撤率 | 獲利因子 |
---|---|---|---|---|---|---|
Linear Model | 11.88% | -6.53% | 61.81% | 55 | 18.42% | 1.92 |
Lasso | 16.49% | -10.69% | 76.08% | 46 | 20.11% | 2.80 |
Elastic Net | 19.57% | -10.70% | 71.42% | 14 | 17.17% | 4.11 |
b. GLD
正規化後平均報酬率表現反而不佳,是四項產品中表現最差,標準差漸變大,夏普值差異不大,最大報酬率降低,勝率皆不超過 50%,交易次數大幅降低,但最大回撤率也有降低。
方法 | 平均報酬 | 年化報酬 | 累積報酬 | 標準差 | 夏普值 |
---|---|---|---|---|---|
Linear Model | -0.86% | -8.92% | -39.16% | 4.56% | -0.79 |
Lasso | -1.97% | -7.57% | -34.21% | 7.36% | -0.79 |
Elastic Net | -2.59% | -6.18% | -28.79% | 8.30% | -0.72 |
方法 | 最大報酬 | 最小報酬 | 勝率 | 交易次數 | 最大回撤率 | 獲利因子 |
---|---|---|---|---|---|---|
Linear Model | 6.02% | -26.26% | 35.55% | 45 | 41.00% | 0.43 |
Lasso | 5.31% | -26.63% | 50.00% | 18 | 34.34% | 0.32 |
Elastic Net | 2.27% | -26.63% | 45.45% | 11 | 28.80% | 0.24 |
c. SPY
累積報酬為四項產品中最高,皆超過 50%以上;但標準差在彈性網模型下反而飆很高;勝率皆在 6 成 4 以上,與獲利因子同為四項產品中最高,但 Lasso 模型下勝率最低;交易次數大幅降低。
方法 | 平均報酬 | 年化報酬 | 累積報酬 | 標準差 | 夏普值 |
---|---|---|---|---|---|
Linear Model | 1.13% | 8.29% | 52.71% | 2.27% | 0.83 |
Lasso | 2.20% | 11.63% | 79.52% | 2.20% | 1.05 |
Elastic Net | 2.52% | 11.39% | 77.46% | 9.86% | 1.02 |
方法 | 最大報酬 | 最小報酬 | 勝率 | 交易次數 | 最大回撤率 | 獲利因子 |
---|---|---|---|---|---|---|
Linear Model | 10.62% | -4.78% | 72.00% | 50 | 10.56% | 6.67 |
Lasso | 35.30% | -7.32% | 64.70% | 17 | 16.02% | 4.48 |
Elastic Net | 35.29% | -9.01% | 71.42% | 14 | 17.17% | 4.11 |
d. UUP
最大回測率四項產品中最低,年化報酬率表現最接近 0,綜觀整體績效指標,相較其他產品,三個方法間的結果差異最不明顯,但整體而言 Lasso 下績效表現最好。
方法 | 平均報酬 | 年化報酬 | 累積報酬 | 標準差 | 夏普值 |
---|---|---|---|---|---|
Linear Model | 0.15% | -0.57% | -2.99% | 1.65% | -0.11 |
Lasso | 0.24% | 0.12% | 0.63% | 1.83% | 0.02 |
Elastic Net | 0.17% | -0.20% | -1.09% | 1.53% | -0.03 |
方法 | 最大報酬 | 最小報酬 | 勝率 | 交易次數 | 最大回撤率 | 獲利因子 |
---|---|---|---|---|---|---|
Linear Model | 7.65% | -4.01% | 53.7% | 55 | 16.47% | 1.35 |
Lasso | 3.57% | -4.47% | 60.0% | 20 | 8.88% | 1.48 |
Elastic Net | 3.57% | -4.39% | 63.3% | 30 | 10.85% | 1.43 |
五、基金績效圖
1. 0050tw
- Linear Model
- Lasso
- Elastic Net
2. GLD
- Linear Model
- Lasso
- Elastic Net
3. SPY
- Linear Model
- Lasso
- Elastic Net
4. UUP
- Linear Model
- Lasso
- Elastic Net
六、結論
本次實證利用線性模型對四種商品建構策略,結果可發現在回測績效上並沒有特別亮麗,線性模型較為簡單,而金融市場充斥著複雜的訊息,並非所有訊息都能靠著線性模型萃取而出,雖然如此,本次實,也算是個不錯的嘗試,本方法仍有值得許多可以改進的空間。
Reference
溫馨提醒:
- 以上實證皆為本人使用 R/Python 撰寫,請勿抄襲。
- 投資有賺有賠,本次實作僅為研究使用,投資人投資前應審慎評估,本人不負任何投資賠償責任。