In this final part of our series on training a simple Support Vector Machine on currency indices to predict the NIFTY, we will incorporate a Simple Moving Average into our decision matrix. While our model in Part IV would go long/long-short based purely on the predictions of the SVM, the model we use here will go long only if both the prediction is positive and the NIFTY is above a 50-day SMA and go short only if both the prediction is negative and the NIFTY is below its 50-day SMA. Think of the SMA as a regime signifier.
BH: buy & hold
L0: Long-only using SMA 50 alone
LS0: Long-short using SMA 50 alone
L1: Long-only using DTWEXB SVM and SMA 50
LS1: Long-short using DTWEXB SVM SMA 50
L2: Long-only using DTWEXM SVM and SMA 50
LS2: Long-short using DTWEXM SVM SMA 50
L: Long-only using ensemble SVM and SMA 50
LS: Long-short using ensemble SVM SMA 50
The SVM that is only based on DTWEXM (LS2) give better returns than the one based on the ensemble model (LS.) However, the ensemble model had a slightly lower drawdown of the two. Also, when compared to the earlier version that did not use the SMA, LS2 under-performs by about 10%. However, the key difference is in the drawdowns. Using the SMA filter reduced drawdowns significantly, especially the one occurring in 2018.
An SVM with a 4th degree polynomial over the DTWEXM currency index in conjunction with a 50-day SMA seems to be the winning combination.
Code and charts are on github.