Strange


Total Posts: 1648 
Joined: Jun 2004 


I am trying to figure out a better way to apply historical stress scenarios to implied volatility in a single asset (think VIX futures if you want tradable or SPX IV if you want abstract).
The issue for me is adapting historical to the boundaries so I can receive the changes from current levels. I am given historical changes that happen from specific levels and want to somehow change them so the boundaries are respected in a continuous manner. Let's imagine that the variable is 1st VIX futures. If VIX is 10, it's unlikely that it would drop 50% overnight, but it's very probable that it would increase by 100%. On the other hand, if VIX is at 90, the opposite is probably true.
It's some sort of a scaling process, but I can't think of how exactly to do it. 
'Progress just means
bad things happen faster.’



nikol


Total Posts: 1120 
Joined: Jun 2005 


So, the process should suppress move up if it reaches upper limit, U, and super move down if it reaches lower limit, L?
Some quick draft of an idea.
Take logistic (sigmoid) function f(x) = 1 / (1+exp(x)) Then inverse it: finv(x) = ln((1x)/x)
Define finv(x) as Z, which will be distributed \in {0,1} Assume dZ ~ Norm(0,1) = dW_t
It will give you something like:
where x = X(0) and respective SDE as:
when X approaches 1 or 0 the diffusion gets less.
Extension from {0,1} to {L,U} is trivial.
Idea comes from Verhulst growth population model. It scales down diffusion when approaching to boundaries, but in fact you need to limit trajectories towards the boundary only. while leaving it free to move towards the middle. It requires more thinking.
The above process is designed such that it can be solved analytically. 


zee4


Total Posts: 77 
Joined: May 2010 


Thanks nikol, this is really interesting! I would love to learn more about what you have described. Would you be able to provide couple of examples with VIX at 10, 40, and 90 to understand the process? 
Бухарский 


ronin


Total Posts: 585 
Joined: May 2006 


Surely you can just do f(W) where f is any bounded function and W is normal? Itoo's lemma and all that?
So your Vix would be d Vix = Vix * d f(W), or something like that.
You could also make it mean revert to some slowly varying mean. It wouldn't be strictly bounded, but it would probably work better.

"There is a SIX am?"  Arthur 

nikol


Total Posts: 1120 
Joined: Jun 2005 


@zee4
Not for VIX, but for the process dX with boundaries {0,1}
X = 0.1, dX = 0.036 x dt + 0.09 x dW X = 0.5, dX = 0.25 x dW X = 0.9, dX = 0.036 x dt + 0.09 x dW
Around the boundary drift term pulls process back to the middle, while in the middle it is zero.
There is one problem though: process can jump outside the {0,1}area. Within Monte Carlo you can cut off the tails, but it will modify probability space. Not good. Unfortunately, I did not make up anything better. Need time and more thinking.
ADDED:
@ronin  exactly 



zee4


Total Posts: 77 
Joined: May 2010 


OK, I got that part. Can you help me understand how the shock would be applied? As in, if you wanted to increase VIX by 100%, how the process is modified?
I will gtfo here as soon as Strange comes back 
Бухарский 

nikol


Total Posts: 1120 
Joined: Jun 2005 


Process defines magnitude of jumps. Replace dW ~ Norm(0, sigma) with something else which has fat tails. 


