Background:
As we know, volatility in the long run is mean reverting. Given that volatility is mean reverting, when volatility is low, it tends to go up. When it is high and going down, it tends to go down, making it an interesting factor of analysis with broad potential usage.
We will design a volatility forecasting function (VolaProbFunction) in Matlab / C++ / both using a Markov Switching regime or a better model to see if the results are promising.
The model should provide a probability threshold % (going from 0 to 100%) of a volatility spike in the next (Y) days.
Parameters of the VolaProbFunction:
1- [input] Time in hours in the future to get the forecast point (T)
2- [input] volatility jump that we would like to get the probability for(Y)
3- [input] volatility evolution time series (in days or hours) (VOLSERIES)
4- [output] is the probability of having a Y jump in period T from now (PROB).
PROB = VolaProbFunction(VolSeries,T,Y)
0% < PROB < 100%
Example:
INPUT for VOLSERRIES is the series: DATE / VIX CLOSE in this file. http://www.cboe.com/publish/scheduledtask/mktdata/datahouse/vixcurrent.csv value for Close of 1-DEC-2017 is 11.43
INPUT for T: 1 day.
INPUT for Y: 1
Function will check the probability of a jump from 11.43 to 12.43 in the next day.
OUTPUT: 45% (45% chance of a 1% jump in VIX at 11.43%)
Question:
I thought of using Markov-switching multifractal but I am free to use whatever model I desire to forecast VIX. I was hoping to get some advice on this problem. If anyone has any models that they would recommend or papers I could look up to help code up the model please let me know. I can use whatever language I want i.e., C++, MATLAB, R, or Python.
Update:
I am currently trying to use the MS_Regression library on MATLAB. The problem I have is when I simply use the MS_Regression_Fit() function where my dependent variable being the daily close price of VIX and the independent variable as rand(vix_high - vix_low) + vix_low, I get very poor results. I am not sure how to accomplish this task with the library.
Any recommendations on this issue are greatly appreciated.