Forums  > Pricing & Modelling  > bounded variable and it's historical changes  
Page 1 of 1
Display using:  


Total Posts: 1659
Joined: Jun 2004
Posted: 2020-03-26 21:14
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.’


Total Posts: 1175
Joined: Jun 2005
Posted: 2020-03-26 22:26
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((1-x)/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.


Total Posts: 78
Joined: May 2010
Posted: 2020-03-27 03:41
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?



Total Posts: 600
Joined: May 2006
Posted: 2020-03-27 10:14
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


Total Posts: 1175
Joined: Jun 2005
Posted: 2020-03-27 10:19

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.


@ronin - exactly


Total Posts: 78
Joined: May 2010
Posted: 2020-03-27 23:59
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 Evil Smile



Total Posts: 1175
Joined: Jun 2005
Posted: 2020-03-28 09:33
Process defines magnitude of jumps. Replace dW ~ Norm(0, sigma) with something else which has fat tails.
Previous Thread :: Next Thread 
Page 1 of 1