How i can to figure out the volatility?

Here is an answer to the original question. It is an algorithm to compute IV, using the Method of Bisections. Developed by Bernt Odegaard.


#include <cmath>
#include "fin_recipes.h"
double option price implied volatility call_black_scholes_bisections(const double& S,
const double& K,
const double& r,
const double& time,
const double& option price){
if (option price<0.99*(S-K*exp(-time*r))) { // check for arbitrage violations.
return 0.0; // Option price is too low if this happens
};
// simple binomial search for the implied volatility.
// relies on the value of the option increasing in volatility
const double ACCURACY = 1.0e-5; // make this smaller for higher accuracy
const int MAX_ITERATIONS = 100;
const double HIGH_VALUE = 1e10;
const double ERROR = -1e40;
// want to bracket sigma first. find a maximum sigma by finding a sigma
// with a estimated price higher than the actual price.
double sigma low=1e-5;
double sigma high=0.3;
double price = option_price_call_ black_ scholes(S,K,r,sigma high,time);
while (price < option price) {
sigma high = 2.0 * sigma high; // keep doubling.
price = option price call black scholes(S,K,r,sigma high,time);
if (sigma high>HIGH_VALUE) return ERROR; // panic, something wrong.
};
for (int i=0;i<MAX_ITERATIONS;i++){
double sigma = (sigma low+sigma high)*0.5;
price = option_price_call_black_scholes(S,K,r,sigma,time);
double test = (price-option price);
if (fabs(test)<ACCURACY) { return sigma; };
if (test < 0.0) { sigma low = sigma; }
else { sigma high = sigma; }
};
return ERROR;
};

PS: The last for loop will not display properly for some reason. Google Bernt Odegaard to get the original recipe.
 
Quote from MTE:

Let's put it this way. The parameters that you need to input into an option pricing model are:
- price of underlying
- strike price
- time to expiry
- risk free interest rate
- dividends
- volatility

The volatility is the estimated future volatility.

Without the volatility parameter you cannot calculate the theoretical option price.

Now, all of the above 6 parameters are either fixed or easily observable with the exception of volatility. Volatility is the only parameter that is unknown and is not fixed.

So, the idea behind implied volatility is that you have the first 5 parameters and you can also observe the option price in the market. Hence, the only unknown that remains is the volatility. Therefore, you use the known 5 parameters and the market option price to find the volatility that equates to that option price. This is called implied volatility because it is the volatility that is implied in the market option price. That's it, this is where the implied volatility concept ends.

This answer is good...But only for student on the examination in economy...Not for The practising trader...Sorry
 
Quote from MTE:


Estimating what the correct volatility number to put into a pricing model, i.e. estimating future volatility that you believe is correct, is a completely different matter. Some use statistical volatility (aka histrical volatility), others use past levels of implied volatility, yet others use some volatility modelling methods such as GARCH, and some use a combination of any of the above.

As a side note, you don't seem to understand the difference between implied volatility and a volatility number that you use in an option pricing model to find the theoretical option price.

I've tried my best to explain to you the concepts, but you seem to miss the point completely. I don't know, maybe is the language barrier!?
ooo...I am at last starting to understand you...And about this method(Garch) i want to hear...if i correctly understood you i must first find the volatility by this method and then i find an value i put it to model, is it correct?
 
Quote from jenek-cowboy:

This answer is good...But only for student on the examination in economy...Not for The practising trader...Sorry
MTE knows what he is talking about, as far as I can tell from his other posts he is a practicing trader in options.
I have been previously a market maker in options and have done arbitrage in options for my own account for several years. This is the way you should do it.
 
Quote from MTE:

I don't know, maybe is the language barrier!?

may be you right....
I start explain my Thoughts in another word's.I trying to do this in simple word's.Don't kick me if I will make an error...

We use two variant of volatility..IV and HI..To get a theori price of option we must to knew a IV( in another case we can't to calculate the value)...For me-putting a HI in model is a blunder....It mean we should to calculate the parameter(volatility) to put it in formula by another method....
Is am i correct????

I'm so sorry for my english...But you must trust me...I try as i can...Thank for all for helping me in this quantion...
 
Quote from cvds16:

MTE knows what he is talking about, as far as I can tell from his other posts he is a practicing trader in options.
I have been previously a market maker in options and have done arbitrage in options for my own account for several years. This is the way you should do it.
Means I not understood him....Sorry to MTE
 
Quote from panzerman:

Here is an answer to the original question. It is an algorithm to compute IV, using the Method of Bisections. Developed by Bernt Odegaard.


#include <cmath>
#include "fin_recipes.h"
double option price implied volatility call_black_scholes_bisections(const double& S,
const double& K,
const double& r,
const double& time,
const double& option price){
if (option price<0.99*(S-K*exp(-time*r))) { // check for arbitrage violations.
return 0.0; // Option price is too low if this happens
};
// simple binomial search for the implied volatility.
// relies on the value of the option increasing in volatility
const double ACCURACY = 1.0e-5; // make this smaller for higher accuracy
const int MAX_ITERATIONS = 100;
const double HIGH_VALUE = 1e10;
const double ERROR = -1e40;
// want to bracket sigma first. find a maximum sigma by finding a sigma
// with a estimated price higher than the actual price.
double sigma low=1e-5;
double sigma high=0.3;
double price = option_price_call_ black_ scholes(S,K,r,sigma high,time);
while (price < option price) {
sigma high = 2.0 * sigma high; // keep doubling.
price = option price call black scholes(S,K,r,sigma high,time);
if (sigma high>HIGH_VALUE) return ERROR; // panic, something wrong.
};
for (int i=0;i<MAX_ITERATIONS;i++){
double sigma = (sigma low+sigma high)*0.5;
price = option_price_call_black_scholes(S,K,r,sigma,time);
double test = (price-option price);
if (fabs(test)<ACCURACY) { return sigma; };
if (test < 0.0) { sigma low = sigma; }
else { sigma high = sigma; }
};
return ERROR;
};

PS: The last for loop will not display properly for some reason. Google Bernt Odegaard to get the original recipe.
i think that this answer more similar to be truth....
 
Quote from jenek-cowboy:

i think that this answer more similar to be truth....
this is just part of the answer, the basic thing is what the other guy is saying.
considering your charts, I don't read russian and don't know what they are showing: could be anything.
If it is implied vol: that's possible, it can change rather quickly in turbulant market, like today. Please buy yourself some books, to put it rather nicely, you don't know much about this. A thread is not a good way to start to learn from scratch, you got to read some books.
 
Back
Top